Job try-db8597d9bcfc34d234bd67d9e37a8d7afa1ae11d-windows-cpython-2.7-x64-0

Repo:try
Node:db8597d9bcfc34d234bd67d9e37a8d7afa1ae11d
Name:windows-cpython-2.7-x64
Scheduled At:2020-12-04T23:45:20
Started At:2020-12-04T23:45:30
Finished At:2020-12-05T00:14:51

Failed Tests

test-abort-checkin.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-abort-checkin.t\n+++ c:/hgdev/src/tests/test-abort-checkin.t.err\n@@ -23,15 +23,73 @@\n \n   $ hg ci -m foo\n   error: pretxncommit.nocommits hook failed: no commits allowed\n-  transaction abort!\n-  rollback completed\n-  abort: no commits allowed\n-  [255]\n+  ** Unknown exception encountered with possibly-broken third-party extension "abortcommit" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "abortcommit" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: abortcommit, mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2127, in _docommit\n+      node = cmdutil.commit(ui, repo, commitfunc, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2754, in commit\n+      return commitfunc(ui, repo, message, matcher, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2124, in commitfunc\n+      extra=extra,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4128, in commit\n+      text, user, date, match, force, editor, extra\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg ci -m foo\n-  error: pretxncommit.nocommits hook failed: no commits allowed\n-  transaction abort!\n-  rollback completed\n-  abort: no commits allowed\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n   $ cd ..\n', 2378, 2380, 'truncated \\uXXXX escape') decoding diff, sorry

test-absorb-edit-lines.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-absorb-edit-lines.t\n+++ c:/hgdev/src/tests/test-absorb-edit-lines.t.err\n@@ -44,18 +44,73 @@\n   >     yyy : g\n   > EOF\n   $ HGEDITOR=\'cat editortext >\' hg absorb -q --edit-lines --apply-changes a\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo1\\.hg\\strip-backup/4ec16f85269a-3075e547-absorb.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo1\\.hg\\strip-backup/4ec16f85269a-3e6146d7-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo1\\.hg\\strip-backup/4ec16f85269a-3e6146d7-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: absorb\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 1157, in absorbcmd\n+      state = absorb(ui, repo, pats=pats, opts=opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 1082, in absorb\n+      if state.commit():\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 751, in commit\n+      self._cleanupoldcommits()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg cat -r 0 a\n-  d  \n-  e\n-  f\n-  g\n+  1\n   $ hg cat -r 1 a\n-   b\n-  c\n-  d  \n-  g\n+  1\n+  2\n   $ hg cat -r 2 a\n-  a\n-   b\n-  e\n-  g\n+  1\n+  2\n+  3\n', 2477, 2479, 'truncated \\uXXXX escape') decoding diff, sorry

test-absorb-phase.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-absorb-phase.t\n+++ c:/hgdev/src/tests/test-absorb-phase.t.err\n@@ -20,11 +20,78 @@\n   $ printf B1 > B\n \n   $ hg absorb -aq\n+  strip failed, backup bundle stored in \'$TESTTMP\\.hg\\strip-backup/112478962961-f4131707-absorb.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\.hg\\strip-backup/112478962961-2a94f7fe-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\.hg\\strip-backup/112478962961-2a94f7fe-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: absorb, drawdag\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 1157, in absorbcmd\n+      state = absorb(ui, repo, pats=pats, opts=opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 1082, in absorb\n+      if state.commit():\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 751, in commit\n+      self._cleanupoldcommits()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg log -G -T \'{desc} {phase}\'\n   @  C secret\n   |\n   o  B draft\n   |\n+  | o  C secret\n+  | |\n+  | o  B draft\n+  |/\n   o  A public\n   \n', 2567, 2569, 'truncated \\uXXXX escape') decoding diff, sorry

test-absorb-rename.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-absorb-rename.t\n+++ c:/hgdev/src/tests/test-absorb-rename.t.err\n@@ -48,33 +48,101 @@\n   0b888b0 3\n   bf56e1f 2\n   eff892d 1\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo1\\.hg\\strip-backup/eff892de26ec-8e37eb16-absorb.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo1\\.hg\\strip-backup/eff892de26ec-d762a46f-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo1\\.hg\\strip-backup/eff892de26ec-d762a46f-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: absorb\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 1157, in absorbcmd\n+      state = absorb(ui, repo, pats=pats, opts=opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 1082, in absorb\n+      if state.commit():\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 751, in commit\n+      self._cleanupoldcommits()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg status\n \n   $ hg annotate -ncf a\n-  0 5d1c5620e6f2 a: 1a\n-  1 9a14ffe67ae9 b: 2a\n-  2 9191d121a268 a: 3a\n+  3 5d1c5620e6f2 a: 1a\n+  4 9a14ffe67ae9 b: 2a\n+  5 9191d121a268 a: 3a\n \n when the first changeset is public\n \n   $ hg phase --public -r 0\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ sedi \'s/a/A/\' a\n \n   $ hg absorb -apq\n   showing changes for a\n           @@ -0,3 +0,3 @@\n-          -1a\n+  5d1c562 -1a\n   9a14ffe -2a\n   9191d12 -3a\n-          +1A\n+  5d1c562 +1A\n   9a14ffe +2A\n   9191d12 +3A\n   \n-  2 changesets affected\n+  3 changesets affected\n   9191d12 3\n   9a14ffe 2\n+  5d1c562 1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg diff\n   diff --git a/a b/a\n@@ -82,9 +150,11 @@\n   +++ b/a\n   @@ -1,3 +1,3 @@\n   -1a\n+  -2a\n+  -3a\n   +1A\n-   2A\n-   3A\n+  +2A\n+  +3A\n \n copy a to b\n \n@@ -120,6 +190,67 @@\n   2 changesets affected\n   17b7212 2\n   eff892d 1\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo2\\.hg\\strip-backup/eff892de26ec-3827bb54-absorb.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo2\\.hg\\strip-backup/eff892de26ec-b28bf11c-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo2\\.hg\\strip-backup/eff892de26ec-b28bf11c-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: absorb\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 1157, in absorbcmd\n+      state = absorb(ui, repo, pats=pats, opts=opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 1082, in absorb\n+      if state.commit():\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 751, in commit\n+      self._cleanupoldcommits()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg diff\n   diff --git a/b b/b\n@@ -164,6 +295,67 @@\n   2 changesets affected\n   e62c256 2\n   55105f9 1\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo3\\.hg\\strip-backup/55105f940d5c-51013cc5-absorb.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo3\\.hg\\strip-backup/55105f940d5c-dd135419-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo3\\.hg\\strip-backup/55105f940d5c-dd135419-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: absorb\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 1157, in absorbcmd\n+      state = absorb(ui, repo, pats=pats, opts=opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 1082, in absorb\n+      if state.commit():\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 751, in commit\n+      self._cleanupoldcommits()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg diff\n   diff --git a/a b/a\n@@ -213,9 +405,70 @@\n   2 changesets affected\n   366daad cp\n   55105f9 1\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo4\\.hg\\strip-backup/55105f940d5c-a4cb305d-absorb.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo4\\.hg\\strip-backup/55105f940d5c-f9f08701-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo4\\.hg\\strip-backup/55105f940d5c-f9f08701-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: absorb\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 1157, in absorbcmd\n+      state = absorb(ui, repo, pats=pats, opts=opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 1082, in absorb\n+      if state.commit():\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 751, in commit\n+      self._cleanupoldcommits()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg log -G -p -T \'{rev}:{node|short} {desc}\\n\'\n-  @  1:70606019f91b cp\n+  @  3:70606019f91b cp\n   |  diff --git a/b b/a\n   |  rename from b\n   |  rename to a\n@@ -234,7 +487,7 @@\n   |  +1\n   |  +3c\n   |\n-  o  0:bfb67c3539c1 1\n+  o  2:bfb67c3539c1 1\n      diff --git a/b b/b\n      new file mode 100644\n      --- /dev/null\n@@ -242,6 +495,32 @@\n      @@ -0,0 +1,1 @@\n      +1a\n   \n+  o  1:366daad8e679 cp\n+  |  diff --git a/b b/a\n+  |  rename from b\n+  |  rename to a\n+  |  --- a/b\n+  |  +++ b/a\n+  |  @@ -1,1 +1,2 @@\n+  |   1\n+  |  +2\n+  |  diff --git a/b b/c\n+  |  copy from b\n+  |  copy to c\n+  |  --- a/b\n+  |  +++ b/c\n+  |  @@ -1,1 +1,2 @@\n+  |   1\n+  |  +3\n+  |\n+  o  0:55105f940d5c 1\n+     diff --git a/b b/b\n+     new file mode 100644\n+     --- /dev/null\n+     +++ b/b\n+     @@ -0,0 +1,1 @@\n+     +1\n+  \n run absorb again would apply the change to c\n \n   $ hg absorb -apq\n@@ -252,9 +531,12 @@\n   \n   1 changesets affected\n   7060601 cp\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg log -G -p -T \'{rev}:{node|short} {desc}\\n\'\n-  @  1:8bd536cce368 cp\n+  @  3:70606019f91b cp\n   |  diff --git a/b b/a\n   |  rename from b\n   |  rename to a\n@@ -270,16 +552,42 @@\n   |  +++ b/c\n   |  @@ -1,1 +1,2 @@\n   |  -1a\n-  |  +1c\n+  |  +1\n   |  +3c\n   |\n-  o  0:bfb67c3539c1 1\n+  o  2:bfb67c3539c1 1\n      diff --git a/b b/b\n      new file mode 100644\n      --- /dev/null\n      +++ b/b\n      @@ -0,0 +1,1 @@\n      +1a\n+  \n+  o  1:366daad8e679 cp\n+  |  diff --git a/b b/a\n+  |  rename from b\n+  |  rename to a\n+  |  --- a/b\n+  |  +++ b/a\n+  |  @@ -1,1 +1,2 @@\n+  |   1\n+  |  +2\n+  |  diff --git a/b b/c\n+  |  copy from b\n+  |  copy to c\n+  |  --- a/b\n+  |  +++ b/c\n+  |  @@ -1,1 +1,2 @@\n+  |   1\n+  |  +3\n+  |\n+  o  0:55105f940d5c 1\n+     diff --git a/b b/b\n+     new file mode 100644\n+     --- /dev/null\n+     +++ b/b\n+     @@ -0,0 +1,1 @@\n+     +1\n   \n "move" b to a, c and d, follow d if a gets renamed to e, and c is deleted\n \n@@ -326,6 +634,67 @@\n   2 changesets affected\n   7bc3d43 cp\n   55105f9 1\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo5\\.hg\\strip-backup/55105f940d5c-cdfb6807-absorb.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo5\\.hg\\strip-backup/55105f940d5c-a2388af2-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo5\\.hg\\strip-backup/55105f940d5c-a2388af2-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: absorb\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 1157, in absorbcmd\n+      state = absorb(ui, repo, pats=pats, opts=opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 1082, in absorb\n+      if state.commit():\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 751, in commit\n+      self._cleanupoldcommits()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg diff\n   diff --git a/e b/e\n@@ -337,7 +706,7 @@\n    2e\n \n   $ hg log -G -p -T \'{rev}:{node|short} {desc}\\n\'\n-  @  2:34be9b0c786e mv\n+  @  5:34be9b0c786e mv\n   |  diff --git a/c b/c\n   |  deleted file mode 100644\n   |  --- a/c\n@@ -349,7 +718,7 @@\n   |  rename from a\n   |  rename to e\n   |\n-  o  1:13e56db5948d cp\n+  o  4:13e56db5948d cp\n   |  diff --git a/b b/a\n   |  rename from b\n   |  rename to a\n@@ -377,7 +746,7 @@\n   |   1d\n   |  +4d\n   |\n-  o  0:0037613a5dc6 1\n+  o  3:0037613a5dc6 1\n      diff --git a/b b/b\n      new file mode 100644\n      --- /dev/null\n@@ -385,3 +754,49 @@\n      @@ -0,0 +1,1 @@\n      +1d\n   \n+  o  2:49911557c471 mv\n+  |  diff --git a/c b/c\n+  |  deleted file mode 100644\n+  |  --- a/c\n+  |  +++ /dev/null\n+  |  @@ -1,2 +0,0 @@\n+  |  -1\n+  |  -3\n+  |  diff --git a/a b/e\n+  |  rename from a\n+  |  rename to e\n+  |\n+  o  1:7bc3d43ede83 cp\n+  |  diff --git a/b b/a\n+  |  rename from b\n+  |  rename to a\n+  |  --- a/b\n+  |  +++ b/a\n+  |  @@ -1,1 +1,2 @@\n+  |   1\n+  |  +2\n+  |  diff --git a/b b/c\n+  |  copy from b\n+  |  copy to c\n+  |  --- a/b\n+  |  +++ b/c\n+  |  @@ -1,1 +1,2 @@\n+  |   1\n+  |  +3\n+  |  diff --git a/b b/d\n+  |  copy from b\n+  |  copy to d\n+  |  --- a/b\n+  |  +++ b/d\n+  |  @@ -1,1 +1,2 @@\n+  |   1\n+  |  +4\n+  |\n+  o  0:55105f940d5c 1\n+     diff --git a/b b/b\n+     new file mode 100644\n+     --- /dev/null\n+     +++ b/b\n+     @@ -0,0 +1,1 @@\n+     +1\n+  \n', 2406, 2408, 'truncated \\uXXXX escape') decoding diff, sorry

test-absorb-strip.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-absorb-strip.t\n+++ c:/hgdev/src/tests/test-absorb-strip.t.err\n@@ -25,7 +25,69 @@\n   $ hg absorb -a\n   warning: orphaned descendants detected, not stripping 112478962961, 26805aba1e60\n   saved backup bundle to * (glob)\n-  2 of 2 chunk(s) applied\n+  strip failed, backup bundle stored in \'$TESTTMP\\.hg\\strip-backup/f585351a92f8-d1634f7b-absorb.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\.hg\\strip-backup/f585351a92f8-04edd502-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\.hg\\strip-backup/f585351a92f8-04edd502-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: absorb, drawdag\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 1157, in absorbcmd\n+      state = absorb(ui, repo, pats=pats, opts=opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 1082, in absorb\n+      if state.commit():\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 751, in commit\n+      self._cleanupoldcommits()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg log -G -T \'{desc}\'\n   @  E\n@@ -36,8 +98,12 @@\n   |\n   o  B\n   |\n-  | o  F\n+  | o  E\n   | |\n+  | | o  F\n+  | | |\n+  | o |  D\n+  | |/\n   | o  C\n   | |\n   | o  B\n', 2690, 2692, 'truncated \\uXXXX escape') decoding diff, sorry

test-absorb.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-absorb.t\n+++ c:/hgdev/src/tests/test-absorb.t.err\n@@ -70,13 +70,73 @@\n \n   $ hg absorb --apply-changes\n   saved backup bundle to * (glob)\n-  2 of 2 chunk(s) applied\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo1\\.hg\\strip-backup/4ec16f85269a-607d7797-absorb.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo1\\.hg\\strip-backup/4ec16f85269a-f60a1fea-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo1\\.hg\\strip-backup/4ec16f85269a-f60a1fea-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: absorb\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 1157, in absorbcmd\n+      state = absorb(ui, repo, pats=pats, opts=opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 1082, in absorb\n+      if state.commit():\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 751, in commit\n+      self._cleanupoldcommits()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg annotate a\n-  0: 1a\n-  1: 2b\n-  2: 3\n-  3: 4d\n-  4: 5e\n+  5: 1a\n+  6: 2b\n+  7: 3\n+  8: 4d\n+  9: 5e\n \n Delete a few lines and related commits will be removed if they will be empty:\n \n@@ -98,50 +158,130 @@\n   ff5d556 commit 3\n   f548282 commit 1\n   apply changes (y/N)?  y\n-  saved backup bundle to * (glob)\n-  3 of 3 chunk(s) applied\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg annotate a\n-  1: 2b\n-  2: 4d\n+  5: 1a\n+  6: 2b\n+  7: 3\n+  8: 4d\n+  9: 5e\n   $ hg log -T \'{rev} {desc}\\n\' -Gp\n-  @  2 commit 4\n-  |  diff -r 1cae118c7ed8 -r 58a62bade1c6 a\n+  @  9 commit 5\n+  |  diff -r 63b22995aaf2 -r 84e5416c937c a\n+  |  --- a/a\tThu Jan 01 00:00:00 1970 +0000\n+  |  +++ b/a\tThu Jan 01 00:00:00 1970 +0000\n+  |  @@ -2,3 +2,4 @@\n+  |   2b\n+  |   3\n+  |   4d\n+  |  +5e\n+  |\n+  o  8 commit 4\n+  |  diff -r ff5d556bb159 -r 63b22995aaf2 a\n+  |  --- a/a\tThu Jan 01 00:00:00 1970 +0000\n+  |  +++ b/a\tThu Jan 01 00:00:00 1970 +0000\n+  |  @@ -1,3 +1,4 @@\n+  |   1a\n+  |   2b\n+  |   3\n+  |  +4d\n+  |\n+  o  7 commit 3\n+  |  diff -r bcf7a4f7b11a -r ff5d556bb159 a\n+  |  --- a/a\tThu Jan 01 00:00:00 1970 +0000\n+  |  +++ b/a\tThu Jan 01 00:00:00 1970 +0000\n+  |  @@ -1,2 +1,3 @@\n+  |   1a\n+  |   2b\n+  |  +3\n+  |\n+  o  6 commit 2\n+  |  diff -r f54828298aa6 -r bcf7a4f7b11a a\n   |  --- a/a\tThu Jan 01 00:00:00 1970 +0000\n   |  +++ b/a\tThu Jan 01 00:00:00 1970 +0000\n   |  @@ -1,1 +1,2 @@\n-  |   2b\n-  |  +4d\n-  |\n-  o  1 commit 2\n-  |  diff -r 84add69aeac0 -r 1cae118c7ed8 a\n+  |   1a\n+  |  +2b\n+  |\n+  o  5 commit 1\n+     diff -r 000000000000 -r f54828298aa6 a\n+     --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n+     +++ b/a\tThu Jan 01 00:00:00 1970 +0000\n+     @@ -0,0 +1,1 @@\n+     +1a\n+  \n+  o  4 commit 5\n+  |  diff -r ad8b8b75557f -r 4f55fa657dae a\n   |  --- a/a\tThu Jan 01 00:00:00 1970 +0000\n   |  +++ b/a\tThu Jan 01 00:00:00 1970 +0000\n-  |  @@ -0,0 +1,1 @@\n-  |  +2b\n+  |  @@ -2,3 +2,4 @@\n+  |   2\n+  |   3\n+  |   4\n+  |  +5\n+  |\n+  o  3 commit 4\n+  |  diff -r 43f0a75bede7 -r ad8b8b75557f a\n+  |  --- a/a\tThu Jan 01 00:00:00 1970 +0000\n+  |  +++ b/a\tThu Jan 01 00:00:00 1970 +0000\n+  |  @@ -1,3 +1,4 @@\n+  |   1\n+  |   2\n+  |   3\n+  |  +4\n+  |\n+  o  2 commit 3\n+  |  diff -r 5c5f95224a50 -r 43f0a75bede7 a\n+  |  --- a/a\tThu Jan 01 00:00:00 1970 +0000\n+  |  +++ b/a\tThu Jan 01 00:00:00 1970 +0000\n+  |  @@ -1,2 +1,3 @@\n+  |   1\n+  |   2\n+  |  +3\n+  |\n+  o  1 commit 2\n+  |  diff -r 4ec16f85269a -r 5c5f95224a50 a\n+  |  --- a/a\tThu Jan 01 00:00:00 1970 +0000\n+  |  +++ b/a\tThu Jan 01 00:00:00 1970 +0000\n+  |  @@ -1,1 +1,2 @@\n+  |   1\n+  |  +2\n   |\n   o  0 commit 1\n+     diff -r 000000000000 -r 4ec16f85269a a\n+     --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n+     +++ b/a\tThu Jan 01 00:00:00 1970 +0000\n+     @@ -0,0 +1,1 @@\n+     +1\n   \n \n Non 1:1 map changes will be ignored:\n \n   $ echo 1 > a\n   $ hg absorb --apply-changes\n-  nothing applied\n-  [1]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n The prompt is not given if there are no changes to be applied, even if there\n are some changes that won\'t be applied:\n \n   $ hg absorb\n   showing changes for a\n-          @@ -0,2 +0,1 @@\n+          @@ -0,5 +0,1 @@\n+          -1a\n           -2b\n+          -3\n           -4d\n+          -5e\n           +1\n   \n   0 changesets affected\n-  nothing applied\n-  [1]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Insertaions:\n \n@@ -152,123 +292,188 @@\n   > insert aftert 4d\n   > EOF\n   $ hg absorb -q --apply-changes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n+  M a\n   $ hg annotate a\n-  1: insert before 2b\n-  1: 2b\n-  2: 4d\n-  2: insert aftert 4d\n+  5: 1a\n+  6: 2b\n+  7: 3\n+  8: 4d\n+  9: 5e\n \n Bookmarks are moved:\n \n   $ hg bookmark -r 1 b1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark -r 2 b2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark ba\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmarks\n-     b1                        1:b35060a57a50\n-     b2                        2:946e4bc87915\n-   * ba                        2:946e4bc87915\n+  no bookmarks set\n   $ sedi \'s/insert/INSERT/\' a\n   $ hg absorb -q --apply-changes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n+  M a\n   $ hg bookmarks\n-     b1                        1:a4183e9b3d31\n-     b2                        2:c9b20c925790\n-   * ba                        2:c9b20c925790\n+  no bookmarks set\n \n Non-modified files are ignored:\n \n   $ touch b\n   $ hg commit -A b -m b\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ touch c\n   $ hg add c\n   $ hg rm b\n+  not removing b: file is untracked\n+  [1]\n   $ hg absorb --apply-changes\n-  nothing applied\n-  [1]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ sedi \'s/INSERT/Insert/\' a\n   $ hg absorb --apply-changes\n-  saved backup bundle to * (glob)\n-  2 of 2 chunk(s) applied\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n+  M a\n   A c\n-  R b\n+  ? b\n \n Public commits will not be changed:\n \n   $ hg phase -p 1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ sedi \'s/Insert/insert/\' a\n   $ hg absorb -pn\n   showing changes for a\n           @@ -0,1 +0,1 @@\n-          -Insert before 2b\n-          +insert before 2b\n-          @@ -3,1 +3,1 @@\n-  85b4e0e -Insert aftert 4d\n-  85b4e0e +insert aftert 4d\n-  \n-  1 changesets affected\n-  85b4e0e commit 4\n+  f548282 -1a\n+  f548282 +insert before 2b\n+          @@ -2,1 +2,0 @@\n+  ff5d556 -3\n+          @@ -4,1 +3,1 @@\n+  84e5416 -5e\n+  84e5416 +insert aftert 4d\n+  \n+  3 changesets affected\n+  84e5416 commit 5\n+  ff5d556 commit 3\n+  f548282 commit 1\n   $ hg absorb --apply-changes\n-  saved backup bundle to * (glob)\n-  1 of 2 chunk(s) applied\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg diff -U 0\n-  diff -r 1c8eadede62a a\n+  diff -r 84e5416c937c a\n   --- a/a\tThu Jan 01 00:00:00 1970 +0000\n   +++ b/a\t* (glob)\n   @@ -1,1 +1,1 @@\n-  -Insert before 2b\n+  -1a\n   +insert before 2b\n+  @@ -3,1 +2,0 @@\n+  -3\n+  @@ -5,1 +4,1 @@\n+  -5e\n+  +insert aftert 4d\n   $ hg annotate a\n-  1: Insert before 2b\n-  1: 2b\n-  2: 4d\n-  2: insert aftert 4d\n+  5: 1a\n+  6: 2b\n+  7: 3\n+  8: 4d\n+  9: 5e\n \n   $ hg co -qC 1\n   $ sedi \'s/Insert/insert/\' a\n   $ hg absorb --apply-changes\n-  abort: no mutable changeset to change\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Make working copy clean:\n \n   $ hg co -qC ba\n+  abort: unknown revision \'ba\'\n+  [255]\n   $ rm c\n   $ hg status\n+  ? b\n \n Merge commit will not be changed:\n \n   $ echo 1 > m1\n   $ hg commit -A m1 -m m1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark -q -i m1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg update -q \'.^\'\n   $ echo 2 > m2\n   $ hg commit -q -A m2 -m m2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg merge -q m1\n+  abort: unknown revision \'m1\'\n+  [255]\n   $ hg commit -m merge\n+  nothing changed\n+  [1]\n   $ hg bookmark -d m1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -G -T \'{rev} {desc} {phase}\\n\'\n-  @    6 merge draft\n-  |\\\n-  | o  5 m2 draft\n-  | |\n-  o |  4 m1 draft\n-  |/\n-  o  3 b draft\n-  |\n-  o  2 commit 4 draft\n-  |\n-  o  1 commit 2 public\n-  |\n-  o  0 commit 1 public\n+  o  9 commit 5 draft\n+  |\n+  o  8 commit 4 draft\n+  |\n+  o  7 commit 3 draft\n+  |\n+  o  6 commit 2 draft\n+  |\n+  o  5 commit 1 draft\n+  \n+  o  4 commit 5 draft\n+  |\n+  o  3 commit 4 draft\n+  |\n+  o  2 commit 3 draft\n+  |\n+  o  1 commit 2 draft\n+  |\n+  @  0 commit 1 draft\n   \n   $ echo 2 >> m1\n   $ echo 2 >> m2\n   $ hg absorb --apply-changes\n-  abort: cannot absorb into a merge\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg revert -q -C m1 m2\n+  file not managed: m1\n+  file not managed: m2\n \n Use a new repo:\n \n@@ -293,16 +498,79 @@\n   M b\n   $ hg absorb --apply-changes a\n   saved backup bundle to * (glob)\n-  1 of 1 chunk(s) applied\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo2\\.hg\\strip-backup/6905bbb02e4e-66e0bf27-absorb.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo2\\.hg\\strip-backup/6905bbb02e4e-eb8c15e7-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo2\\.hg\\strip-backup/6905bbb02e4e-eb8c15e7-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: absorb\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 1157, in absorbcmd\n+      state = absorb(ui, repo, pats=pats, opts=opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 1082, in absorb\n+      if state.commit():\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\absorb.py", line 751, in commit\n+      self._cleanupoldcommits()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg status\n   M b\n   $ hg absorb --apply-changes --exclude b\n-  nothing applied\n-  [1]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg absorb --apply-changes b\n-  saved backup bundle to * (glob)\n-  1 of 1 chunk(s) applied\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n+  M b\n   $ cat a b\n   a Line 1\n   a Line 2\n@@ -313,10 +581,14 @@\n \n   $ sedi \'s/Line/line/\' a b\n   $ hg log -T \'{rev}:{node} {desc}\\n\'\n-  3:712d16a8f445834e36145408eabc1d29df05ec09 commit b 2\n-  2:74cfa6294160149d60adbf7582b99ce37a4597ec commit b 1\n-  1:28f10dcf96158f84985358a2e5d5b3505ca69c22 commit a 2\n-  0:f9a81da8dc53380ed91902e5b82c1b36255a4bd0 commit a 1\n+  7:61782db6c4c129392d43b633cc535e172d845430 commit b 2\n+  6:2517e374a480123743200c26b45038cde32ba361 commit b 1\n+  5:28f10dcf96158f84985358a2e5d5b3505ca69c22 commit a 2\n+  4:f9a81da8dc53380ed91902e5b82c1b36255a4bd0 commit a 1\n+  3:a478955a9e03dc071c2cb465670b40fed4c0ac31 commit b 2\n+  2:7380d5e6fab8a0fabf4c1f679b84c965508156d7 commit b 1\n+  1:4472dd5179ebd3c1242ad2b59341a4e0dabf027e commit a 2\n+  0:6905bbb02e4e4ae007d5e6738558e0bbbcb08878 commit a 1\n   $ hg --config absorb.max-stack-size=1 absorb -pn\n   absorb: only the recent 1 changesets will be analysed\n   showing changes for a\n@@ -325,15 +597,9 @@\n           -a Line 2\n           +a line 1\n           +a line 2\n-  showing changes for b\n-          @@ -0,2 +0,2 @@\n-          -b Line 1\n-  712d16a -b Line 2\n-          +b line 1\n-  712d16a +b line 2\n-  \n-  1 changesets affected\n-  712d16a commit b 2\n+  \n+  0 changesets affected\n+  [1]\n \n Test obsolete markers creation:\n \n@@ -346,19 +612,31 @@\n \n   $ hg --config absorb.max-stack-size=3 absorb -a\n   absorb: only the recent 3 changesets will be analysed\n-  2 of 2 chunk(s) applied\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -T \'{rev}:{node|short} {desc} {get(extras, "absorb_source")}\\n\'\n-  6:3dfde4199b46 commit b 2 712d16a8f445834e36145408eabc1d29df05ec09\n-  5:99cfab7da5ff commit b 1 74cfa6294160149d60adbf7582b99ce37a4597ec\n-  4:fec2b3bd9e08 commit a 2 28f10dcf96158f84985358a2e5d5b3505ca69c22\n-  0:f9a81da8dc53 commit a 1 \n+  7:61782db6c4c1 commit b 2 \n+  6:2517e374a480 commit b 1 \n+  5:28f10dcf9615 commit a 2 \n+  4:f9a81da8dc53 commit a 1 \n+  3:a478955a9e03 commit b 2 \n+  2:7380d5e6fab8 commit b 1 \n+  1:4472dd5179eb commit a 2 \n+  0:6905bbb02e4e commit a 1 \n   $ hg absorb --apply-changes\n-  1 of 1 chunk(s) applied\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -T \'{rev}:{node|short} {desc} {get(extras, "absorb_source")}\\n\'\n-  10:e1c8c1e030a4 commit b 2 3dfde4199b4610ea6e3c6fa9f5bdad8939d69524\n-  9:816c30955758 commit b 1 99cfab7da5ffdaf3b9fc6643b14333e194d87f46\n-  8:5867d584106b commit a 2 fec2b3bd9e0834b7cb6a564348a0058171aed811\n-  7:8c76602baf10 commit a 1 f9a81da8dc53380ed91902e5b82c1b36255a4bd0\n+  7:61782db6c4c1 commit b 2 \n+  6:2517e374a480 commit b 1 \n+  5:28f10dcf9615 commit a 2 \n+  4:f9a81da8dc53 commit a 1 \n+  3:a478955a9e03 commit b 2 \n+  2:7380d5e6fab8 commit b 1 \n+  1:4472dd5179eb commit a 2 \n+  0:6905bbb02e4e commit a 1 \n \n Executable files:\n \n', 2447, 2449, 'truncated \\uXXXX escape') decoding diff, sorry

test-acl.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-acl.t\n+++ c:/hgdev/src/tests/test-acl.t.err\n@@ -357,9 +357,63 @@\n   bundle2-input-part: total payload size 1553\n   bundle2-input-part: total payload size 24\n   bundle2-input-bundle: 5 parts total\n-  transaction abort!\n-  rollback completed\n-  abort: acl: user "fred" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")\n+  ** Unknown exception encountered with possibly-broken third-party extension "posixgetuser" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "posixgetuser" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: acl, posixgetuser\n+  Traceback (most recent call last):\n+    File "C:/Temp/hgtests.dstqqw/install/bin/hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 5612, in push\n+      opargs=opargs,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 458, in push\n+      _pushbundle2(pushop)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1125, in _pushbundle2\n+      b\'url\': pushop.remote.url(),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\thirdparty\\concurrent\\futures\\_base.py", line 457, in result\n+      return self.__get_result()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 246, in callcommand\n+      result = fn(**pycompat.strkwargs(args))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 360, in unbundle\n+      ret = exchange.unbundle(self._repo, bundle, heads, b\'push\', url)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 2645, in unbundle\n+      lockmod.release(lockandtr[2], lockandtr[1], lockandtr[0])\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   no rollback information available\n   0:6675d58eff77\n   \n@@ -398,42 +452,8 @@\n   bundle2-output-part: "check:updated-heads" streamed payload\n   bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n   bundle2-output-part: "phase-heads" 24 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 20\n-  invalid branch cache (served): tip differs\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  adding manifests\n-  adding file changes\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "fred"\n-  acl: acl.allow.branches not enabled\n-  acl: acl.deny.branches not enabled\n-  acl: acl.allow enabled, 1 entries for user fred\n-  acl: acl.deny not enabled\n-  acl: branch access granted: "ef1ea85a6374" on branch "default"\n-  acl: path access granted: "ef1ea85a6374"\n-  acl: branch access granted: "f9cafe1212c8" on branch "default"\n-  acl: path access granted: "f9cafe1212c8"\n-  acl: branch access granted: "911600dab2ae" on branch "default"\n-  error: pretxnchangegroup.acl hook failed: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae")\n-  bundle2-input-part: total payload size 1553\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-bundle: 5 parts total\n-  transaction abort!\n-  rollback completed\n-  abort: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   no rollback information available\n   0:6675d58eff77\n   \n@@ -473,38 +493,8 @@\n   bundle2-output-part: "check:updated-heads" streamed payload\n   bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n   bundle2-output-part: "phase-heads" 24 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 20\n-  invalid branch cache (served): tip differs\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  adding manifests\n-  adding file changes\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "barney"\n-  acl: acl.allow.branches not enabled\n-  acl: acl.deny.branches not enabled\n-  acl: acl.allow enabled, 0 entries for user barney\n-  acl: acl.deny enabled, 0 entries for user barney\n-  acl: branch access granted: "ef1ea85a6374" on branch "default"\n-  error: pretxnchangegroup.acl hook failed: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")\n-  bundle2-input-part: total payload size 1553\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-bundle: 5 parts total\n-  transaction abort!\n-  rollback completed\n-  abort: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   no rollback information available\n   0:6675d58eff77\n   \n@@ -545,42 +535,8 @@\n   bundle2-output-part: "check:updated-heads" streamed payload\n   bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n   bundle2-output-part: "phase-heads" 24 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 20\n-  invalid branch cache (served): tip differs\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  adding manifests\n-  adding file changes\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "fred"\n-  acl: acl.allow.branches not enabled\n-  acl: acl.deny.branches not enabled\n-  acl: acl.allow enabled, 1 entries for user fred\n-  acl: acl.deny enabled, 1 entries for user fred\n-  acl: branch access granted: "ef1ea85a6374" on branch "default"\n-  acl: path access granted: "ef1ea85a6374"\n-  acl: branch access granted: "f9cafe1212c8" on branch "default"\n-  acl: path access granted: "f9cafe1212c8"\n-  acl: branch access granted: "911600dab2ae" on branch "default"\n-  error: pretxnchangegroup.acl hook failed: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae")\n-  bundle2-input-part: total payload size 1553\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-bundle: 5 parts total\n-  transaction abort!\n-  rollback completed\n-  abort: acl: user "fred" not allowed on "quux/file.py" (changeset "911600dab2ae")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   no rollback information available\n   0:6675d58eff77\n   \n@@ -622,40 +578,8 @@\n   bundle2-output-part: "check:updated-heads" streamed payload\n   bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n   bundle2-output-part: "phase-heads" 24 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 20\n-  invalid branch cache (served): tip differs\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  adding manifests\n-  adding file changes\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "fred"\n-  acl: acl.allow.branches not enabled\n-  acl: acl.deny.branches not enabled\n-  acl: acl.allow enabled, 1 entries for user fred\n-  acl: acl.deny enabled, 2 entries for user fred\n-  acl: branch access granted: "ef1ea85a6374" on branch "default"\n-  acl: path access granted: "ef1ea85a6374"\n-  acl: branch access granted: "f9cafe1212c8" on branch "default"\n-  error: pretxnchangegroup.acl hook failed: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")\n-  bundle2-input-part: total payload size 1553\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-bundle: 5 parts total\n-  transaction abort!\n-  rollback completed\n-  abort: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   no rollback information available\n   0:6675d58eff77\n   \n@@ -696,38 +620,8 @@\n   bundle2-output-part: "check:updated-heads" streamed payload\n   bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n   bundle2-output-part: "phase-heads" 24 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 20\n-  invalid branch cache (served): tip differs\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  adding manifests\n-  adding file changes\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "barney"\n-  acl: acl.allow.branches not enabled\n-  acl: acl.deny.branches not enabled\n-  acl: acl.allow enabled, 0 entries for user barney\n-  acl: acl.deny enabled, 0 entries for user barney\n-  acl: branch access granted: "ef1ea85a6374" on branch "default"\n-  error: pretxnchangegroup.acl hook failed: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")\n-  bundle2-input-part: total payload size 1553\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-bundle: 5 parts total\n-  transaction abort!\n-  rollback completed\n-  abort: acl: user "barney" not allowed on "foo/file.txt" (changeset "ef1ea85a6374")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   no rollback information available\n   0:6675d58eff77\n   \n@@ -736,6 +630,9 @@\n \n   $ hg -R a book -q moving-bookmark -r 1\n   $ hg -R b book -q moving-bookmark -r 0\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cp $config normalconfig\n   $ do_push fred -r 1\n   Pushing as user fred\n@@ -763,59 +660,15 @@\n   1 changesets found\n   list of changesets:\n   ef1ea85a6374b77d6da9dcda9541f498f2d17df7\n-  bundle2-output-bundle: "HG20", 7 parts total\n-  bundle2-output-part: "replycaps" 224 bytes payload\n-  bundle2-output-part: "check:bookmarks" 37 bytes payload\n-  bundle2-output-part: "check:phases" 24 bytes payload\n-  bundle2-output-part: "check:updated-heads" streamed payload\n-  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n-  bundle2-output-part: "phase-heads" 24 bytes payload\n-  bundle2-output-part: "bookmarks" 37 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:bookmarks" supported\n-  bundle2-input-part: total payload size 37\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 20\n-  invalid branch cache (served): tip differs\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  adding manifests\n-  adding file changes\n-  adding foo/file.txt revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "fred"\n-  acl: acl.allow.branches not enabled\n-  acl: acl.deny.branches not enabled\n-  acl: acl.allow enabled, 1 entries for user fred\n-  acl: acl.deny enabled, 2 entries for user fred\n-  acl: branch access granted: "ef1ea85a6374" on branch "default"\n-  acl: path access granted: "ef1ea85a6374"\n-  bundle2-input-part: total payload size 520\n-  bundle2-input-part: "phase-heads" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-part: "bookmarks" supported\n-  bundle2-input-part: total payload size 37\n-  calling hook prepushkey.acl: hgext.acl.hook\n-  acl: checking access for user "fred"\n-  acl: acl.allow.bookmarks not enabled\n-  acl: acl.deny.bookmarks not enabled\n-  acl: bookmark access granted: "ef1ea85a6374b77d6da9dcda9541f498f2d17df7" on bookmark "moving-bookmark"\n-  bundle2-input-bundle: 7 parts total\n-  updating the branch cache\n-  added 1 changesets with 1 changes to 1 files\n-  bundle2-output-bundle: "HG20", 1 parts total\n-  bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload\n-  bundle2-input-bundle: no-transaction\n-  bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported\n-  bundle2-input-bundle: 1 parts total\n-  updating bookmark moving-bookmark\n-  listing keys for "phases"\n-  repository tip rolled back to revision 0 (undo push)\n+  bundle2-output-bundle: "HG20", 5 parts total\n+  bundle2-output-part: "replycaps" 224 bytes payload\n+  bundle2-output-part: "check:phases" 24 bytes payload\n+  bundle2-output-part: "check:updated-heads" streamed payload\n+  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n+  bundle2-output-part: "phase-heads" 24 bytes payload\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  no rollback information available\n   0:6675d58eff77\n   \n \n@@ -851,52 +704,14 @@\n   1 changesets found\n   list of changesets:\n   ef1ea85a6374b77d6da9dcda9541f498f2d17df7\n-  bundle2-output-bundle: "HG20", 7 parts total\n-  bundle2-output-part: "replycaps" 224 bytes payload\n-  bundle2-output-part: "check:bookmarks" 37 bytes payload\n-  bundle2-output-part: "check:phases" 24 bytes payload\n-  bundle2-output-part: "check:updated-heads" streamed payload\n-  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n-  bundle2-output-part: "phase-heads" 24 bytes payload\n-  bundle2-output-part: "bookmarks" 37 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:bookmarks" supported\n-  bundle2-input-part: total payload size 37\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 20\n-  invalid branch cache (served): tip differs\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  adding manifests\n-  adding file changes\n-  adding foo/file.txt revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "fred"\n-  acl: acl.allow.branches not enabled\n-  acl: acl.deny.branches not enabled\n-  acl: acl.allow enabled, 1 entries for user fred\n-  acl: acl.deny enabled, 2 entries for user fred\n-  acl: branch access granted: "ef1ea85a6374" on branch "default"\n-  acl: path access granted: "ef1ea85a6374"\n-  bundle2-input-part: total payload size 520\n-  bundle2-input-part: "phase-heads" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-part: "bookmarks" supported\n-  bundle2-input-part: total payload size 37\n-  calling hook prepushkey.acl: hgext.acl.hook\n-  acl: checking access for user "fred"\n-  acl: acl.allow.bookmarks not enabled\n-  acl: acl.deny.bookmarks enabled, 1 entries for user fred\n-  error: prepushkey.acl hook failed: acl: user "fred" denied on bookmark "moving-bookmark" (changeset "ef1ea85a6374b77d6da9dcda9541f498f2d17df7")\n-  bundle2-input-bundle: 7 parts total\n-  transaction abort!\n-  rollback completed\n-  abort: acl: user "fred" denied on bookmark "moving-bookmark" (changeset "ef1ea85a6374b77d6da9dcda9541f498f2d17df7")\n+  bundle2-output-bundle: "HG20", 5 parts total\n+  bundle2-output-part: "replycaps" 224 bytes payload\n+  bundle2-output-part: "check:phases" 24 bytes payload\n+  bundle2-output-part: "check:updated-heads" streamed payload\n+  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n+  bundle2-output-part: "phase-heads" 24 bytes payload\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   no rollback information available\n   0:6675d58eff77\n   \n@@ -905,6 +720,9 @@\n \n   $ hg book -R a -d moving-bookmark\n   $ hg book -R b -d moving-bookmark\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cp normalconfig $config\n \n barney is allowed everywhere\n@@ -947,49 +765,9 @@\n   bundle2-output-part: "check:updated-heads" streamed payload\n   bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n   bundle2-output-part: "phase-heads" 24 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 20\n-  invalid branch cache (served): tip differs\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  adding manifests\n-  adding file changes\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "barney"\n-  acl: acl.allow.branches not enabled\n-  acl: acl.deny.branches not enabled\n-  acl: acl.allow enabled, 1 entries for user barney\n-  acl: acl.deny enabled, 0 entries for user barney\n-  acl: branch access granted: "ef1ea85a6374" on branch "default"\n-  acl: path access granted: "ef1ea85a6374"\n-  acl: branch access granted: "f9cafe1212c8" on branch "default"\n-  acl: path access granted: "f9cafe1212c8"\n-  acl: branch access granted: "911600dab2ae" on branch "default"\n-  acl: path access granted: "911600dab2ae"\n-  bundle2-input-part: total payload size 1553\n-  bundle2-input-part: "phase-heads" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-bundle: 5 parts total\n-  updating the branch cache\n-  added 3 changesets with 3 changes to 3 files\n-  bundle2-output-bundle: "HG20", 1 parts total\n-  bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload\n-  bundle2-input-bundle: no-transaction\n-  bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported\n-  bundle2-input-bundle: 1 parts total\n-  listing keys for "phases"\n-  repository tip rolled back to revision 0 (undo push)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  no rollback information available\n   0:6675d58eff77\n   \n \n@@ -1033,42 +811,8 @@\n   bundle2-output-part: "check:updated-heads" streamed payload\n   bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n   bundle2-output-part: "phase-heads" 24 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 20\n-  invalid branch cache (served): tip differs\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  adding manifests\n-  adding file changes\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "wilma"\n-  acl: acl.allow.branches not enabled\n-  acl: acl.deny.branches not enabled\n-  acl: acl.allow enabled, 1 entries for user wilma\n-  acl: acl.deny enabled, 0 entries for user wilma\n-  acl: branch access granted: "ef1ea85a6374" on branch "default"\n-  acl: path access granted: "ef1ea85a6374"\n-  acl: branch access granted: "f9cafe1212c8" on branch "default"\n-  acl: path access granted: "f9cafe1212c8"\n-  acl: branch access granted: "911600dab2ae" on branch "default"\n-  error: pretxnchangegroup.acl hook failed: acl: user "wilma" not allowed on "quux/file.py" (changeset "911600dab2ae")\n-  bundle2-input-part: total payload size 1553\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-bundle: 5 parts total\n-  transaction abort!\n-  rollback completed\n-  abort: acl: user "wilma" not allowed on "quux/file.py" (changeset "911600dab2ae")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   no rollback information available\n   0:6675d58eff77\n   \n@@ -1116,33 +860,8 @@\n   bundle2-output-part: "check:updated-heads" streamed payload\n   bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n   bundle2-output-part: "phase-heads" 24 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 20\n-  invalid branch cache (served): tip differs\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  adding manifests\n-  adding file changes\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "barney"\n-  error: pretxnchangegroup.acl hook raised an exception: [Errno *] * (glob)\n-  bundle2-input-part: total payload size 1553\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-bundle: 5 parts total\n-  transaction abort!\n-  rollback completed\n-  abort: $ENOENT$: \'../acl.config\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   no rollback information available\n   0:6675d58eff77\n   \n@@ -1194,42 +913,8 @@\n   bundle2-output-part: "check:updated-heads" streamed payload\n   bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n   bundle2-output-part: "phase-heads" 24 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 20\n-  invalid branch cache (served): tip differs\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  adding manifests\n-  adding file changes\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "betty"\n-  acl: acl.allow.branches not enabled\n-  acl: acl.deny.branches not enabled\n-  acl: acl.allow enabled, 1 entries for user betty\n-  acl: acl.deny enabled, 0 entries for user betty\n-  acl: branch access granted: "ef1ea85a6374" on branch "default"\n-  acl: path access granted: "ef1ea85a6374"\n-  acl: branch access granted: "f9cafe1212c8" on branch "default"\n-  acl: path access granted: "f9cafe1212c8"\n-  acl: branch access granted: "911600dab2ae" on branch "default"\n-  error: pretxnchangegroup.acl hook failed: acl: user "betty" not allowed on "quux/file.py" (changeset "911600dab2ae")\n-  bundle2-input-part: total payload size 1553\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-bundle: 5 parts total\n-  transaction abort!\n-  rollback completed\n-  abort: acl: user "betty" not allowed on "quux/file.py" (changeset "911600dab2ae")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   no rollback information available\n   0:6675d58eff77\n   \n@@ -1283,49 +968,9 @@\n   bundle2-output-part: "check:updated-heads" streamed payload\n   bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n   bundle2-output-part: "phase-heads" 24 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 20\n-  invalid branch cache (served): tip differs\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  adding manifests\n-  adding file changes\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "barney"\n-  acl: acl.allow.branches not enabled\n-  acl: acl.deny.branches not enabled\n-  acl: acl.allow enabled, 1 entries for user barney\n-  acl: acl.deny enabled, 0 entries for user barney\n-  acl: branch access granted: "ef1ea85a6374" on branch "default"\n-  acl: path access granted: "ef1ea85a6374"\n-  acl: branch access granted: "f9cafe1212c8" on branch "default"\n-  acl: path access granted: "f9cafe1212c8"\n-  acl: branch access granted: "911600dab2ae" on branch "default"\n-  acl: path access granted: "911600dab2ae"\n-  bundle2-input-part: total payload size 1553\n-  bundle2-input-part: "phase-heads" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-bundle: 5 parts total\n-  updating the branch cache\n-  added 3 changesets with 3 changes to 3 files\n-  bundle2-output-bundle: "HG20", 1 parts total\n-  bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload\n-  bundle2-input-bundle: no-transaction\n-  bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported\n-  bundle2-input-bundle: 1 parts total\n-  listing keys for "phases"\n-  repository tip rolled back to revision 0 (undo push)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  no rollback information available\n   0:6675d58eff77\n   \n \n@@ -1373,49 +1018,9 @@\n   bundle2-output-part: "check:updated-heads" streamed payload\n   bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n   bundle2-output-part: "phase-heads" 24 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 20\n-  invalid branch cache (served): tip differs\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  adding manifests\n-  adding file changes\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "fred"\n-  acl: acl.allow.branches not enabled\n-  acl: acl.deny.branches not enabled\n-  acl: acl.allow enabled, 1 entries for user fred\n-  acl: acl.deny not enabled\n-  acl: branch access granted: "ef1ea85a6374" on branch "default"\n-  acl: path access granted: "ef1ea85a6374"\n-  acl: branch access granted: "f9cafe1212c8" on branch "default"\n-  acl: path access granted: "f9cafe1212c8"\n-  acl: branch access granted: "911600dab2ae" on branch "default"\n-  acl: path access granted: "911600dab2ae"\n-  bundle2-input-part: total payload size 1553\n-  bundle2-input-part: "phase-heads" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-bundle: 5 parts total\n-  updating the branch cache\n-  added 3 changesets with 3 changes to 3 files\n-  bundle2-output-bundle: "HG20", 1 parts total\n-  bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload\n-  bundle2-input-bundle: no-transaction\n-  bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported\n-  bundle2-input-bundle: 1 parts total\n-  listing keys for "phases"\n-  repository tip rolled back to revision 0 (undo push)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  no rollback information available\n   0:6675d58eff77\n   \n \n@@ -1459,40 +1064,8 @@\n   bundle2-output-part: "check:updated-heads" streamed payload\n   bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n   bundle2-output-part: "phase-heads" 24 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 20\n-  invalid branch cache (served): tip differs\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  adding manifests\n-  adding file changes\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "fred"\n-  acl: acl.allow.branches not enabled\n-  acl: acl.deny.branches not enabled\n-  acl: acl.allow enabled, 1 entries for user fred\n-  acl: acl.deny enabled, 1 entries for user fred\n-  acl: branch access granted: "ef1ea85a6374" on branch "default"\n-  acl: path access granted: "ef1ea85a6374"\n-  acl: branch access granted: "f9cafe1212c8" on branch "default"\n-  error: pretxnchangegroup.acl hook failed: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")\n-  bundle2-input-part: total payload size 1553\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-bundle: 5 parts total\n-  transaction abort!\n-  rollback completed\n-  abort: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   no rollback information available\n   0:6675d58eff77\n   \n@@ -1541,50 +1114,9 @@\n   bundle2-output-part: "check:updated-heads" streamed payload\n   bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n   bundle2-output-part: "phase-heads" 24 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 20\n-  invalid branch cache (served): tip differs\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  adding manifests\n-  adding file changes\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "fred"\n-  acl: acl.allow.branches not enabled\n-  acl: acl.deny.branches not enabled\n-  acl: "group1" not defined in [acl.groups]\n-  acl: acl.allow enabled, 1 entries for user fred\n-  acl: acl.deny not enabled\n-  acl: branch access granted: "ef1ea85a6374" on branch "default"\n-  acl: path access granted: "ef1ea85a6374"\n-  acl: branch access granted: "f9cafe1212c8" on branch "default"\n-  acl: path access granted: "f9cafe1212c8"\n-  acl: branch access granted: "911600dab2ae" on branch "default"\n-  acl: path access granted: "911600dab2ae"\n-  bundle2-input-part: total payload size 1553\n-  bundle2-input-part: "phase-heads" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-bundle: 5 parts total\n-  updating the branch cache\n-  added 3 changesets with 3 changes to 3 files\n-  bundle2-output-bundle: "HG20", 1 parts total\n-  bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload\n-  bundle2-input-bundle: no-transaction\n-  bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported\n-  bundle2-input-bundle: 1 parts total\n-  listing keys for "phases"\n-  repository tip rolled back to revision 0 (undo push)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  no rollback information available\n   0:6675d58eff77\n   \n \n@@ -1628,42 +1160,8 @@\n   bundle2-output-part: "check:updated-heads" streamed payload\n   bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n   bundle2-output-part: "phase-heads" 24 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 20\n-  invalid branch cache (served): tip differs\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  adding manifests\n-  adding file changes\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "fred"\n-  acl: acl.allow.branches not enabled\n-  acl: acl.deny.branches not enabled\n-  acl: "group1" not defined in [acl.groups]\n-  acl: acl.allow enabled, 1 entries for user fred\n-  acl: "group1" not defined in [acl.groups]\n-  acl: acl.deny enabled, 1 entries for user fred\n-  acl: branch access granted: "ef1ea85a6374" on branch "default"\n-  acl: path access granted: "ef1ea85a6374"\n-  acl: branch access granted: "f9cafe1212c8" on branch "default"\n-  error: pretxnchangegroup.acl hook failed: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")\n-  bundle2-input-part: total payload size 1553\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-bundle: 5 parts total\n-  transaction abort!\n-  rollback completed\n-  abort: acl: user "fred" denied on "foo/Bar/file.txt" (changeset "f9cafe1212c8")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   no rollback information available\n   0:6675d58eff77\n   \n@@ -1678,9 +1176,6 @@\n   $ echo "** = @unlikelytoexist" >> $config\n   $ do_push fred 2>&1 | grep unlikelytoexist\n   ** = @unlikelytoexist\n-  acl: "unlikelytoexist" not defined in [acl.groups]\n-  error: pretxnchangegroup.acl hook failed: group \'unlikelytoexist\' is undefined\n-  abort: group \'unlikelytoexist\' is undefined\n \n \n Branch acl tests setup\n@@ -1693,27 +1188,31 @@\n   marked working directory as branch foobar\n   (branches are permanent and global, did you want a bookmark?)\n   $ hg commit -m \'create foobar\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo \'foo contents\' > abc.txt\n   $ hg add abc.txt\n   $ hg commit -m \'foobar contents\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cd ..\n   $ hg --cwd a pull ../b\n   pulling from ../b\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets 81fbf4469322:fb35475503ef\n-  (run \'hg heads\' to see heads)\n+  no changes found\n \n Create additional changeset on foobar branch\n \n   $ cd a\n   $ hg up -C foobar\n-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: unknown revision \'foobar\'\n+  [255]\n   $ echo \'foo contents2\' > abc.txt\n   $ hg commit -m \'foobar contents2\'\n+  nothing changed\n+  [1]\n   $ cd ..\n \n \n@@ -1737,66 +1236,23 @@\n   listing keys for "phases"\n   checking for updated bookmarks\n   listing keys for "bookmarks"\n-  listing keys for "bookmarks"\n-  4 changesets found\n-  list of changesets:\n-  ef1ea85a6374b77d6da9dcda9541f498f2d17df7\n-  f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd\n-  911600dab2ae7a9baff75958b84fe606851ce955\n-  e8fc755d4d8217ee5b0c2bb41558c40d43b92c01\n-  bundle2-output-bundle: "HG20", 5 parts total\n-  bundle2-output-part: "replycaps" 224 bytes payload\n-  bundle2-output-part: "check:phases" 48 bytes payload\n-  bundle2-output-part: "check:updated-heads" streamed payload\n-  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n-  bundle2-output-part: "phase-heads" 48 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 48\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 40\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  add changeset e8fc755d4d82\n-  adding manifests\n-  adding file changes\n-  adding abc.txt revisions\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "astro"\n-  acl: acl.allow.branches not enabled\n-  acl: acl.deny.branches not enabled\n-  acl: acl.allow not enabled\n-  acl: acl.deny not enabled\n-  acl: branch access granted: "ef1ea85a6374" on branch "default"\n-  acl: path access granted: "ef1ea85a6374"\n-  acl: branch access granted: "f9cafe1212c8" on branch "default"\n-  acl: path access granted: "f9cafe1212c8"\n-  acl: branch access granted: "911600dab2ae" on branch "default"\n-  acl: path access granted: "911600dab2ae"\n-  acl: branch access granted: "e8fc755d4d82" on branch "foobar"\n-  acl: path access granted: "e8fc755d4d82"\n-  bundle2-input-part: total payload size 2068\n-  bundle2-input-part: "phase-heads" supported\n-  bundle2-input-part: total payload size 48\n-  bundle2-input-bundle: 5 parts total\n-  updating the branch cache\n-  added 4 changesets with 4 changes to 4 files (+1 heads)\n-  bundle2-output-bundle: "HG20", 1 parts total\n-  bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload\n-  bundle2-input-bundle: no-transaction\n-  bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported\n-  bundle2-input-bundle: 1 parts total\n-  listing keys for "phases"\n-  repository tip rolled back to revision 2 (undo push)\n-  2:fb35475503ef\n+  invalid branch cache (served): tip differs\n+  listing keys for "bookmarks"\n+  3 changesets found\n+  list of changesets:\n+  ef1ea85a6374b77d6da9dcda9541f498f2d17df7\n+  f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd\n+  911600dab2ae7a9baff75958b84fe606851ce955\n+  bundle2-output-bundle: "HG20", 5 parts total\n+  bundle2-output-part: "replycaps" 224 bytes payload\n+  bundle2-output-part: "check:phases" 24 bytes payload\n+  bundle2-output-part: "check:updated-heads" streamed payload\n+  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n+  bundle2-output-part: "phase-heads" 24 bytes payload\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  no rollback information available\n+  0:6675d58eff77\n   \n \n Branch acl deny test\n@@ -1823,59 +1279,23 @@\n   listing keys for "phases"\n   checking for updated bookmarks\n   listing keys for "bookmarks"\n-  listing keys for "bookmarks"\n-  4 changesets found\n-  list of changesets:\n-  ef1ea85a6374b77d6da9dcda9541f498f2d17df7\n-  f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd\n-  911600dab2ae7a9baff75958b84fe606851ce955\n-  e8fc755d4d8217ee5b0c2bb41558c40d43b92c01\n-  bundle2-output-bundle: "HG20", 5 parts total\n-  bundle2-output-part: "replycaps" 224 bytes payload\n-  bundle2-output-part: "check:phases" 48 bytes payload\n-  bundle2-output-part: "check:updated-heads" streamed payload\n-  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n-  bundle2-output-part: "phase-heads" 48 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 48\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 40\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  add changeset e8fc755d4d82\n-  adding manifests\n-  adding file changes\n-  adding abc.txt revisions\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "astro"\n-  acl: acl.allow.branches not enabled\n-  acl: acl.deny.branches enabled, 1 entries for user astro\n-  acl: acl.allow not enabled\n-  acl: acl.deny not enabled\n-  acl: branch access granted: "ef1ea85a6374" on branch "default"\n-  acl: path access granted: "ef1ea85a6374"\n-  acl: branch access granted: "f9cafe1212c8" on branch "default"\n-  acl: path access granted: "f9cafe1212c8"\n-  acl: branch access granted: "911600dab2ae" on branch "default"\n-  acl: path access granted: "911600dab2ae"\n-  error: pretxnchangegroup.acl hook failed: acl: user "astro" denied on branch "foobar" (changeset "e8fc755d4d82")\n-  bundle2-input-part: total payload size 2068\n-  bundle2-input-part: total payload size 48\n-  bundle2-input-bundle: 5 parts total\n-  transaction abort!\n-  rollback completed\n-  abort: acl: user "astro" denied on branch "foobar" (changeset "e8fc755d4d82")\n-  no rollback information available\n-  2:fb35475503ef\n+  invalid branch cache (served): tip differs\n+  listing keys for "bookmarks"\n+  3 changesets found\n+  list of changesets:\n+  ef1ea85a6374b77d6da9dcda9541f498f2d17df7\n+  f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd\n+  911600dab2ae7a9baff75958b84fe606851ce955\n+  bundle2-output-bundle: "HG20", 5 parts total\n+  bundle2-output-part: "replycaps" 224 bytes payload\n+  bundle2-output-part: "check:phases" 24 bytes payload\n+  bundle2-output-part: "check:updated-heads" streamed payload\n+  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n+  bundle2-output-part: "phase-heads" 24 bytes payload\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  no rollback information available\n+  0:6675d58eff77\n   \n \n Branch acl empty allow test\n@@ -1901,53 +1321,23 @@\n   listing keys for "phases"\n   checking for updated bookmarks\n   listing keys for "bookmarks"\n-  listing keys for "bookmarks"\n-  4 changesets found\n-  list of changesets:\n-  ef1ea85a6374b77d6da9dcda9541f498f2d17df7\n-  f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd\n-  911600dab2ae7a9baff75958b84fe606851ce955\n-  e8fc755d4d8217ee5b0c2bb41558c40d43b92c01\n-  bundle2-output-bundle: "HG20", 5 parts total\n-  bundle2-output-part: "replycaps" 224 bytes payload\n-  bundle2-output-part: "check:phases" 48 bytes payload\n-  bundle2-output-part: "check:updated-heads" streamed payload\n-  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n-  bundle2-output-part: "phase-heads" 48 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 48\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 40\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  add changeset e8fc755d4d82\n-  adding manifests\n-  adding file changes\n-  adding abc.txt revisions\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "astro"\n-  acl: acl.allow.branches enabled, 0 entries for user astro\n-  acl: acl.deny.branches not enabled\n-  acl: acl.allow not enabled\n-  acl: acl.deny not enabled\n-  error: pretxnchangegroup.acl hook failed: acl: user "astro" not allowed on branch "default" (changeset "ef1ea85a6374")\n-  bundle2-input-part: total payload size 2068\n-  bundle2-input-part: total payload size 48\n-  bundle2-input-bundle: 5 parts total\n-  transaction abort!\n-  rollback completed\n-  abort: acl: user "astro" not allowed on branch "default" (changeset "ef1ea85a6374")\n-  no rollback information available\n-  2:fb35475503ef\n+  invalid branch cache (served): tip differs\n+  listing keys for "bookmarks"\n+  3 changesets found\n+  list of changesets:\n+  ef1ea85a6374b77d6da9dcda9541f498f2d17df7\n+  f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd\n+  911600dab2ae7a9baff75958b84fe606851ce955\n+  bundle2-output-bundle: "HG20", 5 parts total\n+  bundle2-output-part: "replycaps" 224 bytes payload\n+  bundle2-output-part: "check:phases" 24 bytes payload\n+  bundle2-output-part: "check:updated-heads" streamed payload\n+  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n+  bundle2-output-part: "phase-heads" 24 bytes payload\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  no rollback information available\n+  0:6675d58eff77\n   \n \n Branch acl allow other\n@@ -1975,53 +1365,23 @@\n   listing keys for "phases"\n   checking for updated bookmarks\n   listing keys for "bookmarks"\n-  listing keys for "bookmarks"\n-  4 changesets found\n-  list of changesets:\n-  ef1ea85a6374b77d6da9dcda9541f498f2d17df7\n-  f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd\n-  911600dab2ae7a9baff75958b84fe606851ce955\n-  e8fc755d4d8217ee5b0c2bb41558c40d43b92c01\n-  bundle2-output-bundle: "HG20", 5 parts total\n-  bundle2-output-part: "replycaps" 224 bytes payload\n-  bundle2-output-part: "check:phases" 48 bytes payload\n-  bundle2-output-part: "check:updated-heads" streamed payload\n-  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n-  bundle2-output-part: "phase-heads" 48 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 48\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 40\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  add changeset e8fc755d4d82\n-  adding manifests\n-  adding file changes\n-  adding abc.txt revisions\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "astro"\n-  acl: acl.allow.branches enabled, 0 entries for user astro\n-  acl: acl.deny.branches not enabled\n-  acl: acl.allow not enabled\n-  acl: acl.deny not enabled\n-  error: pretxnchangegroup.acl hook failed: acl: user "astro" not allowed on branch "default" (changeset "ef1ea85a6374")\n-  bundle2-input-part: total payload size 2068\n-  bundle2-input-part: total payload size 48\n-  bundle2-input-bundle: 5 parts total\n-  transaction abort!\n-  rollback completed\n-  abort: acl: user "astro" not allowed on branch "default" (changeset "ef1ea85a6374")\n-  no rollback information available\n-  2:fb35475503ef\n+  invalid branch cache (served): tip differs\n+  listing keys for "bookmarks"\n+  3 changesets found\n+  list of changesets:\n+  ef1ea85a6374b77d6da9dcda9541f498f2d17df7\n+  f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd\n+  911600dab2ae7a9baff75958b84fe606851ce955\n+  bundle2-output-bundle: "HG20", 5 parts total\n+  bundle2-output-part: "replycaps" 224 bytes payload\n+  bundle2-output-part: "check:phases" 24 bytes payload\n+  bundle2-output-part: "check:updated-heads" streamed payload\n+  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n+  bundle2-output-part: "phase-heads" 24 bytes payload\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  no rollback information available\n+  0:6675d58eff77\n   \n   $ do_push george\n   Pushing as user george\n@@ -2043,66 +1403,23 @@\n   listing keys for "phases"\n   checking for updated bookmarks\n   listing keys for "bookmarks"\n-  listing keys for "bookmarks"\n-  4 changesets found\n-  list of changesets:\n-  ef1ea85a6374b77d6da9dcda9541f498f2d17df7\n-  f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd\n-  911600dab2ae7a9baff75958b84fe606851ce955\n-  e8fc755d4d8217ee5b0c2bb41558c40d43b92c01\n-  bundle2-output-bundle: "HG20", 5 parts total\n-  bundle2-output-part: "replycaps" 224 bytes payload\n-  bundle2-output-part: "check:phases" 48 bytes payload\n-  bundle2-output-part: "check:updated-heads" streamed payload\n-  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n-  bundle2-output-part: "phase-heads" 48 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 48\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 40\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  add changeset e8fc755d4d82\n-  adding manifests\n-  adding file changes\n-  adding abc.txt revisions\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "george"\n-  acl: acl.allow.branches enabled, 1 entries for user george\n-  acl: acl.deny.branches not enabled\n-  acl: acl.allow not enabled\n-  acl: acl.deny not enabled\n-  acl: branch access granted: "ef1ea85a6374" on branch "default"\n-  acl: path access granted: "ef1ea85a6374"\n-  acl: branch access granted: "f9cafe1212c8" on branch "default"\n-  acl: path access granted: "f9cafe1212c8"\n-  acl: branch access granted: "911600dab2ae" on branch "default"\n-  acl: path access granted: "911600dab2ae"\n-  acl: branch access granted: "e8fc755d4d82" on branch "foobar"\n-  acl: path access granted: "e8fc755d4d82"\n-  bundle2-input-part: total payload size 2068\n-  bundle2-input-part: "phase-heads" supported\n-  bundle2-input-part: total payload size 48\n-  bundle2-input-bundle: 5 parts total\n-  updating the branch cache\n-  added 4 changesets with 4 changes to 4 files (+1 heads)\n-  bundle2-output-bundle: "HG20", 1 parts total\n-  bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload\n-  bundle2-input-bundle: no-transaction\n-  bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported\n-  bundle2-input-bundle: 1 parts total\n-  listing keys for "phases"\n-  repository tip rolled back to revision 2 (undo push)\n-  2:fb35475503ef\n+  invalid branch cache (served): tip differs\n+  listing keys for "bookmarks"\n+  3 changesets found\n+  list of changesets:\n+  ef1ea85a6374b77d6da9dcda9541f498f2d17df7\n+  f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd\n+  911600dab2ae7a9baff75958b84fe606851ce955\n+  bundle2-output-bundle: "HG20", 5 parts total\n+  bundle2-output-part: "replycaps" 224 bytes payload\n+  bundle2-output-part: "check:phases" 24 bytes payload\n+  bundle2-output-part: "check:updated-heads" streamed payload\n+  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n+  bundle2-output-part: "phase-heads" 24 bytes payload\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  no rollback information available\n+  0:6675d58eff77\n   \n \n Branch acl conflicting allow\n@@ -2134,66 +1451,23 @@\n   listing keys for "phases"\n   checking for updated bookmarks\n   listing keys for "bookmarks"\n-  listing keys for "bookmarks"\n-  4 changesets found\n-  list of changesets:\n-  ef1ea85a6374b77d6da9dcda9541f498f2d17df7\n-  f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd\n-  911600dab2ae7a9baff75958b84fe606851ce955\n-  e8fc755d4d8217ee5b0c2bb41558c40d43b92c01\n-  bundle2-output-bundle: "HG20", 5 parts total\n-  bundle2-output-part: "replycaps" 224 bytes payload\n-  bundle2-output-part: "check:phases" 48 bytes payload\n-  bundle2-output-part: "check:updated-heads" streamed payload\n-  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n-  bundle2-output-part: "phase-heads" 48 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 48\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 40\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  add changeset e8fc755d4d82\n-  adding manifests\n-  adding file changes\n-  adding abc.txt revisions\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "george"\n-  acl: acl.allow.branches enabled, 1 entries for user george\n-  acl: acl.deny.branches not enabled\n-  acl: acl.allow not enabled\n-  acl: acl.deny not enabled\n-  acl: branch access granted: "ef1ea85a6374" on branch "default"\n-  acl: path access granted: "ef1ea85a6374"\n-  acl: branch access granted: "f9cafe1212c8" on branch "default"\n-  acl: path access granted: "f9cafe1212c8"\n-  acl: branch access granted: "911600dab2ae" on branch "default"\n-  acl: path access granted: "911600dab2ae"\n-  acl: branch access granted: "e8fc755d4d82" on branch "foobar"\n-  acl: path access granted: "e8fc755d4d82"\n-  bundle2-input-part: total payload size 2068\n-  bundle2-input-part: "phase-heads" supported\n-  bundle2-input-part: total payload size 48\n-  bundle2-input-bundle: 5 parts total\n-  updating the branch cache\n-  added 4 changesets with 4 changes to 4 files (+1 heads)\n-  bundle2-output-bundle: "HG20", 1 parts total\n-  bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload\n-  bundle2-input-bundle: no-transaction\n-  bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported\n-  bundle2-input-bundle: 1 parts total\n-  listing keys for "phases"\n-  repository tip rolled back to revision 2 (undo push)\n-  2:fb35475503ef\n+  invalid branch cache (served): tip differs\n+  listing keys for "bookmarks"\n+  3 changesets found\n+  list of changesets:\n+  ef1ea85a6374b77d6da9dcda9541f498f2d17df7\n+  f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd\n+  911600dab2ae7a9baff75958b84fe606851ce955\n+  bundle2-output-bundle: "HG20", 5 parts total\n+  bundle2-output-part: "replycaps" 224 bytes payload\n+  bundle2-output-part: "check:phases" 24 bytes payload\n+  bundle2-output-part: "check:updated-heads" streamed payload\n+  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n+  bundle2-output-part: "phase-heads" 24 bytes payload\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  no rollback information available\n+  0:6675d58eff77\n   \n Branch acl conflicting deny\n \n@@ -2224,53 +1498,23 @@\n   listing keys for "phases"\n   checking for updated bookmarks\n   listing keys for "bookmarks"\n-  listing keys for "bookmarks"\n-  4 changesets found\n-  list of changesets:\n-  ef1ea85a6374b77d6da9dcda9541f498f2d17df7\n-  f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd\n-  911600dab2ae7a9baff75958b84fe606851ce955\n-  e8fc755d4d8217ee5b0c2bb41558c40d43b92c01\n-  bundle2-output-bundle: "HG20", 5 parts total\n-  bundle2-output-part: "replycaps" 224 bytes payload\n-  bundle2-output-part: "check:phases" 48 bytes payload\n-  bundle2-output-part: "check:updated-heads" streamed payload\n-  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n-  bundle2-output-part: "phase-heads" 48 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 48\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 40\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  add changeset e8fc755d4d82\n-  adding manifests\n-  adding file changes\n-  adding abc.txt revisions\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "george"\n-  acl: acl.allow.branches not enabled\n-  acl: acl.deny.branches enabled, 1 entries for user george\n-  acl: acl.allow not enabled\n-  acl: acl.deny not enabled\n-  error: pretxnchangegroup.acl hook failed: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374")\n-  bundle2-input-part: total payload size 2068\n-  bundle2-input-part: total payload size 48\n-  bundle2-input-bundle: 5 parts total\n-  transaction abort!\n-  rollback completed\n-  abort: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374")\n-  no rollback information available\n-  2:fb35475503ef\n+  invalid branch cache (served): tip differs\n+  listing keys for "bookmarks"\n+  3 changesets found\n+  list of changesets:\n+  ef1ea85a6374b77d6da9dcda9541f498f2d17df7\n+  f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd\n+  911600dab2ae7a9baff75958b84fe606851ce955\n+  bundle2-output-bundle: "HG20", 5 parts total\n+  bundle2-output-part: "replycaps" 224 bytes payload\n+  bundle2-output-part: "check:phases" 24 bytes payload\n+  bundle2-output-part: "check:updated-heads" streamed payload\n+  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n+  bundle2-output-part: "phase-heads" 24 bytes payload\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  no rollback information available\n+  0:6675d58eff77\n   \n User \'astro\' must not be denied\n \n@@ -2297,66 +1541,23 @@\n   listing keys for "phases"\n   checking for updated bookmarks\n   listing keys for "bookmarks"\n-  listing keys for "bookmarks"\n-  4 changesets found\n-  list of changesets:\n-  ef1ea85a6374b77d6da9dcda9541f498f2d17df7\n-  f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd\n-  911600dab2ae7a9baff75958b84fe606851ce955\n-  e8fc755d4d8217ee5b0c2bb41558c40d43b92c01\n-  bundle2-output-bundle: "HG20", 5 parts total\n-  bundle2-output-part: "replycaps" 224 bytes payload\n-  bundle2-output-part: "check:phases" 48 bytes payload\n-  bundle2-output-part: "check:updated-heads" streamed payload\n-  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n-  bundle2-output-part: "phase-heads" 48 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 48\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 40\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  add changeset e8fc755d4d82\n-  adding manifests\n-  adding file changes\n-  adding abc.txt revisions\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "astro"\n-  acl: acl.allow.branches not enabled\n-  acl: acl.deny.branches enabled, 0 entries for user astro\n-  acl: acl.allow not enabled\n-  acl: acl.deny not enabled\n-  acl: branch access granted: "ef1ea85a6374" on branch "default"\n-  acl: path access granted: "ef1ea85a6374"\n-  acl: branch access granted: "f9cafe1212c8" on branch "default"\n-  acl: path access granted: "f9cafe1212c8"\n-  acl: branch access granted: "911600dab2ae" on branch "default"\n-  acl: path access granted: "911600dab2ae"\n-  acl: branch access granted: "e8fc755d4d82" on branch "foobar"\n-  acl: path access granted: "e8fc755d4d82"\n-  bundle2-input-part: total payload size 2068\n-  bundle2-input-part: "phase-heads" supported\n-  bundle2-input-part: total payload size 48\n-  bundle2-input-bundle: 5 parts total\n-  updating the branch cache\n-  added 4 changesets with 4 changes to 4 files (+1 heads)\n-  bundle2-output-bundle: "HG20", 1 parts total\n-  bundle2-output-part: "reply:changegroup" (advisory) (params: 0 advisory) empty payload\n-  bundle2-input-bundle: no-transaction\n-  bundle2-input-part: "reply:changegroup" (advisory) (params: 0 advisory) supported\n-  bundle2-input-bundle: 1 parts total\n-  listing keys for "phases"\n-  repository tip rolled back to revision 2 (undo push)\n-  2:fb35475503ef\n+  invalid branch cache (served): tip differs\n+  listing keys for "bookmarks"\n+  3 changesets found\n+  list of changesets:\n+  ef1ea85a6374b77d6da9dcda9541f498f2d17df7\n+  f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd\n+  911600dab2ae7a9baff75958b84fe606851ce955\n+  bundle2-output-bundle: "HG20", 5 parts total\n+  bundle2-output-part: "replycaps" 224 bytes payload\n+  bundle2-output-part: "check:phases" 24 bytes payload\n+  bundle2-output-part: "check:updated-heads" streamed payload\n+  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n+  bundle2-output-part: "phase-heads" 24 bytes payload\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  no rollback information available\n+  0:6675d58eff77\n   \n \n Non-astro users must be denied\n@@ -2381,52 +1582,22 @@\n   listing keys for "phases"\n   checking for updated bookmarks\n   listing keys for "bookmarks"\n-  listing keys for "bookmarks"\n-  4 changesets found\n-  list of changesets:\n-  ef1ea85a6374b77d6da9dcda9541f498f2d17df7\n-  f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd\n-  911600dab2ae7a9baff75958b84fe606851ce955\n-  e8fc755d4d8217ee5b0c2bb41558c40d43b92c01\n-  bundle2-output-bundle: "HG20", 5 parts total\n-  bundle2-output-part: "replycaps" 224 bytes payload\n-  bundle2-output-part: "check:phases" 48 bytes payload\n-  bundle2-output-part: "check:updated-heads" streamed payload\n-  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n-  bundle2-output-part: "phase-heads" 48 bytes payload\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "replycaps" supported\n-  bundle2-input-part: total payload size 224\n-  bundle2-input-part: "check:phases" supported\n-  bundle2-input-part: total payload size 48\n-  bundle2-input-part: "check:updated-heads" supported\n-  bundle2-input-part: total payload size 40\n-  bundle2-input-part: "changegroup" (params: 1 mandatory) supported\n-  adding changesets\n-  add changeset ef1ea85a6374\n-  add changeset f9cafe1212c8\n-  add changeset 911600dab2ae\n-  add changeset e8fc755d4d82\n-  adding manifests\n-  adding file changes\n-  adding abc.txt revisions\n-  adding foo/Bar/file.txt revisions\n-  adding foo/file.txt revisions\n-  adding quux/file.py revisions\n-  calling hook pretxnchangegroup.acl: hgext.acl.hook\n-  acl: checking access for user "george"\n-  acl: acl.allow.branches not enabled\n-  acl: acl.deny.branches enabled, 1 entries for user george\n-  acl: acl.allow not enabled\n-  acl: acl.deny not enabled\n-  error: pretxnchangegroup.acl hook failed: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374")\n-  bundle2-input-part: total payload size 2068\n-  bundle2-input-part: total payload size 48\n-  bundle2-input-bundle: 5 parts total\n-  transaction abort!\n-  rollback completed\n-  abort: acl: user "george" denied on branch "default" (changeset "ef1ea85a6374")\n-  no rollback information available\n-  2:fb35475503ef\n-  \n-\n+  invalid branch cache (served): tip differs\n+  listing keys for "bookmarks"\n+  3 changesets found\n+  list of changesets:\n+  ef1ea85a6374b77d6da9dcda9541f498f2d17df7\n+  f9cafe1212c8c6fa1120d14a556e18cc44ff8bdd\n+  911600dab2ae7a9baff75958b84fe606851ce955\n+  bundle2-output-bundle: "HG20", 5 parts total\n+  bundle2-output-part: "replycaps" 224 bytes payload\n+  bundle2-output-part: "check:phases" 24 bytes payload\n+  bundle2-output-part: "check:updated-heads" streamed payload\n+  bundle2-output-part: "changegroup" (params: 1 mandatory) streamed payload\n+  bundle2-output-part: "phase-heads" 24 bytes payload\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  no rollback information available\n+  0:6675d58eff77\n+  \n+\n', 2448, 2450, 'truncated \\uXXXX escape') decoding diff, sorry

test-alias.t

--- c:/hgdev/src/tests/test-alias.t
+++ c:/hgdev/src/tests/test-alias.t.err
@@ -595,9 +595,9 @@
       rebase rebate
   [255]
   $ hg rebat
-  this is rebate
+  this is $HG_ARGS
 (esc)
   $ hg rebat --foo-bar
-  this is rebate --foo-bar
+  this is $HG_ARGS
 (esc)
 
 help for a shell alias
 
@@ -608,13 +608,14 @@
   
   shell alias for: echo this is %HG_ARGS% (windows !)
   shell alias for: echo this is $HG_ARGS (no-windows !)
+  shell alias for: echo this is $HG_ARGS
   
   This is my alias which just prints something.
+  */* (glob) (?)
+  */* (glob) (?)
+  */* (glob) (?)
   
   defined by:* (glob)
-  */* (glob) (?)
-  */* (glob) (?)
-  */* (glob) (?)
   
   (some details hidden, use --verbose to show complete help)
 

test-amend-subrepo.t#obsstore-off

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-amend-subrepo.t\n+++ c:/hgdev/src/tests/test-amend-subrepo.t#obsstore-off.err\n@@ -32,19 +32,67 @@\n amend without .hgsub\n \n   $ hg amend s\n-  abort: can\'t commit subrepos without .hgsub\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: amend\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\amend.py", line 76, in amend\n+      return commands._docommit(ui, repo, *pats, **pycompat.strkwargs(opts))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n amend with subrepo\n \n   $ hg amend\n   saved backup bundle to * (glob) (obsstore-off !)\n-  $ hg status --change .\n-  A .hgsub\n-  A .hgsubstate\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status --change .\n   A a\n   $ cat .hgsubstate\n-  0000000000000000000000000000000000000000 s\n+  cat: .hgsubstate: $ENOENT$\n+  [1]\n \n Update subrepo\n --------------\n@@ -53,6 +101,9 @@\n \n   $ echo a >> a\n   $ hg ci -m1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n amend with dirty subrepo\n \n@@ -60,8 +111,8 @@\n   $ hg add -R s\n   adding s/a\n   $ hg amend\n-  abort: uncommitted changes in subrepository "s"\n-  (use --subrepos for recursive commit)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n amend with modified subrepo\n@@ -69,19 +120,24 @@\n   $ hg ci -R s -m0\n   $ hg amend\n   saved backup bundle to * (glob) (obsstore-off !)\n-  $ hg status --change .\n-  M .hgsubstate\n-  M a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status --change .\n+  A a\n   $ cat .hgsubstate\n-  f7b1eb17ad24730a1651fccd46c43826d1bbc2ac s\n+  0000000000000000000000000000000000000000 s\n \n revert subrepo change\n \n   $ hg up -R s -q null\n   $ hg amend\n   saved backup bundle to * (glob) (obsstore-off !)\n-  $ hg status --change .\n-  M a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status --change .\n+  A a\n \n Link another subrepo\n --------------------\n@@ -90,6 +146,9 @@\n \n   $ echo b >> b\n   $ hg ci -qAm2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n also checks if non-subrepo change is included\n \n@@ -104,65 +163,75 @@\n   $ echo \'t = t\' >> .hgsub\n   $ hg amend\n   saved backup bundle to * (glob) (obsstore-off !)\n-  $ hg status --change .\n-  M .hgsub\n-  M .hgsubstate\n-  M a\n-  A b\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status --change .\n+  A a\n+  $ cat .hgsubstate\n+  0000000000000000000000000000000000000000 s\n+\n+Unlink one subrepo\n+------------------\n+\n+add new commit to be amended\n+\n+  $ echo a >> a\n+  $ hg ci -m3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+  $ echo \'t = t\' > .hgsub\n+\n+--interactive won\'t silently ignore dirty subrepos\n+\n+  $ echo modified > t/b\n+  $ hg amend --interactive --config ui.interactive=True\n+  abort: uncommitted changes in subrepository "t"\n+  [255]\n+  $ hg amend --interactive --config ui.interactive=True --config ui.commitsubrepos=True\n+  abort: uncommitted changes in subrepository "t"\n+  [255]\n+\n+  $ hg -R t revert -q --all --no-backup\n+\n+amend with one subrepo dropped\n+\n+  $ hg amend\n+  saved backup bundle to * (glob) (obsstore-off !)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status --change .\n+  A a\n   $ cat .hgsubstate\n   0000000000000000000000000000000000000000 s\n   bfb1a4fb358498a9533dabf4f2043d94162f1fcd t\n \n-Unlink one subrepo\n-------------------\n+Unlink subrepos completely\n+--------------------------\n \n add new commit to be amended\n \n   $ echo a >> a\n   $ hg ci -m3\n-\n-  $ echo \'t = t\' > .hgsub\n-\n---interactive won\'t silently ignore dirty subrepos\n-\n-  $ echo modified > t/b\n-  $ hg amend --interactive --config ui.interactive=True\n-  abort: uncommitted changes in subrepository "t"\n-  [255]\n-  $ hg amend --interactive --config ui.interactive=True --config ui.commitsubrepos=True\n-  abort: uncommitted changes in subrepository "t"\n-  [255]\n-\n-  $ hg -R t revert -q --all --no-backup\n-\n-amend with one subrepo dropped\n-\n-  $ hg amend\n-  saved backup bundle to * (glob) (obsstore-off !)\n-  $ hg status --change .\n-  M .hgsub\n-  M .hgsubstate\n-  M a\n-  $ cat .hgsubstate\n-  bfb1a4fb358498a9533dabf4f2043d94162f1fcd t\n-\n-Unlink subrepos completely\n---------------------------\n-\n-add new commit to be amended\n-\n-  $ echo a >> a\n-  $ hg ci -m3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n amend with .hgsub removed\n \n   $ hg rm .hgsub\n-  $ hg amend\n-  saved backup bundle to * (glob) (obsstore-off !)\n-  $ hg status --change .\n-  M a\n-  R .hgsub\n-  R .hgsubstate\n+  not removing .hgsub: file has been marked for add (use \'hg forget\' to undo add)\n+  [1]\n+  $ hg amend\n+  saved backup bundle to * (glob) (obsstore-off !)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status --change .\n+  A a\n \n broken repositories will refuse to push\n \n@@ -170,9 +239,72 @@\n   $ hg up -q -C 2\n #else\n   $ hg up -q -C 6\n+  abort: unknown revision \'6\'\n+  [255]\n #endif\n   $ echo c >> t/b\n   $ hg amend -q -R t\n+  strip failed, backup bundle stored in \'$TESTTMP\\r\\t\\.hg\\strip-backup/bfb1a4fb3584-f91bf2bb-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\r\\t\\.hg\\strip-backup/bfb1a4fb3584-db68e960-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\r\\t\\.hg\\strip-backup/bfb1a4fb3584-db68e960-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: amend\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\amend.py", line 76, in amend\n+      return commands._docommit(ui, repo, *pats, **pycompat.strkwargs(opts))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg init ../dest\n   $ hg init ../dest/t\n@@ -180,19 +312,21 @@\n   $ hg push -q ../dest\n   abort: subrepo \'t\' is hidden in revision 04aa62396ec6 (obsstore-on !)\n   abort: subrepo \'t\' not found in revision 04aa62396ec6 (obsstore-off !)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n ... unless forced\n \n   $ hg push --force -q ../dest\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg verify -R ../dest\n   checking changesets\n   checking manifests\n   crosschecking files in changesets and manifests\n   checking files\n-  checked 5 changesets with 12 changes to 4 files\n-  checking subrepo links\n-  subrepo \'t\' not found in revision 04aa62396ec6\n-  subrepo \'t\' not found in revision 6bce99600681\n+  checked 1 changesets with 1 changes to 1 files\n \n   $ cd ..\n', 2123, 2125, 'truncated \\uXXXX escape') decoding diff, sorry

test-amend-subrepo.t#obsstore-on

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-amend-subrepo.t\n+++ c:/hgdev/src/tests/test-amend-subrepo.t#obsstore-on.err\n@@ -32,19 +32,67 @@\n amend without .hgsub\n \n   $ hg amend s\n-  abort: can\'t commit subrepos without .hgsub\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: amend\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\amend.py", line 76, in amend\n+      return commands._docommit(ui, repo, *pats, **pycompat.strkwargs(opts))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n amend with subrepo\n \n   $ hg amend\n   saved backup bundle to * (glob) (obsstore-off !)\n-  $ hg status --change .\n-  A .hgsub\n-  A .hgsubstate\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status --change .\n   A a\n   $ cat .hgsubstate\n-  0000000000000000000000000000000000000000 s\n+  cat: .hgsubstate: $ENOENT$\n+  [1]\n \n Update subrepo\n --------------\n@@ -53,6 +101,9 @@\n \n   $ echo a >> a\n   $ hg ci -m1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n amend with dirty subrepo\n \n@@ -60,8 +111,8 @@\n   $ hg add -R s\n   adding s/a\n   $ hg amend\n-  abort: uncommitted changes in subrepository "s"\n-  (use --subrepos for recursive commit)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n amend with modified subrepo\n@@ -69,19 +120,24 @@\n   $ hg ci -R s -m0\n   $ hg amend\n   saved backup bundle to * (glob) (obsstore-off !)\n-  $ hg status --change .\n-  M .hgsubstate\n-  M a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status --change .\n+  A a\n   $ cat .hgsubstate\n-  f7b1eb17ad24730a1651fccd46c43826d1bbc2ac s\n+  0000000000000000000000000000000000000000 s\n \n revert subrepo change\n \n   $ hg up -R s -q null\n   $ hg amend\n   saved backup bundle to * (glob) (obsstore-off !)\n-  $ hg status --change .\n-  M a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status --change .\n+  A a\n \n Link another subrepo\n --------------------\n@@ -90,6 +146,9 @@\n \n   $ echo b >> b\n   $ hg ci -qAm2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n also checks if non-subrepo change is included\n \n@@ -104,65 +163,75 @@\n   $ echo \'t = t\' >> .hgsub\n   $ hg amend\n   saved backup bundle to * (glob) (obsstore-off !)\n-  $ hg status --change .\n-  M .hgsub\n-  M .hgsubstate\n-  M a\n-  A b\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status --change .\n+  A a\n+  $ cat .hgsubstate\n+  0000000000000000000000000000000000000000 s\n+\n+Unlink one subrepo\n+------------------\n+\n+add new commit to be amended\n+\n+  $ echo a >> a\n+  $ hg ci -m3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+  $ echo \'t = t\' > .hgsub\n+\n+--interactive won\'t silently ignore dirty subrepos\n+\n+  $ echo modified > t/b\n+  $ hg amend --interactive --config ui.interactive=True\n+  abort: uncommitted changes in subrepository "t"\n+  [255]\n+  $ hg amend --interactive --config ui.interactive=True --config ui.commitsubrepos=True\n+  abort: uncommitted changes in subrepository "t"\n+  [255]\n+\n+  $ hg -R t revert -q --all --no-backup\n+\n+amend with one subrepo dropped\n+\n+  $ hg amend\n+  saved backup bundle to * (glob) (obsstore-off !)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status --change .\n+  A a\n   $ cat .hgsubstate\n   0000000000000000000000000000000000000000 s\n   bfb1a4fb358498a9533dabf4f2043d94162f1fcd t\n \n-Unlink one subrepo\n-------------------\n+Unlink subrepos completely\n+--------------------------\n \n add new commit to be amended\n \n   $ echo a >> a\n   $ hg ci -m3\n-\n-  $ echo \'t = t\' > .hgsub\n-\n---interactive won\'t silently ignore dirty subrepos\n-\n-  $ echo modified > t/b\n-  $ hg amend --interactive --config ui.interactive=True\n-  abort: uncommitted changes in subrepository "t"\n-  [255]\n-  $ hg amend --interactive --config ui.interactive=True --config ui.commitsubrepos=True\n-  abort: uncommitted changes in subrepository "t"\n-  [255]\n-\n-  $ hg -R t revert -q --all --no-backup\n-\n-amend with one subrepo dropped\n-\n-  $ hg amend\n-  saved backup bundle to * (glob) (obsstore-off !)\n-  $ hg status --change .\n-  M .hgsub\n-  M .hgsubstate\n-  M a\n-  $ cat .hgsubstate\n-  bfb1a4fb358498a9533dabf4f2043d94162f1fcd t\n-\n-Unlink subrepos completely\n---------------------------\n-\n-add new commit to be amended\n-\n-  $ echo a >> a\n-  $ hg ci -m3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n amend with .hgsub removed\n \n   $ hg rm .hgsub\n-  $ hg amend\n-  saved backup bundle to * (glob) (obsstore-off !)\n-  $ hg status --change .\n-  M a\n-  R .hgsub\n-  R .hgsubstate\n+  not removing .hgsub: file has been marked for add (use \'hg forget\' to undo add)\n+  [1]\n+  $ hg amend\n+  saved backup bundle to * (glob) (obsstore-off !)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status --change .\n+  A a\n \n broken repositories will refuse to push\n \n@@ -170,9 +239,72 @@\n   $ hg up -q -C 2\n #else\n   $ hg up -q -C 6\n+  abort: unknown revision \'6\'\n+  [255]\n #endif\n   $ echo c >> t/b\n   $ hg amend -q -R t\n+  strip failed, backup bundle stored in \'$TESTTMP\\r\\t\\.hg\\strip-backup/bfb1a4fb3584-f91bf2bb-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\r\\t\\.hg\\strip-backup/bfb1a4fb3584-db68e960-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\r\\t\\.hg\\strip-backup/bfb1a4fb3584-db68e960-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: amend\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\amend.py", line 76, in amend\n+      return commands._docommit(ui, repo, *pats, **pycompat.strkwargs(opts))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg init ../dest\n   $ hg init ../dest/t\n@@ -180,19 +312,21 @@\n   $ hg push -q ../dest\n   abort: subrepo \'t\' is hidden in revision 04aa62396ec6 (obsstore-on !)\n   abort: subrepo \'t\' not found in revision 04aa62396ec6 (obsstore-off !)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n ... unless forced\n \n   $ hg push --force -q ../dest\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg verify -R ../dest\n   checking changesets\n   checking manifests\n   crosschecking files in changesets and manifests\n   checking files\n-  checked 5 changesets with 12 changes to 4 files\n-  checking subrepo links\n-  subrepo \'t\' not found in revision 04aa62396ec6\n-  subrepo \'t\' not found in revision 6bce99600681\n+  checked 1 changesets with 1 changes to 1 files\n \n   $ cd ..\n', 2122, 2124, 'truncated \\uXXXX escape') decoding diff, sorry

test-amend.t#obsstore-off

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-amend.t\n+++ c:/hgdev/src/tests/test-amend.t#obsstore-off.err\n@@ -30,6 +30,70 @@\n \n   $ hg amend\n   saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/112478962961-7e959a55-amend.hg (obsstore-off !)\n+  saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/112478962961-7e959a55-amend.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo1\\.hg\\strip-backup/112478962961-7e959a55-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo1\\.hg\\strip-backup/112478962961-7684ddc5-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo1\\.hg\\strip-backup/112478962961-7684ddc5-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "debugdrawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "debugdrawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: amend, debugdrawdag\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\amend.py", line 76, in amend\n+      return commands._docommit(ui, repo, *pats, **pycompat.strkwargs(opts))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n #if obsstore-off\n   $ hg log -p -G --hidden -T \'{rev} {node|short} {desc}\\n\'\n   @  1 be169c7e8dbe B\n@@ -59,7 +123,7 @@\n   |  @@ -0,0 +1,1 @@\n   |  +B2\n   |\n-  | x  1 112478962961 B\n+  | o  1 112478962961 B\n   |/   diff --git a/B b/B\n   |    new file mode 100644\n   |    --- /dev/null\n@@ -82,16 +146,19 @@\n Nothing changed\n \n   $ hg amend\n-  nothing changed\n-  [1]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg amend -d "0 0"\n-  nothing changed\n-  [1]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg amend -d "Thu Jan 01 00:00:00 1970 UTC"\n-  nothing changed\n-  [1]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n #if obsstore-on\n   $ hg init repo-merge-state\n@@ -123,14 +190,20 @@\n   $ hg add C D\n   $ hg amend -m NEWMESSAGE -I C\n   saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/be169c7e8dbe-7684ddc5-amend.hg (obsstore-off !)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -r . -T \'{node|short} {desc} {files}\\n\'\n-  c7ba14d9075b NEWMESSAGE B C\n+  be169c7e8dbe B B\n   $ echo 5 > E\n   $ rm C\n   $ hg amend -d \'2000 1000\' -u \'Foo <foo@example.com>\' -A C D\n   saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/c7ba14d9075b-b3e76daa-amend.hg (obsstore-off !)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -r . -T \'{node|short} {desc} {files} {author} {date}\\n\'\n-  14f6c4bcc865 NEWMESSAGE B D Foo <foo@example.com> 2000.01000\n+  be169c7e8dbe B B test 0.00\n \n Amend with editor\n \n@@ -143,21 +216,31 @@\n \n   $ HGEDITOR="sh $TESTTMP/prefix.sh" hg amend --edit\n   saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/14f6c4bcc865-6591f15d-amend.hg (obsstore-off !)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -r . -T \'{node|short} {desc}\\n\'\n-  298f085230c3 EDITED: NEWMESSAGE\n+  be169c7e8dbe B\n   $ HGEDITOR="sh $TESTTMP/prefix.sh" hg amend -e -m MSG\n   saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/298f085230c3-d81a6ad3-amend.hg (obsstore-off !)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -r . -T \'{node|short} {desc}\\n\'\n-  974f07f28537 EDITED: MSG\n+  be169c7e8dbe B\n \n   $ echo FOO > $TESTTMP/msg\n   $ hg amend -l $TESTTMP/msg -m BAR\n-  abort: cannot specify both --message and --logfile\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg amend -l $TESTTMP/msg\n   saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/974f07f28537-edb6470a-amend.hg (obsstore-off !)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -r . -T \'{node|short} {desc}\\n\'\n-  507be9bdac71 FOO\n+  be169c7e8dbe B\n \n Interactive mode\n \n@@ -167,19 +250,24 @@\n   > y\n   > n\n   > EOS\n+  diff --git a/D b/D\n+  new file mode 100644\n+  examine changes to \'D\'?\n+  (enter ? for help) [Ynesfdaq?] y\n+  \n+  @@ -0,0 +1,1 @@\n+  +4\n+  record this change to \'D\'?\n+  (enter ? for help) [Ynesfdaq?] n\n+  \n+  saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/507be9bdac71-c8077452-amend.hg (obsstore-off !)\n   diff --git a/F b/F\n   new file mode 100644\n   examine changes to \'F\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  diff --git a/G b/G\n-  new file mode 100644\n-  examine changes to \'G\'?\n-  (enter ? for help) [Ynesfdaq?] n\n-  \n-  saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/507be9bdac71-c8077452-amend.hg (obsstore-off !)\n+  (enter ? for help) [Ynesfdaq?] abort: response expected\n+  [255]\n   $ hg log -r . -T \'{files}\\n\'\n-  B D F\n+  B\n \n Amend in the middle of a stack\n \n@@ -254,10 +342,76 @@\n   $ hg update -q C\n   $ hg amend -m FOO\n   saved backup bundle to $TESTTMP/repo3/.hg/strip-backup/a35c07e8a2a4-15ff4612-amend.hg (obsstore-off !)\n+  saved backup bundle to $TESTTMP/repo3/.hg/strip-backup/a35c07e8a2a4-15ff4612-amend.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo3\\.hg\\strip-backup/a35c07e8a2a4-15ff4612-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo3\\.hg\\strip-backup/a35c07e8a2a4-18824ef3-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo3\\.hg\\strip-backup/a35c07e8a2a4-18824ef3-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "debugdrawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "debugdrawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: amend, debugdrawdag\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\amend.py", line 76, in amend\n+      return commands._docommit(ui, repo, *pats, **pycompat.strkwargs(opts))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ rm .hg/localtags\n   $ hg log -G -T \'{desc}\\n\'\n   @    FOO\n   |\\\n+  +---o  C\n+  | |/\n   | o  B\n   |\n   o  A\n@@ -292,6 +446,70 @@\n \n   $ hg amend\n   saved backup bundle to * (glob) (obsstore-off !)\n+  saved backup bundle to $TESTTMP/wcstates/.hg/strip-backup/c3bf0bdb1cd2-2b3f2de4-amend.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\wcstates\\.hg\\strip-backup/c3bf0bdb1cd2-2b3f2de4-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\wcstates\\.hg\\strip-backup/c3bf0bdb1cd2-b87d05be-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\wcstates\\.hg\\strip-backup/c3bf0bdb1cd2-b87d05be-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "debugdrawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "debugdrawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: amend, debugdrawdag\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\amend.py", line 76, in amend\n+      return commands._docommit(ui, repo, *pats, **pycompat.strkwargs(opts))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n clean/modified/removed/added states of the amended revision\n \n@@ -381,13 +599,82 @@\n \n #else\n   $ hg amend\n+  saved backup bundle to $TESTTMP/repo4/.hg/strip-backup/95e899acf2ce-f11cb050-amend.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo4\\.hg\\strip-backup/95e899acf2ce-f11cb050-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo4\\.hg\\strip-backup/95e899acf2ce-dfe00693-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo4\\.hg\\strip-backup/95e899acf2ce-dfe00693-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "debugdrawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "debugdrawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: amend, debugdrawdag\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\amend.py", line 76, in amend\n+      return commands._docommit(ui, repo, *pats, **pycompat.strkwargs(opts))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n When backup-bundle config option is set:\n   $ cat << EOF >> $HGRCPATH\n   > [rewrite]\n   > backup-bundle = False\n   > EOF\n+  $TESTTMP.sh: line 193: cannot create temp file for here document: Permission denied\n+  [1]\n   $ echo fixed > b\n   $ hg amend\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n #endif\n ==========================================\n@@ -416,69 +703,153 @@\n When updatetimestamp is False\n \n   $ hg amend --date \'1997-1-1 0:1\'\n-  $ hg log --limit 1\n-  user:        test\n-  date:        Wed Jan 01 00:01:00 1997 +0000\n-  summary:     commit 1\n-\n- When update-timestamp is True and no other change than the date\n-\n-  $ hg amend --config rewrite.update-timestamp=True\n-  nothing changed\n+  saved backup bundle to $TESTTMP/repo5/.hg/strip-backup/cfffdfb584d3-5d9fa6ee-amend.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo5\\.hg\\strip-backup/cfffdfb584d3-5d9fa6ee-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo5\\.hg\\strip-backup/cfffdfb584d3-8962fff7-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo5\\.hg\\strip-backup/cfffdfb584d3-8962fff7-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "debugdrawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "debugdrawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: amend, debugdrawdag, mockmakedate\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\amend.py", line 76, in amend\n+      return commands._docommit(ui, repo, *pats, **pycompat.strkwargs(opts))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   [1]\n   $ hg log --limit 1\n   user:        test\n   date:        Wed Jan 01 00:01:00 1997 +0000\n   summary:     commit 1\n \n+ When update-timestamp is True and no other change than the date\n+\n+  $ hg amend --config rewrite.update-timestamp=True\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg log --limit 1\n+  user:        test\n+  date:        Wed Jan 01 00:01:00 1997 +0000\n+  summary:     commit 1\n+\n When update-timestamp is True and there is other change than the date\n   $ hg amend --user foobar --config rewrite.update-timestamp=True\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log --limit 1\n-  user:        foobar\n-  date:        Thu Jan 01 00:00:02 1970 +0000\n+  user:        test\n+  date:        Wed Jan 01 00:01:00 1997 +0000\n   summary:     commit 1\n \n When date option is applicable and update-timestamp is True\n   $ hg amend  --date \'1998-1-1 0:1\' --config rewrite.update-timestamp=True\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log --limit 1\n-  user:        foobar\n-  date:        Thu Jan 01 00:01:00 1998 +0000\n+  user:        test\n+  date:        Wed Jan 01 00:01:00 1997 +0000\n   summary:     commit 1\n \n Unlike rewrite.update-timestamp, -D/--currentdate always updates the timestamp\n \n   $ hg amend -D\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log --limit 1\n-  user:        foobar\n-  date:        Thu Jan 01 00:00:04 1970 +0000\n+  user:        test\n+  date:        Wed Jan 01 00:01:00 1997 +0000\n   summary:     commit 1\n \n   $ hg amend -D --config rewrite.update-timestamp=True\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log --limit 1\n-  user:        foobar\n-  date:        Thu Jan 01 00:00:05 1970 +0000\n+  user:        test\n+  date:        Wed Jan 01 00:01:00 1997 +0000\n   summary:     commit 1\n \n rewrite.update-timestamp can be negated by --no-currentdate\n \n   $ hg amend --config rewrite.update-timestamp=True --no-currentdate -u baz\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log --limit 1\n-  user:        baz\n-  date:        Thu Jan 01 00:00:05 1970 +0000\n+  user:        test\n+  date:        Wed Jan 01 00:01:00 1997 +0000\n   summary:     commit 1\n \n Bad combination of date options:\n \n   $ hg amend -D --date \'0 0\'\n-  abort: cannot specify both --date and --currentdate\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Close branch\n \n   $ hg amend --secret --close-branch\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log --limit 1 -T \'close={get(extras, "close")}\\nphase={phase}\\n\'\n-  close=1\n-  phase=secret\n+  close=\n+  phase=draft\n \n   $ cd ..\n \n@@ -495,6 +866,69 @@\n    a |  2 +-\n    1 files changed, 1 insertions(+), 1 deletions(-)\n   $ echo a > a; echo b2 > b; hg amend -q b\n+  strip failed, backup bundle stored in \'$TESTTMP\\6157\\.hg\\strip-backup/dbf67b88f892-2d65775c-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\6157\\.hg\\strip-backup/dbf67b88f892-7d5de567-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\6157\\.hg\\strip-backup/dbf67b88f892-7d5de567-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "debugdrawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "debugdrawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: amend, debugdrawdag, mockmakedate\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\amend.py", line 76, in amend\n+      return commands._docommit(ui, repo, *pats, **pycompat.strkwargs(opts))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg diff --stat -c .\n    a |  2 +-\n    b |  2 +-\n@@ -516,6 +950,70 @@\n   > sleep 1\n   > EOF\n   $ HGEDITOR="sh $TESTTMP/touchy_editor.sh" hg commit --amend\n+  saved backup bundle to $TESTTMP/modify-during-amend/.hg/strip-backup/dc0126abbc9d-6e167cc1-amend.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\modify-during-amend\\.hg\\strip-backup/dc0126abbc9d-6e167cc1-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\modify-during-amend\\.hg\\strip-backup/dc0126abbc9d-04f5f123-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\modify-during-amend\\.hg\\strip-backup/dc0126abbc9d-04f5f123-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "debugdrawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "debugdrawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: amend, debugdrawdag, mockmakedate\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ if (hg diff -c . | grep \'delta\' >/dev/null) || [ -n "$(hg status)" ]; then\n   >   echo "OK."\n   > else\n', 2767, 2769, 'truncated \\uXXXX escape') decoding diff, sorry

test-amend.t#obsstore-on

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-amend.t\n+++ c:/hgdev/src/tests/test-amend.t#obsstore-on.err\n@@ -30,6 +30,70 @@\n \n   $ hg amend\n   saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/112478962961-7e959a55-amend.hg (obsstore-off !)\n+  saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/112478962961-7e959a55-amend.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo1\\.hg\\strip-backup/112478962961-7e959a55-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo1\\.hg\\strip-backup/112478962961-7684ddc5-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo1\\.hg\\strip-backup/112478962961-7684ddc5-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "debugdrawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "debugdrawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: amend, debugdrawdag\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\amend.py", line 76, in amend\n+      return commands._docommit(ui, repo, *pats, **pycompat.strkwargs(opts))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n #if obsstore-off\n   $ hg log -p -G --hidden -T \'{rev} {node|short} {desc}\\n\'\n   @  1 be169c7e8dbe B\n@@ -59,7 +123,7 @@\n   |  @@ -0,0 +1,1 @@\n   |  +B2\n   |\n-  | x  1 112478962961 B\n+  | o  1 112478962961 B\n   |/   diff --git a/B b/B\n   |    new file mode 100644\n   |    --- /dev/null\n@@ -82,16 +146,19 @@\n Nothing changed\n \n   $ hg amend\n-  nothing changed\n-  [1]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg amend -d "0 0"\n-  nothing changed\n-  [1]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg amend -d "Thu Jan 01 00:00:00 1970 UTC"\n-  nothing changed\n-  [1]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n #if obsstore-on\n   $ hg init repo-merge-state\n@@ -123,14 +190,20 @@\n   $ hg add C D\n   $ hg amend -m NEWMESSAGE -I C\n   saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/be169c7e8dbe-7684ddc5-amend.hg (obsstore-off !)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -r . -T \'{node|short} {desc} {files}\\n\'\n-  c7ba14d9075b NEWMESSAGE B C\n+  be169c7e8dbe B B\n   $ echo 5 > E\n   $ rm C\n   $ hg amend -d \'2000 1000\' -u \'Foo <foo@example.com>\' -A C D\n   saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/c7ba14d9075b-b3e76daa-amend.hg (obsstore-off !)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -r . -T \'{node|short} {desc} {files} {author} {date}\\n\'\n-  14f6c4bcc865 NEWMESSAGE B D Foo <foo@example.com> 2000.01000\n+  be169c7e8dbe B B test 0.00\n \n Amend with editor\n \n@@ -143,21 +216,31 @@\n \n   $ HGEDITOR="sh $TESTTMP/prefix.sh" hg amend --edit\n   saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/14f6c4bcc865-6591f15d-amend.hg (obsstore-off !)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -r . -T \'{node|short} {desc}\\n\'\n-  298f085230c3 EDITED: NEWMESSAGE\n+  be169c7e8dbe B\n   $ HGEDITOR="sh $TESTTMP/prefix.sh" hg amend -e -m MSG\n   saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/298f085230c3-d81a6ad3-amend.hg (obsstore-off !)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -r . -T \'{node|short} {desc}\\n\'\n-  974f07f28537 EDITED: MSG\n+  be169c7e8dbe B\n \n   $ echo FOO > $TESTTMP/msg\n   $ hg amend -l $TESTTMP/msg -m BAR\n-  abort: cannot specify both --message and --logfile\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg amend -l $TESTTMP/msg\n   saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/974f07f28537-edb6470a-amend.hg (obsstore-off !)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -r . -T \'{node|short} {desc}\\n\'\n-  507be9bdac71 FOO\n+  be169c7e8dbe B\n \n Interactive mode\n \n@@ -167,19 +250,24 @@\n   > y\n   > n\n   > EOS\n+  diff --git a/D b/D\n+  new file mode 100644\n+  examine changes to \'D\'?\n+  (enter ? for help) [Ynesfdaq?] y\n+  \n+  @@ -0,0 +1,1 @@\n+  +4\n+  record this change to \'D\'?\n+  (enter ? for help) [Ynesfdaq?] n\n+  \n+  saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/507be9bdac71-c8077452-amend.hg (obsstore-off !)\n   diff --git a/F b/F\n   new file mode 100644\n   examine changes to \'F\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  diff --git a/G b/G\n-  new file mode 100644\n-  examine changes to \'G\'?\n-  (enter ? for help) [Ynesfdaq?] n\n-  \n-  saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/507be9bdac71-c8077452-amend.hg (obsstore-off !)\n+  (enter ? for help) [Ynesfdaq?] abort: response expected\n+  [255]\n   $ hg log -r . -T \'{files}\\n\'\n-  B D F\n+  B\n \n Amend in the middle of a stack\n \n@@ -254,10 +342,76 @@\n   $ hg update -q C\n   $ hg amend -m FOO\n   saved backup bundle to $TESTTMP/repo3/.hg/strip-backup/a35c07e8a2a4-15ff4612-amend.hg (obsstore-off !)\n+  saved backup bundle to $TESTTMP/repo3/.hg/strip-backup/a35c07e8a2a4-15ff4612-amend.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo3\\.hg\\strip-backup/a35c07e8a2a4-15ff4612-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo3\\.hg\\strip-backup/a35c07e8a2a4-18824ef3-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo3\\.hg\\strip-backup/a35c07e8a2a4-18824ef3-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "debugdrawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "debugdrawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: amend, debugdrawdag\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\amend.py", line 76, in amend\n+      return commands._docommit(ui, repo, *pats, **pycompat.strkwargs(opts))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ rm .hg/localtags\n   $ hg log -G -T \'{desc}\\n\'\n   @    FOO\n   |\\\n+  +---o  C\n+  | |/\n   | o  B\n   |\n   o  A\n@@ -292,6 +446,70 @@\n \n   $ hg amend\n   saved backup bundle to * (glob) (obsstore-off !)\n+  saved backup bundle to $TESTTMP/wcstates/.hg/strip-backup/c3bf0bdb1cd2-2b3f2de4-amend.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\wcstates\\.hg\\strip-backup/c3bf0bdb1cd2-2b3f2de4-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\wcstates\\.hg\\strip-backup/c3bf0bdb1cd2-b87d05be-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\wcstates\\.hg\\strip-backup/c3bf0bdb1cd2-b87d05be-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "debugdrawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "debugdrawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: amend, debugdrawdag\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\amend.py", line 76, in amend\n+      return commands._docommit(ui, repo, *pats, **pycompat.strkwargs(opts))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n clean/modified/removed/added states of the amended revision\n \n@@ -381,6 +599,70 @@\n \n #else\n   $ hg amend\n+  saved backup bundle to $TESTTMP/repo4/.hg/strip-backup/95e899acf2ce-f11cb050-amend.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo4\\.hg\\strip-backup/95e899acf2ce-f11cb050-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo4\\.hg\\strip-backup/95e899acf2ce-dfe00693-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo4\\.hg\\strip-backup/95e899acf2ce-dfe00693-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "debugdrawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "debugdrawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: amend, debugdrawdag\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\amend.py", line 76, in amend\n+      return commands._docommit(ui, repo, *pats, **pycompat.strkwargs(opts))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n When backup-bundle config option is set:\n   $ cat << EOF >> $HGRCPATH\n   > [rewrite]\n@@ -388,6 +670,9 @@\n   > EOF\n   $ echo fixed > b\n   $ hg amend\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n #endif\n ==========================================\n@@ -416,69 +701,151 @@\n When updatetimestamp is False\n \n   $ hg amend --date \'1997-1-1 0:1\'\n-  $ hg log --limit 1\n-  user:        test\n-  date:        Wed Jan 01 00:01:00 1997 +0000\n-  summary:     commit 1\n-\n- When update-timestamp is True and no other change than the date\n-\n-  $ hg amend --config rewrite.update-timestamp=True\n-  nothing changed\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo5\\.hg\\strip-backup/cfffdfb584d3-8962fff7-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo5\\.hg\\strip-backup/cfffdfb584d3-8962fff7-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "debugdrawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "debugdrawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: amend, debugdrawdag, mockmakedate\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\amend.py", line 76, in amend\n+      return commands._docommit(ui, repo, *pats, **pycompat.strkwargs(opts))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   [1]\n   $ hg log --limit 1\n   user:        test\n   date:        Wed Jan 01 00:01:00 1997 +0000\n   summary:     commit 1\n \n+ When update-timestamp is True and no other change than the date\n+\n+  $ hg amend --config rewrite.update-timestamp=True\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg log --limit 1\n+  user:        test\n+  date:        Wed Jan 01 00:01:00 1997 +0000\n+  summary:     commit 1\n+\n When update-timestamp is True and there is other change than the date\n   $ hg amend --user foobar --config rewrite.update-timestamp=True\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log --limit 1\n-  user:        foobar\n-  date:        Thu Jan 01 00:00:02 1970 +0000\n+  user:        test\n+  date:        Wed Jan 01 00:01:00 1997 +0000\n   summary:     commit 1\n \n When date option is applicable and update-timestamp is True\n   $ hg amend  --date \'1998-1-1 0:1\' --config rewrite.update-timestamp=True\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log --limit 1\n-  user:        foobar\n-  date:        Thu Jan 01 00:01:00 1998 +0000\n+  user:        test\n+  date:        Wed Jan 01 00:01:00 1997 +0000\n   summary:     commit 1\n \n Unlike rewrite.update-timestamp, -D/--currentdate always updates the timestamp\n \n   $ hg amend -D\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log --limit 1\n-  user:        foobar\n-  date:        Thu Jan 01 00:00:04 1970 +0000\n+  user:        test\n+  date:        Wed Jan 01 00:01:00 1997 +0000\n   summary:     commit 1\n \n   $ hg amend -D --config rewrite.update-timestamp=True\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log --limit 1\n-  user:        foobar\n-  date:        Thu Jan 01 00:00:05 1970 +0000\n+  user:        test\n+  date:        Wed Jan 01 00:01:00 1997 +0000\n   summary:     commit 1\n \n rewrite.update-timestamp can be negated by --no-currentdate\n \n   $ hg amend --config rewrite.update-timestamp=True --no-currentdate -u baz\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log --limit 1\n-  user:        baz\n-  date:        Thu Jan 01 00:00:05 1970 +0000\n+  user:        test\n+  date:        Wed Jan 01 00:01:00 1997 +0000\n   summary:     commit 1\n \n Bad combination of date options:\n \n   $ hg amend -D --date \'0 0\'\n-  abort: cannot specify both --date and --currentdate\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Close branch\n \n   $ hg amend --secret --close-branch\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log --limit 1 -T \'close={get(extras, "close")}\\nphase={phase}\\n\'\n-  close=1\n-  phase=secret\n+  close=\n+  phase=draft\n \n   $ cd ..\n \n@@ -495,6 +862,68 @@\n    a |  2 +-\n    1 files changed, 1 insertions(+), 1 deletions(-)\n   $ echo a > a; echo b2 > b; hg amend -q b\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\6157\\.hg\\strip-backup/dbf67b88f892-7d5de567-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\6157\\.hg\\strip-backup/dbf67b88f892-7d5de567-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "debugdrawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "debugdrawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: amend, debugdrawdag, mockmakedate\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\amend.py", line 76, in amend\n+      return commands._docommit(ui, repo, *pats, **pycompat.strkwargs(opts))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg diff --stat -c .\n    a |  2 +-\n    b |  2 +-\n@@ -516,6 +945,68 @@\n   > sleep 1\n   > EOF\n   $ HGEDITOR="sh $TESTTMP/touchy_editor.sh" hg commit --amend\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\modify-during-amend\\.hg\\strip-backup/dc0126abbc9d-04f5f123-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\modify-during-amend\\.hg\\strip-backup/dc0126abbc9d-04f5f123-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "debugdrawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "debugdrawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: amend, debugdrawdag, mockmakedate\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ if (hg diff -c . | grep \'delta\' >/dev/null) || [ -n "$(hg status)" ]; then\n   >   echo "OK."\n   > else\n', 2766, 2768, 'truncated \\uXXXX escape') decoding diff, sorry

test-annotate.t

--- c:/hgdev/src/tests/test-annotate.t
+++ c:/hgdev/src/tests/test-annotate.t.err
@@ -341,6 +341,7 @@
   0 a:1: a
   1 a:2* z (no-pure !)
   0 a:1* z (pure !)
+  1 a:2* z
   1 a:3: a
   3 b:4: b4
   4 b:5: c
@@ -633,6 +634,7 @@
   $ hg annotate -ncr "wdir()" baz
   abort: $TESTTMP
epoaz: $ENOENT$ (windows !)
   abort: $ENOENT$: '$TESTTMP/repo/baz' (no-windows !)
+  abort: $TESTTMP
epoaz: $ENOENT$
   [255]
 
 annotate removed file
@@ -642,6 +644,7 @@
   $ hg annotate -ncr "wdir()" baz
   abort: $TESTTMP
epoaz: $ENOENT$ (windows !)
   abort: $ENOENT$: '$TESTTMP/repo/baz' (no-windows !)
+  abort: $TESTTMP
epoaz: $ENOENT$
   [255]
 
   $ hg revert --all --no-backup --quiet

test-audit-subrepo.t

--- c:/hgdev/src/tests/test-audit-subrepo.t
+++ c:/hgdev/src/tests/test-audit-subrepo.t.err
@@ -723,10 +723,11 @@
 #else
 
   $ hg clone -q driveletter driveletter2
+  abort: path contains illegal component: X:
+  [255]
   $ ls -A driveletter2
   .hg
   .hgsub
   .hgsubstate
-  X:
 
 #endif

test-automv.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-automv.t\n+++ c:/hgdev/src/tests/test-automv.t.err\n@@ -163,6 +163,75 @@\n   $ hg commit --amend -m \'amended\'\n   detected move of 1 files\n   saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-amend.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/4aea8b92b748-67bcfee4-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\.hg\\strip-backup/4aea8b92b748-76158f03-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\.hg\\strip-backup/4aea8b92b748-76158f03-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "automv" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "automv" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: automv, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\automv.py", line 78, in mvcheck\n+      return orig(ui, repo, *pats, **pycompat.strkwargs(opts))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg status --change . -C\n   A b.txt\n     a.txt\n@@ -175,91 +244,116 @@\n   $ echo \'c\' > c.txt\n   $ hg add c.txt\n   $ hg commit -m \'revision to amend to\'\n-  created new head\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ mv a.txt b.txt\n   $ hg rm a.txt\n   $ hg add b.txt\n   $ printf \'\\n\' >> b.txt\n   $ hg status -C\n   A b.txt\n-  R a.txt\n-  $ hg commit --amend -m \'amended\'\n-  detected move of 1 files\n-  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-amend.hg (glob)\n-  $ hg status --change . -C\n-  A b.txt\n-    a.txt\n-  A c.txt\n-  R a.txt\n-  $ hg up -r 0\n-  1 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  A c.txt\n+  R a.txt\n+  $ hg commit --amend -m \'amended\'\n+  detected move of 1 files\n+  abort: cannot amend changeset with children\n+  [10]\n+  $ hg status --change . -C\n+  A a.txt\n+  $ hg up -r 0\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n \n mv/rm/add/modif\n   $ echo \'c\' > c.txt\n   $ hg add c.txt\n-  $ hg commit -m \'revision to amend to\'\n-  created new head\n-  $ mv a.txt b.txt\n-  $ hg rm a.txt\n-  $ hg add b.txt\n+  c.txt already tracked!\n+  $ hg commit -m \'revision to amend to\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ mv a.txt b.txt\n+  mv: cannot stat `a.txt\': $ENOENT$\n+  [1]\n+  $ hg rm a.txt\n+  $ hg add b.txt\n+  b.txt already tracked!\n   $ printf \'\\nfoo\\n\' >> b.txt\n   $ hg status -C\n   A b.txt\n-  R a.txt\n-  $ hg commit --amend -m \'amended\'\n-  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-amend.hg (glob)\n-  $ hg status --change . -C\n-  A b.txt\n-  A c.txt\n-  R a.txt\n-  $ hg up -r 0\n-  1 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+    a.txt\n+  A c.txt\n+  R a.txt\n+  $ hg commit --amend -m \'amended\'\n+  abort: cannot amend changeset with children\n+  [10]\n+  $ hg status --change . -C\n+  A a.txt\n+  $ hg up -r 0\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n \n mv/rm/add/modif/changethreshold\n   $ echo \'c\' > c.txt\n   $ hg add c.txt\n-  $ hg commit -m \'revision to amend to\'\n-  created new head\n-  $ mv a.txt b.txt\n-  $ hg rm a.txt\n-  $ hg add b.txt\n+  c.txt already tracked!\n+  $ hg commit -m \'revision to amend to\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ mv a.txt b.txt\n+  mv: cannot stat `a.txt\': $ENOENT$\n+  [1]\n+  $ hg rm a.txt\n+  $ hg add b.txt\n+  b.txt already tracked!\n   $ printf \'\\nfoo\\n\' >> b.txt\n   $ hg status -C\n   A b.txt\n+    a.txt\n+  A c.txt\n   R a.txt\n   $ hg commit --amend --config automv.similarity=\'60\' -m \'amended\'\n-  detected move of 1 files\n-  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-amend.hg (glob)\n-  $ hg status --change . -C\n-  A b.txt\n-    a.txt\n-  A c.txt\n-  R a.txt\n-  $ hg up -r 0\n-  1 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: cannot amend changeset with children\n+  [10]\n+  $ hg status --change . -C\n+  A a.txt\n+  $ hg up -r 0\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n \n mv\n   $ echo \'c\' > c.txt\n   $ hg add c.txt\n-  $ hg commit -m \'revision to amend to\'\n-  created new head\n-  $ mv a.txt b.txt\n-  $ hg status -C\n-  ! a.txt\n-  ? b.txt\n-  $ hg commit --amend -m \'amended\'\n-  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-amend.hg (glob)\n-  $ hg status -C\n-  ! a.txt\n-  ? b.txt\n+  c.txt already tracked!\n+  $ hg commit -m \'revision to amend to\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ mv a.txt b.txt\n+  mv: cannot stat `a.txt\': $ENOENT$\n+  [1]\n+  $ hg status -C\n+  A b.txt\n+    a.txt\n+  A c.txt\n+  R a.txt\n+  $ hg commit --amend -m \'amended\'\n+  abort: cannot amend changeset with children\n+  [10]\n+  $ hg status -C\n+  A b.txt\n+    a.txt\n+  A c.txt\n+  R a.txt\n   $ hg up -Cr 0\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n \n mv/rm/add/notincommitfiles\n   $ echo \'c\' > c.txt\n   $ hg add c.txt\n   $ hg commit -m \'revision to amend to\'\n-  created new head\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ mv a.txt b.txt\n   $ hg rm a.txt\n   $ hg add b.txt\n@@ -267,65 +361,85 @@\n   $ hg add d.txt\n   $ hg status -C\n   A b.txt\n+  A c.txt\n   A d.txt\n   R a.txt\n   $ hg commit --amend -m \'amended\' d.txt\n-  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-amend.hg (glob)\n-  $ hg status --change . -C\n+  abort: cannot amend changeset with children\n+  [10]\n+  $ hg status --change . -C\n+  A a.txt\n+  $ hg status -C\n+  A b.txt\n   A c.txt\n   A d.txt\n-  $ hg status -C\n-  A b.txt\n-  R a.txt\n-  $ hg commit --amend -m \'amended\'\n-  detected move of 1 files\n-  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-amend.hg (glob)\n-  $ hg status --change . -C\n+  R a.txt\n+  $ hg commit --amend -m \'amended\'\n+  detected move of 1 files\n+  abort: cannot amend changeset with children\n+  [10]\n+  $ hg status --change . -C\n+  A a.txt\n+  $ hg up -r 0\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+\n+mv/rm/add/--no-automv\n+  $ echo \'c\' > c.txt\n+  $ hg add c.txt\n+  c.txt already tracked!\n+  $ hg commit -m \'revision to amend to\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ mv a.txt b.txt\n+  mv: cannot stat `a.txt\': $ENOENT$\n+  [1]\n+  $ hg rm a.txt\n+  $ hg add b.txt\n+  b.txt already tracked!\n+  $ hg status -C\n   A b.txt\n     a.txt\n   A c.txt\n   A d.txt\n   R a.txt\n-  $ hg up -r 0\n-  1 files updated, 0 files merged, 3 files removed, 0 files unresolved\n-\n-mv/rm/add/--no-automv\n-  $ echo \'c\' > c.txt\n-  $ hg add c.txt\n-  $ hg commit -m \'revision to amend to\'\n-  created new head\n-  $ mv a.txt b.txt\n-  $ hg rm a.txt\n-  $ hg add b.txt\n-  $ hg status -C\n-  A b.txt\n-  R a.txt\n   $ hg commit --amend -m \'amended\' --no-automv\n-  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-amend.hg (glob)\n-  $ hg status --change . -C\n-  A b.txt\n-  A c.txt\n-  R a.txt\n-  $ hg up -r 0\n-  1 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: cannot amend changeset with children\n+  [10]\n+  $ hg status --change . -C\n+  A a.txt\n+  $ hg up -r 0\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n \n mv/rm/commit/add/amend\n   $ echo \'c\' > c.txt\n   $ hg add c.txt\n-  $ hg commit -m \'revision to amend to\'\n-  created new head\n-  $ mv a.txt b.txt\n-  $ hg rm a.txt\n-  $ hg status -C\n-  R a.txt\n-  ? b.txt\n+  c.txt already tracked!\n+  $ hg commit -m \'revision to amend to\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ mv a.txt b.txt\n+  mv: cannot stat `a.txt\': $ENOENT$\n+  [1]\n+  $ hg rm a.txt\n+  $ hg status -C\n+  A b.txt\n+    a.txt\n+  A c.txt\n+  A d.txt\n+  R a.txt\n   $ hg commit -m "removed a"\n-  $ hg add b.txt\n-  $ hg commit --amend -m \'amended\'\n-  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-amend.hg (glob)\n-  $ hg status --change . -C\n-  A b.txt\n-  R a.txt\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg add b.txt\n+  b.txt already tracked!\n+  $ hg commit --amend -m \'amended\'\n+  abort: cannot amend changeset with children\n+  [10]\n+  $ hg status --change . -C\n+  A a.txt\n \n error conditions\n \n', 2666, 2668, 'truncated \\uXXXX escape') decoding diff, sorry

test-backout.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-backout.t\n+++ c:/hgdev/src/tests/test-backout.t.err\n@@ -308,6 +308,55 @@\n   $ hg update -q -C 2\n   $ hg --config extensions.strip= strip 3\n   saved backup bundle to * (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\merge\\.hg\\strip-backup/26b8ccb9ad91-1c85643d-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ cat >> .hg/hgrc <<EOF\n   > [hooks]\n@@ -322,18 +371,9 @@\n   2:6ea3f2a197a2\n   ====\n   reverting a\n-  created new head\n-  changeset 3:d92a3f57f067 backs out changeset 1:5a50a024c182\n-  ==== preupdate:\n-  3:d92a3f57f067\n-  ====\n-  merging with changeset 3:d92a3f57f067\n-  ==== preupdate:\n-  2:6ea3f2a197a2\n-  ====\n-  merging a\n-  0 files updated, 1 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ cat >> .hg/hgrc <<EOF\n   > [hooks]\n@@ -345,6 +385,10 @@\n   $ hg update -q -C 2\n   $ hg --config extensions.strip= strip 3\n   saved backup bundle to * (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\merge\\.hg\\strip-backup/26b8ccb9ad91-1c85643d-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ cat >> .hg/hgrc <<EOF\n   > [hooks]\n@@ -356,19 +400,9 @@\n   1:5a50a024c182\n   ====\n   reverting a\n-  created new head\n-  changeset 3:d92a3f57f067 backs out changeset 1:5a50a024c182\n-  ==== update:\n-  2:6ea3f2a197a2\n-  ====\n-  merging with changeset 3:d92a3f57f067\n-  merging a\n-  ==== update:\n-  2:6ea3f2a197a2\n-  3:d92a3f57f067\n-  ====\n-  0 files updated, 1 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ cat >> .hg/hgrc <<EOF\n   > [hooks]\n', 2211, 2213, 'truncated \\uXXXX escape') decoding diff, sorry

test-blackbox.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-blackbox.t\n+++ c:/hgdev/src/tests/test-blackbox.t.err\n@@ -190,12 +190,117 @@\n   $ hg strip tip\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/blackboxtest2/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\blackboxtest2\\.hg\\strip-backup/73f6ee326b27-7612e004-backup.hg\'\n+  ** Unknown exception encountered with possibly-broken third-party extension "mock" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "mock" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: blackbox, mock, mq, myextension, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg blackbox -l 6\n+  1970/01/01 00:00:00 bob @73f6ee326b27d820b0472f1a825e3a50f3dc489b (5000)> commit -Amd exited 0 after 0.17 seconds\n   1970/01/01 00:00:00 bob @73f6ee326b27d820b0472f1a825e3a50f3dc489b (5000)> strip tip\n-  1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> saved backup bundle to $TESTTMP/blackboxtest2/.hg/strip-backup/73f6ee326b27-7612e004-backup.hg\n-  1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> updated branch cache (base) in * seconds (glob)\n-  1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> wrote branch cache (base) with 1 labels and 2 nodes\n-  1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> strip tip exited 0 after * seconds (glob)\n+  1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> saved backup bundle to $TESTTMP\\blackboxtest2\\.hg\\strip-backup/73f6ee326b27-7612e004-backup.hg\n+  1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> ** Unknown exception encountered with possibly-broken third-party extension "mock" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "mock" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: blackbox, mock, mq, myextension, strip\n+  \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  \n+  1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> strip tip exited 1 after 0.27 seconds\n   1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> blackbox -l 6\n \n extension and python hooks - use the eol extension for a pythonhook\n@@ -208,8 +313,8 @@\n   The fsmonitor extension is incompatible with the eol extension and has been disabled. (fsmonitor !)\n   hooked\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  updated to "d02f48003e62: c"\n-  1 other heads for branch "default"\n+  updated to "73f6ee326b27: d"\n+  2 other heads for branch "default"\n   $ cat >> .hg/hgrc <<EOF\n   > [extensions]\n   > # disable eol, because it is not needed for subsequent tests\n@@ -218,11 +323,12 @@\n   > EOF\n   $ hg blackbox -l 5\n   1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> update (no-chg !)\n+  1970/01/01 00:00:00 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> serve --cmdserver chgunix --address $TESTTMP.chgsock/server.* --daemon-postexec \'chdir:/\' (glob) (chg !)\n+  1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> update\n   1970/01/01 00:00:00 bob @6563da9dcf87b1949716e38ff3e3dfaa3198eb06 (5000)> pythonhook-preupdate: hgext.eol.preupdate finished in * seconds (glob)\n-  1970/01/01 00:00:00 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> exthook-update: echo hooked finished in * seconds (glob)\n-  1970/01/01 00:00:00 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> update exited 0 after * seconds (glob)\n-  1970/01/01 00:00:00 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> serve --cmdserver chgunix --address $TESTTMP.chgsock/server.* --daemon-postexec \'chdir:/\' (glob) (chg !)\n-  1970/01/01 00:00:00 bob @d02f48003e62c24e2659d97d30f2a83abe5d5d51 (5000)> blackbox -l 5\n+  1970/01/01 00:00:00 bob @73f6ee326b27d820b0472f1a825e3a50f3dc489b (5000)> exthook-update: echo hooked finished in 0.01 seconds\n+  1970/01/01 00:00:00 bob @73f6ee326b27d820b0472f1a825e3a50f3dc489b (5000)> update exited 0 after 0.14 seconds\n+  1970/01/01 00:00:00 bob @73f6ee326b27d820b0472f1a825e3a50f3dc489b (5000)> blackbox -l 5\n \n log rotation\n \n@@ -233,7 +339,7 @@\n   $ hg status\n   $ hg status\n   $ hg tip -q\n-  2:d02f48003e62\n+  3:73f6ee326b27\n   $ ls .hg/blackbox.log*\n   .hg/blackbox.log\n   .hg/blackbox.log.1\n@@ -254,57 +360,59 @@\n   running: --debug add foo\n   warning: cannot write to blackbox.log: Is a directory (no-windows !)\n   warning: cannot write to blackbox.log: $TESTTMP/blackboxtest3/.hg/blackbox.log: Access is denied (windows !)\n-  adding foo\n-  result: 0\n-  running: --debug commit -m commit1 -d 2000-01-01 foo\n+  warning: cannot write to blackbox.log: $TESTTMP\\\\blackboxtest3\\\\.hg\\\\blackbox.log: Access is denied\\r (esc)\n+  adding foo\\r (esc)\n+  result: 0\\r (esc)\n   warning: cannot write to blackbox.log: Is a directory (no-windows !)\n   warning: cannot write to blackbox.log: $TESTTMP/blackboxtest3/.hg/blackbox.log: Access is denied (windows !)\n-  committing files:\n-  foo\n-  committing manifest\n-  committing changelog\n-  updating the branch cache\n-  committed changeset 0:0e46349438790c460c5c9f7546bfcd39b267bbd2\n-  result: 0\n-  running: --debug commit -m commit2 -d 2000-01-02 foo\n-  committing files:\n-  foo\n-  committing manifest\n-  committing changelog\n-  updating the branch cache\n-  committed changeset 1:45589e459b2edfbf3dbde7e01f611d2c1e7453d7\n-  result: 0\n-  running: --debug log -r 0\n-  changeset:   0:0e46349438790c460c5c9f7546bfcd39b267bbd2\n-  phase:       draft\n-  parent:      -1:0000000000000000000000000000000000000000\n-  parent:      -1:0000000000000000000000000000000000000000\n-  manifest:    0:9091aa5df980aea60860a2e39c95182e68d1ddec\n-  user:        test\n-  date:        Sat Jan 01 00:00:00 2000 +0000\n-  files+:      foo\n-  extra:       branch=default\n-  description:\n-  commit1\n-  \n-  \n-  result: 0\n-  running: --debug log -r tip\n-  changeset:   1:45589e459b2edfbf3dbde7e01f611d2c1e7453d7\n-  tag:         tip\n-  phase:       draft\n-  parent:      0:0e46349438790c460c5c9f7546bfcd39b267bbd2\n-  parent:      -1:0000000000000000000000000000000000000000\n-  manifest:    1:895aa9b7886f89dd017a6d62524e1f9180b04df9\n-  user:        test\n-  date:        Sun Jan 02 00:00:00 2000 +0000\n-  files:       foo\n-  extra:       branch=default\n-  description:\n-  commit2\n-  \n-  \n-  result: 0\n+  running: --debug commit -m commit1 -d 2000-01-01 foo\\r (esc)\n+  warning: cannot write to blackbox.log: $TESTTMP\\\\blackboxtest3\\\\.hg\\\\blackbox.log: Access is denied\\r (esc)\n+  committing files:\\r (esc)\n+  foo\\r (esc)\n+  committing manifest\\r (esc)\n+  committing changelog\\r (esc)\n+  updating the branch cache\\r (esc)\n+  committed changeset 0:0e46349438790c460c5c9f7546bfcd39b267bbd2\\r (esc)\n+  result: 0\\r (esc)\n+  running: --debug commit -m commit2 -d 2000-01-02 foo\\r (esc)\n+  committing files:\\r (esc)\n+  foo\\r (esc)\n+  committing manifest\\r (esc)\n+  committing changelog\\r (esc)\n+  updating the branch cache\\r (esc)\n+  committed changeset 1:45589e459b2edfbf3dbde7e01f611d2c1e7453d7\\r (esc)\n+  result: 0\\r (esc)\n+  running: --debug log -r 0\\r (esc)\n+  changeset:   0:0e46349438790c460c5c9f7546bfcd39b267bbd2\\r (esc)\n+  phase:       draft\\r (esc)\n+  parent:      -1:0000000000000000000000000000000000000000\\r (esc)\n+  parent:      -1:0000000000000000000000000000000000000000\\r (esc)\n+  manifest:    0:9091aa5df980aea60860a2e39c95182e68d1ddec\\r (esc)\n+  user:        test\\r (esc)\n+  date:        Sat Jan 01 00:00:00 2000 +0000\\r (esc)\n+  files+:      foo\\r (esc)\n+  extra:       branch=default\\r (esc)\n+  description:\\r (esc)\n+  commit1\\r (esc)\n+  \\r (esc)\n+  \\r (esc)\n+  result: 0\\r (esc)\n+  running: --debug log -r tip\\r (esc)\n+  changeset:   1:45589e459b2edfbf3dbde7e01f611d2c1e7453d7\\r (esc)\n+  tag:         tip\\r (esc)\n+  phase:       draft\\r (esc)\n+  parent:      0:0e46349438790c460c5c9f7546bfcd39b267bbd2\\r (esc)\n+  parent:      -1:0000000000000000000000000000000000000000\\r (esc)\n+  manifest:    1:895aa9b7886f89dd017a6d62524e1f9180b04df9\\r (esc)\n+  user:        test\\r (esc)\n+  date:        Sun Jan 02 00:00:00 2000 +0000\\r (esc)\n+  files:       foo\\r (esc)\n+  extra:       branch=default\\r (esc)\n+  description:\\r (esc)\n+  commit2\\r (esc)\n+  \\r (esc)\n+  \\r (esc)\n+  result: 0\\r (esc)\n   $ hg blackbox\n   1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> updating the branch cache\n   1970/01/01 00:00:00 bob @45589e459b2edfbf3dbde7e01f611d2c1e7453d7 (5000)> updated branch cache (served) in * seconds (glob)\n@@ -356,6 +464,7 @@\n   removing $TESTTMP/gone/.hg\n   warning: cannot write to blackbox.log: $ENOENT$ (no-windows !)\n   warning: cannot write to blackbox.log: $TESTTMP/gone/.hg/blackbox.log: $ENOTDIR$ (windows !)\n+  warning: cannot write to blackbox.log: $TESTTMP\\gone\\.hg\\blackbox.log: $ENOTDIR$\n   $ cd ..\n \n blackbox should disable itself if track is empty\n', 2496, 2498, 'truncated \\uXXXX escape') decoding diff, sorry

test-bookflow.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-bookflow.t\n+++ c:/hgdev/src/tests/test-bookflow.t.err\n@@ -33,18 +33,68 @@\n   $ hg bookmarks\n   * X                         0:* (glob)\n   $ hg bookmark X\n-  abort: bookmark X already exists, to move use the --rev option\n-  [255]\n-  $ make_changes\n+  ** Unknown exception encountered with possibly-broken third-party extension "bookflow" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "bookflow" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: bookflow\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 1278, in bookmark\n+      bookmarks.deactivate(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ make_changes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg push ../a -q\n-\n-  $ hg bookmarks\n-   \\* X                         1:* (glob)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+  $ hg bookmarks\n+   * X                         0:4e3505fd9583\n \n change a\n   $ cd ../a\n   $ hg up\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ echo \'test\' >> test; hg commit -Am\'test\'\n \n \n@@ -53,45 +103,49 @@\n   $ hg pull -u\n   pulling from $TESTTMP/a\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  new changesets * (glob)\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (leaving bookmark X)\n-  $ hg status\n-  $ hg bookmarks\n-     X                         1:* (glob)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  M test\n+  $ hg bookmarks\n+   * X                         0:4e3505fd9583\n \n check protection of @ bookmark\n   $ hg bookmark @\n-  $ hg bookmarks\n-   \\* @                         2:* (glob)\n-     X                         1:* (glob)\n-  $ make_changes\n-  abort: cannot commit, bookmark @ is protected\n-  [255]\n-\n-  $ hg status\n-  M test\n-  $ hg bookmarks\n-   \\* @                         2:* (glob)\n-     X                         1:* (glob)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg bookmarks\n+   * X                         0:4e3505fd9583\n+  $ make_changes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+  $ hg status\n+  M test\n+  $ hg bookmarks\n+   * X                         0:4e3505fd9583\n \n   $ hg --config bookflow.protect= commit  -Am"Updated test"\n-\n-  $ hg bookmarks\n-   \\* @                         3:* (glob)\n-     X                         1:* (glob)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+  $ hg bookmarks\n+   * X                         0:4e3505fd9583\n \n check requirement for an active bookmark\n   $ hg bookmark -i\n-  $ hg bookmarks\n-     @                         3:* (glob)\n-     X                         1:* (glob)\n-  $ make_changes\n-  abort: cannot commit without an active bookmark\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg bookmarks\n+   * X                         0:4e3505fd9583\n+  $ make_changes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg revert test\n   $ rm test.orig\n@@ -103,102 +157,115 @@\n   $ cd ../a\n   $ hg bookmark X\n   $ hg bookmarks\n-   \\* X                         2:* (glob)\n-  $ make_changes\n-  $ hg bookmarks\n-   * X                         3:81af7977fdb9\n+   * X                         1:eeb87222e65d\n+  $ make_changes\n+  $ hg bookmarks\n+   * X                         2:dab9afca328b\n \n # go back to b, and check out X\n   $ cd ../b\n   $ hg up X\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (activating bookmark X)\n-  $ hg bookmarks\n-     @                         3:* (glob)\n-   \\* X                         1:* (glob)\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  $ hg bookmarks\n+   * X                         0:4e3505fd9583\n \n # pull, this should move the bookmark forward, because it was changed remotely\n   $ hg pull -u | grep "updating to active bookmark X"\n-  updating to active bookmark X\n-\n-  $ hg bookmarks\n-     @                         3:* (glob)\n-   * X                         4:81af7977fdb9\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [1]\n+\n+  $ hg bookmarks\n+   * X                         0:4e3505fd9583\n \n the bookmark should not move if it diverged from remote\n   $ hg -R ../a status\n   $ hg -R ../b status\n   $ make_changes ../a\n   $ make_changes ../b\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg -R ../a status\n   $ hg -R ../b status\n+  M test\n   $ hg -R ../a bookmarks\n-   * X                         4:238292f60a57\n+   * X                         3:041a5155619d\n   $ hg -R ../b bookmarks\n-     @                         3:* (glob)\n-   * X                         5:096f7e86892d\n+   * X                         0:4e3505fd9583\n   $ cd ../b\n   $ # make sure we cannot push after bookmarks diverged\n   $ hg push -B X | grep abort\n-  abort: push creates new remote head * with bookmark \'X\' (glob)\n-  (pull and merge or see \'hg help push\' for details about pushing new heads)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [1]\n   $ hg pull -u | grep divergent\n-  divergent bookmark X stored as X@default\n-  1 other divergent bookmarks for "X"\n-  $ hg bookmarks\n-     @                         3:* (glob)\n-   * X                         5:096f7e86892d\n-     X@default                 6:238292f60a57\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [1]\n+  $ hg bookmarks\n+   * X                         0:4e3505fd9583\n   $ hg id -in\n-  096f7e86892d 5\n-  $ make_changes\n-  $ hg status\n-  $ hg bookmarks\n-     @                         3:* (glob)\n-   * X                         7:227f941aeb07\n-     X@default                 6:238292f60a57\n+  4e3505fd9583+ 0+\n+  $ make_changes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  M test\n+  $ hg bookmarks\n+   * X                         0:4e3505fd9583\n \n now merge with the remote bookmark\n   $ hg merge X@default --tool :local -q\n+  abort: unknown revision \'X@default\'\n+  [255]\n   $ hg status\n   M test\n   $ hg commit -m"Merged with X@default"\n-  $ hg bookmarks\n-     @                         3:* (glob)\n-   * X                         8:26fed9bb3219\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg bookmarks\n+   * X                         0:4e3505fd9583\n   $ hg push -B X | grep bookmark\n   pushing to $TESTTMP/a (?)\n-  updating bookmark X\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [1]\n   $ cd ../a\n   $ hg up -q\n   $ hg bookmarks\n-   * X                         7:26fed9bb3219\n+   * X                         0:4e3505fd9583\n \n test hg pull when there is more than one descendant\n   $ cd ../a\n   $ hg bookmark Z\n   $ hg bookmark Y\n   $ make_changes . YY\n+  created new head\n   $ hg up Z -q\n   $ make_changes . ZZ\n   created new head\n   $ hg bookmarks\n-     X                         7:26fed9bb3219\n-     Y                         8:131e663dbd2a\n-   * Z                         9:b74a4149df25\n+     X                         0:4e3505fd9583\n+     Y                         4:96fcd182bd02\n+   * Z                         5:2133d6e798ea\n   $ hg log -r \'p1(Y)\' -r \'p1(Z)\' -T \'{rev}\\n\' # prove that Y and Z share the same parent\n-  7\n+  0\n   $ hg log -r \'Y%Z\' -T \'{rev}\\n\'  # revs in Y but not in Z\n-  8\n+  4\n   $ hg log -r \'Z%Y\' -T \'{rev}\\n\'  # revs in Z but not in Y\n-  9\n+  5\n   $ cd ../b\n   $ hg pull -uq\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg id\n-  b74a4149df25 tip Z\n+  4e3505fd9583+ tip X\n   $ hg bookmarks | grep \\*  # no active bookmark\n-  [1]\n+   * X                         0:4e3505fd9583\n \n \n test shelving\n@@ -208,23 +275,28 @@\n   $ hg commit -m"Change in a"\n   $ cd ../b\n   $ hg up Z | grep Z\n-  (activating bookmark Z)\n+  abort: unknown revision \'Z\'\n+  [1]\n   $ hg book | grep \\* # make sure active bookmark\n-   \\* Z                         10:* (glob)\n+   * X                         0:4e3505fd9583\n   $ echo "test b" >> test\n   $ hg diff --stat\n-   test |  1 +\n-   1 files changed, 1 insertions(+), 0 deletions(-)\n+   test |  3 +++\n+   1 files changed, 3 insertions(+), 0 deletions(-)\n   $ hg shelve\n-  shelved as Z\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg pull -uq\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg unshelve\n-  unshelving change \'Z\'\n-  rebasing shelved changes\n+  abort: no shelved changes to apply!\n+  [255]\n   $ hg diff --stat\n-   test |  1 +\n-   1 files changed, 1 insertions(+), 0 deletions(-)\n+   test |  3 +++\n+   1 files changed, 3 insertions(+), 0 deletions(-)\n \n \n make the bookmark move by updating it on a, and then pulling with a local change\n@@ -235,58 +307,53 @@\n # go back to b, and check out X\n   $ cd ../b\n   $ hg up -C X |fgrep  "activating bookmark X"\n-  (activating bookmark X)\n+  [1]\n # update and push from a\n   $ make_changes ../a\n   created new head\n   $ echo "more" >> test\n   $ hg pull -u 2>&1 | fgrep -v TESTTMP| fgrep -v "searching for changes" | fgrep -v adding\n   pulling from $TESTTMP/a\n-  updating bookmark X\n-  added 1 changesets with 0 changes to 0 files (+1 heads)\n-  new changesets * (glob)\n-  updating to active bookmark X\n-  merging test\n-  warning: conflicts while merging test! (edit, then use \'hg resolve --mark\')\n-  0 files updated, 0 files merged, 0 files removed, 1 files unresolved\n-  use \'hg resolve\' to retry unresolved file merges\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   $ hg update -Cq\n   $ rm test.orig\n+  rm: cannot lstat `test.orig\': $ENOENT$\n+  [1]\n \n make sure that commits aren\'t possible if working directory is not pointing to active bookmark\n   $ hg -R ../a status\n   $ hg -R ../b status\n   $ hg -R ../a id -i\n-  36a6e592ec06\n+  2dbb5a29b191\n   $ hg -R ../a book | grep X\n-   \\* X                         \\d+:36a6e592ec06 (re)\n+   * X                         7:2dbb5a29b191\n   $ hg -R ../b id -i\n-  36a6e592ec06\n+  4e3505fd9583\n   $ hg -R ../b book | grep X\n-   \\* X                         \\d+:36a6e592ec06 (re)\n+   * X                         0:4e3505fd9583\n   $ make_changes ../a\n   $ hg -R ../a book | grep X\n-   \\* X                         \\d+:f73a71c992b8 (re)\n+   * X                         8:fccc96134769\n   $ cd ../b\n   $ hg pull  2>&1 | grep -v add | grep -v pulling | grep -v searching | grep -v changeset\n-  updating bookmark X\n-  (run \'hg update\' to get a working copy)\n-  working directory out of sync with active bookmark, run \'hg up X\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   $ hg id -i # we\'re still on the old commit\n-  36a6e592ec06\n+  4e3505fd9583\n   $ hg book | grep X # while the bookmark moved\n-   \\* X                         \\d+:f73a71c992b8 (re)\n-  $ make_changes\n-  abort: cannot commit, working directory out of sync with active bookmark\n-  (run \'hg up X\')\n+   * X                         0:4e3505fd9583\n+  $ make_changes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg up -Cq -r .  # cleanup local changes\n   $ hg status\n   $ hg id -i # we\'re still on the old commit\n-  36a6e592ec06\n+  4e3505fd9583\n   $ hg up X -q\n   $ hg id -i # now we\'re on X\n-  f73a71c992b8\n+  4e3505fd9583\n   $ hg book | grep X\n-   \\* X                         \\d+:f73a71c992b8 (re)\n-\n+   * X                         0:4e3505fd9583\n+\n', 2353, 2355, 'truncated \\uXXXX escape') decoding diff, sorry

test-bookmarks-rebase.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-bookmarks-rebase.t\n+++ c:/hgdev/src/tests/test-bookmarks-rebase.t.err\n@@ -39,12 +39,84 @@\n   $ hg rebase -s two -d one\n   rebasing 3:2ae46b1d99a7 two tip "3"\n   saved backup bundle to $TESTTMP/.hg/strip-backup/2ae46b1d99a7-e6b057bc-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\.hg\\strip-backup/2ae46b1d99a7-e6b057bc-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\.hg\\strip-backup/2ae46b1d99a7-f7f05615-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\.hg\\strip-backup/2ae46b1d99a7-f7f05615-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg log\n-  changeset:   3:42e5ed2cdcf4\n+  changeset:   4:42e5ed2cdcf4\n   bookmark:    two\n   tag:         tip\n   parent:      1:925d80f479bb\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     3\n+  \n+  changeset:   3:2ae46b1d99a7\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n   summary:     3\n@@ -69,37 +141,45 @@\n aborted rebase should restore active bookmark.\n \n   $ hg up 1\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  (leaving bookmark two)\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo \'e\' > d\n   $ hg ci -A -m "4"\n-  adding d\n-  created new head\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg bookmark three\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg rebase -s three -d two\n-  rebasing 4:dd7c838e8362 three tip "4"\n-  merging d\n-  warning: conflicts while merging d! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg rebase --continue\')\n-  [240]\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg rebase --abort\n+  saved backup bundle to $TESTTMP/.hg/strip-backup/42e5ed2cdcf4-f7f05615-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\.hg\\strip-backup/42e5ed2cdcf4-f7f05615-backup.hg\'\n   rebase aborted\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark\n      one                       1:925d80f479bb\n-   * three                     4:dd7c838e8362\n-     two                       3:42e5ed2cdcf4\n+     two                       4:42e5ed2cdcf4\n \n after aborted rebase, restoring a bookmark that has been removed should not fail\n \n   $ hg rebase -s three -d two\n-  rebasing 4:dd7c838e8362 three tip "4"\n-  merging d\n-  warning: conflicts while merging d! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg rebase --continue\')\n-  [240]\n+  abort: unknown revision \'three\'\n+  [255]\n   $ hg bookmark -d three\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg rebase --abort\n-  rebase aborted\n+  abort: no rebase in progress\n+  [20]\n   $ hg bookmark\n      one                       1:925d80f479bb\n-     two                       3:42e5ed2cdcf4\n+     two                       4:42e5ed2cdcf4\n', 2506, 2508, 'truncated \\uXXXX escape') decoding diff, sorry

test-bookmarks-strip.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-bookmarks-strip.t\n+++ c:/hgdev/src/tests/test-bookmarks-strip.t.err\n@@ -57,9 +57,66 @@\n \n   $ hg strip 1\n   saved backup bundle to $TESTTMP/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\.hg\\strip-backup/25e1ee7a0081-8dd19322-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\.hg\\strip-backup/25e1ee7a0081-1621ad80-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\.hg\\strip-backup/25e1ee7a0081-1621ad80-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n list bookmarks\n \n   $ hg book\n-     test                      0:5c9ad3787638\n-     test2                     0:5c9ad3787638\n+     test                      1:25e1ee7a0081\n+     test2                     1:25e1ee7a0081\n', 2443, 2445, 'truncated \\uXXXX escape') decoding diff, sorry

test-bookmarks.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-bookmarks.t\n+++ c:/hgdev/src/tests/test-bookmarks.t.err\n@@ -244,93 +244,188 @@\n rename nonexistent bookmark\n \n   $ hg bookmark -m A B\n-  abort: bookmark \'A\' does not exist\n-  [10]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 1278, in bookmark\n+      bookmarks.deactivate(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n rename to existent bookmark\n \n   $ hg bookmark -m X Y\n-  abort: bookmark \'Y\' already exists (use -f to force)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n force rename to existent bookmark\n \n   $ hg bookmark -f -m X Y\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n rename bookmark using .\n \n   $ hg book rename-me\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg book -m . renamed --config "$TESTHOOK"\n-  test-hook-bookmark: rename-me:  db815d6d32e69058eadefc8cffbad37675707975 -> \n-  test-hook-bookmark: renamed:   -> db815d6d32e69058eadefc8cffbad37675707975\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark\n-     X2                        1:925d80f479bb\n-     Y                         2:db815d6d32e6\n-     Z                         0:f7b1eb17ad24\n-   * renamed                   2:db815d6d32e6\n+   * X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+     Y                         -1:000000000000\n+     Z                         0:f7b1eb17ad24\n   $ hg up -q Y\n   $ hg book -d renamed --config "$TESTHOOK"\n-  test-hook-bookmark: renamed:  db815d6d32e69058eadefc8cffbad37675707975 -> \n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n rename bookmark using . with no active bookmark\n \n   $ hg book rename-me\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg book -i rename-me\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg book -m . renamed\n-  abort: no active bookmark\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg up -q Y\n   $ hg book -d rename-me\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n delete bookmark using .\n \n   $ hg book delete-me\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg book -d .\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark\n-     X2                        1:925d80f479bb\n-     Y                         2:db815d6d32e6\n+     X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+   * Y                         -1:000000000000\n      Z                         0:f7b1eb17ad24\n   $ hg up -q Y\n \n delete bookmark using . with no active bookmark\n \n   $ hg book delete-me\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg book -i delete-me\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg book -d .\n-  abort: no active bookmark\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg up -q Y\n   $ hg book -d delete-me\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n list bookmarks\n \n   $ hg bookmark\n-     X2                        1:925d80f479bb\n-   * Y                         2:db815d6d32e6\n+     X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+   * Y                         -1:000000000000\n      Z                         0:f7b1eb17ad24\n \n bookmarks from a revset\n   $ hg bookmark -r \'.^1\' REVSET\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark -r \':tip\' TIP\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up -q TIP\n-  $ hg bookmarks\n-     REVSET                    0:f7b1eb17ad24\n-   * TIP                       2:db815d6d32e6\n-     X2                        1:925d80f479bb\n-     Y                         2:db815d6d32e6\n+  abort: unknown revision \'TIP\'\n+  [255]\n+  $ hg bookmarks\n+     X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+   * Y                         -1:000000000000\n      Z                         0:f7b1eb17ad24\n \n   $ hg bookmark -d REVSET\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark -d TIP\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n rename without new name or multiple names\n \n   $ hg bookmark -m Y\n-  abort: new bookmark name required\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark -m Y Y2 Y3\n-  abort: only one new bookmark name allowed\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n delete without name\n \n@@ -341,8 +436,9 @@\n delete nonexistent bookmark\n \n   $ hg bookmark -d A\n-  abort: bookmark \'A\' does not exist\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n delete with --inactive\n \n@@ -353,96 +449,104 @@\n bookmark name with spaces should be stripped\n \n   $ hg bookmark \' x  y \'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n list bookmarks\n \n   $ hg bookmarks\n-     X2                        1:925d80f479bb\n-     Y                         2:db815d6d32e6\n-     Z                         0:f7b1eb17ad24\n-   * x  y                      2:db815d6d32e6\n+     X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+   * Y                         -1:000000000000\n+     Z                         0:f7b1eb17ad24\n   $ hg log -T \'{bookmarks % "{rev} {bookmark}\\n"}\'\n-  2 Y\n-  2 x  y\n+  2 X\n   1 X2\n   0 Z\n \n look up stripped bookmark name\n \n   $ hg log -r \'"x  y"\'\n-  changeset:   2:db815d6d32e6\n-  bookmark:    Y\n-  bookmark:    x  y\n-  tag:         tip\n-  parent:      0:f7b1eb17ad24\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     2\n-  \n+  abort: unknown revision \'x  y\'\n+  [255]\n \n reject bookmark name with newline\n \n   $ hg bookmark \'\n   > \'\n-  abort: bookmark names cannot consist entirely of whitespace\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg bookmark -m Z \'\n   > \'\n-  abort: bookmark names cannot consist entirely of whitespace\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n bookmark with reserved name\n \n   $ hg bookmark tip\n-  abort: the name \'tip\' is reserved\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg bookmark .\n-  abort: the name \'.\' is reserved\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg bookmark null\n-  abort: the name \'null\' is reserved\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n \n bookmark with existing name\n \n   $ hg bookmark X2\n-  abort: bookmark \'X2\' already exists (use -f to force)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n   $ hg bookmark -m Y Z\n-  abort: bookmark \'Z\' already exists (use -f to force)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n bookmark with name of branch\n \n   $ hg bookmark default\n-  abort: a bookmark cannot have the name of an existing branch\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n   $ hg bookmark -m Y default\n-  abort: a bookmark cannot have the name of an existing branch\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n bookmark with integer name\n \n   $ hg bookmark 10\n-  abort: cannot use an integer as a name\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n bookmark with a name that matches a node id\n   $ hg bookmark 925d80f479bb db815d6d32e6 --config "$TESTHOOK"\n-  bookmark 925d80f479bb matches a changeset hash\n-  (did you leave a -r out of an \'hg bookmark\' command?)\n-  bookmark db815d6d32e6 matches a changeset hash\n-  (did you leave a -r out of an \'hg bookmark\' command?)\n-  test-hook-bookmark: 925d80f479bb:   -> db815d6d32e69058eadefc8cffbad37675707975\n-  test-hook-bookmark: db815d6d32e6:   -> db815d6d32e69058eadefc8cffbad37675707975\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark -d 925d80f479bb\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark -d db815d6d32e6\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ cd ..\n \n@@ -489,34 +593,40 @@\n force bookmark with existing name\n \n   $ hg bookmark -f X2 --config "$TESTHOOK"\n-  test-hook-bookmark: X2:  925d80f479bb026b0fb3deb27503780b13f74123 -> db815d6d32e69058eadefc8cffbad37675707975\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n force bookmark back to where it was, should deactivate it\n \n   $ hg bookmark -fr1 X2\n-  $ hg bookmarks\n-     X2                        1:925d80f479bb\n-     Y                         2:db815d6d32e6\n-     Z                         0:f7b1eb17ad24\n-     x  y                      2:db815d6d32e6\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg bookmarks\n+     X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+   * Y                         -1:000000000000\n+     Z                         0:f7b1eb17ad24\n \n forward bookmark to descendant without --force\n \n   $ hg bookmark Z\n-  moving bookmark \'Z\' forward from f7b1eb17ad24\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n list bookmarks\n \n   $ hg bookmark\n-     X2                        1:925d80f479bb\n-     Y                         2:db815d6d32e6\n-   * Z                         2:db815d6d32e6\n-     x  y                      2:db815d6d32e6\n+     X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+   * Y                         -1:000000000000\n+     Z                         0:f7b1eb17ad24\n   $ hg log -T \'{bookmarks % "{rev} {bookmark}\\n"}\'\n-  2 Y\n-  2 Z\n-  2 x  y\n+  2 X\n   1 X2\n+  0 Z\n \n revision but no bookmark name\n \n@@ -527,129 +637,167 @@\n bookmark name with whitespace only\n \n   $ hg bookmark \' \'\n-  abort: bookmark names cannot consist entirely of whitespace\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg bookmark -m Y \' \'\n-  abort: bookmark names cannot consist entirely of whitespace\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n invalid bookmark\n \n   $ hg bookmark \'foo:bar\'\n-  abort: \':\' cannot be used in a name\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg bookmark \'foo\n   > bar\'\n-  abort: \'\\n\' cannot be used in a name\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n the bookmark extension should be ignored now that it is part of core\n \n   $ echo "[extensions]" >> $HGRCPATH\n   $ echo "bookmarks=" >> $HGRCPATH\n   $ hg bookmarks\n-     X2                        1:925d80f479bb\n-     Y                         2:db815d6d32e6\n-   * Z                         2:db815d6d32e6\n-     x  y                      2:db815d6d32e6\n+     X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+   * Y                         -1:000000000000\n+     Z                         0:f7b1eb17ad24\n \n test summary\n \n   $ hg summary\n-  parent: 2:db815d6d32e6 tip\n-   2\n+  parent: -1:000000000000  (no revision checked out)\n   branch: default\n-  bookmarks: *Z Y x  y\n+  bookmarks: *Y\n   commit: (clean)\n-  update: 1 new changesets, 2 branch heads (merge)\n+  update: 3 new changesets (update)\n   phases: 3 draft\n \n test id\n \n   $ hg id\n-  db815d6d32e6 tip Y/Z/x  y\n+  000000000000 Y\n \n test rollback\n \n   $ echo foo > f1\n   $ hg bookmark tmp-rollback\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg ci -Amr\n   adding f1\n-  $ hg bookmarks\n-     X2                        1:925d80f479bb\n-     Y                         2:db815d6d32e6\n-     Z                         2:db815d6d32e6\n-   * tmp-rollback              3:2bf5cfec5864\n-     x  y                      2:db815d6d32e6\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg bookmarks\n+     X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+   * Y                         -1:000000000000\n+     Z                         0:f7b1eb17ad24\n   $ hg rollback\n-  repository tip rolled back to revision 2 (undo commit)\n-  working directory now based on revision 2\n-  $ hg bookmarks\n-     X2                        1:925d80f479bb\n-     Y                         2:db815d6d32e6\n-     Z                         2:db815d6d32e6\n-   * tmp-rollback              2:db815d6d32e6\n-     x  y                      2:db815d6d32e6\n+  abort: rollback of last commit while not checked out may lose data\n+  (use -f to force)\n+  [255]\n+  $ hg bookmarks\n+     X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+   * Y                         -1:000000000000\n+     Z                         0:f7b1eb17ad24\n   $ hg bookmark -f Z -r 1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg rollback\n-  repository tip rolled back to revision 2 (undo bookmark)\n-  $ hg bookmarks\n-     X2                        1:925d80f479bb\n-     Y                         2:db815d6d32e6\n-     Z                         2:db815d6d32e6\n-   * tmp-rollback              2:db815d6d32e6\n-     x  y                      2:db815d6d32e6\n+  abort: rollback of last commit while not checked out may lose data\n+  (use -f to force)\n+  [255]\n+  $ hg bookmarks\n+     X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+   * Y                         -1:000000000000\n+     Z                         0:f7b1eb17ad24\n   $ hg bookmark -d tmp-rollback\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n activate bookmark on working dir parent without --force\n \n   $ hg bookmark --inactive Z\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark Z\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n deactivate current \'Z\', but also add \'Y\'\n \n   $ hg bookmark -d Y\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark --inactive Z Y\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark -l\n-     X2                        1:925d80f479bb\n-     Y                         2:db815d6d32e6\n-     Z                         2:db815d6d32e6\n-     x  y                      2:db815d6d32e6\n+     X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+   * Y                         -1:000000000000\n+     Z                         0:f7b1eb17ad24\n   $ hg bookmark Z\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n bookmark wdir to activate it (issue6218)\n \n   $ hg bookmark -d Z\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark -r \'wdir()\' Z\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark -l\n-     X2                        1:925d80f479bb\n-     Y                         2:db815d6d32e6\n-   * Z                         2:db815d6d32e6\n-     x  y                      2:db815d6d32e6\n+     X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+   * Y                         -1:000000000000\n+     Z                         0:f7b1eb17ad24\n \n test clone\n \n   $ hg bookmark -r 2 -i @\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark -r 2 -i a@\n-  $ hg bookmarks\n-     @                         2:db815d6d32e6\n-     X2                        1:925d80f479bb\n-     Y                         2:db815d6d32e6\n-   * Z                         2:db815d6d32e6\n-     a@                        2:db815d6d32e6\n-     x  y                      2:db815d6d32e6\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg bookmarks\n+     X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+   * Y                         -1:000000000000\n+     Z                         0:f7b1eb17ad24\n   $ hg clone . cloned-bookmarks\n-  updating to bookmark @\n+  updating to branch default\n   2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg -R cloned-bookmarks bookmarks\n-   * @                         2:db815d6d32e6\n-     X2                        1:925d80f479bb\n-     Y                         2:db815d6d32e6\n-     Z                         2:db815d6d32e6\n-     a@                        2:db815d6d32e6\n-     x  y                      2:db815d6d32e6\n+     X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+     Y                         -1:000000000000\n+     Z                         0:f7b1eb17ad24\n \n test clone with pull protocol\n \n@@ -660,35 +808,41 @@\n   adding file changes\n   added 3 changesets with 3 changes to 3 files (+1 heads)\n   new changesets f7b1eb17ad24:db815d6d32e6\n-  updating to bookmark @\n+  updating to branch default\n   2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg -R cloned-bookmarks-pull bookmarks\n-   * @                         2:db815d6d32e6\n-     X2                        1:925d80f479bb\n-     Y                         2:db815d6d32e6\n-     Z                         2:db815d6d32e6\n-     a@                        2:db815d6d32e6\n-     x  y                      2:db815d6d32e6\n+     X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+     Y                         -1:000000000000\n+     Z                         0:f7b1eb17ad24\n \n delete multiple bookmarks at once\n \n   $ hg bookmark -d @ a@\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n test clone with a bookmark named "default" (issue3677)\n \n   $ hg bookmark -r 1 -f -i default\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg clone . cloned-bookmark-default\n   updating to branch default\n   2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg -R cloned-bookmark-default bookmarks\n-     X2                        1:925d80f479bb\n-     Y                         2:db815d6d32e6\n-     Z                         2:db815d6d32e6\n-     default                   1:925d80f479bb\n-     x  y                      2:db815d6d32e6\n+     X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+     Y                         -1:000000000000\n+     Z                         0:f7b1eb17ad24\n   $ hg -R cloned-bookmark-default parents -q\n   2:db815d6d32e6\n   $ hg bookmark -d default\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n test clone with a specific revision\n \n@@ -702,17 +856,19 @@\n   2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg -R cloned-bookmarks-rev bookmarks\n      X2                        1:925d80f479bb\n+     Y                         -1:000000000000\n+     Z                         0:f7b1eb17ad24\n \n test clone with update to a bookmark\n \n   $ hg clone -u Z . ../cloned-bookmarks-update\n   updating to branch default\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg -R ../cloned-bookmarks-update bookmarks\n-     X2                        1:925d80f479bb\n-     Y                         2:db815d6d32e6\n-   * Z                         2:db815d6d32e6\n-     x  y                      2:db815d6d32e6\n+     X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+     Y                         -1:000000000000\n+   * Z                         0:f7b1eb17ad24\n \n create bundle with two heads\n \n@@ -734,12 +890,9 @@\n   searching for changes\n   2 changesets found\n   $ hg unbundle tobundle.hg\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 2 changes to 2 files (+1 heads)\n-  new changesets 125c9a1d6df6:9ba5f110a0b3 (2 drafts)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n update to active bookmark if it\'s not the parent\n \n@@ -748,46 +901,43 @@\n working directory of current repository)\n \n   $ hg summary\n-  parent: 2:db815d6d32e6 \n-   2\n+  parent: -1:000000000000  (no revision checked out)\n   branch: default\n-  bookmarks: *Z Y x  y\n+  bookmarks: *Y\n+  commit: 2 unknown (clean)\n   commit: 1 added, 1 unknown (new branch head) (no-fsmonitor !)\n   commit: 1 added, * unknown (new branch head) (glob) (fsmonitor !)\n-  update: 2 new changesets (update)\n-  phases: 5 draft\n+  update: 3 new changesets (update)\n+  phases: 3 draft\n   $ hg update\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  updating bookmark Z\n-  $ hg bookmarks\n-     X2                        1:925d80f479bb\n-     Y                         2:db815d6d32e6\n-   * Z                         3:125c9a1d6df6\n-     x  y                      2:db815d6d32e6\n+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg bookmarks\n+     X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+   * Y                         -1:000000000000\n+     Z                         0:f7b1eb17ad24\n \n pull --update works the same as pull && update\n \n   $ hg bookmark -r3 Y\n-  moving bookmark \'Y\' forward from db815d6d32e6\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cp -R ../cloned-bookmarks-update ../cloned-bookmarks-manual-update\n   $ cp -R ../cloned-bookmarks-update ../cloned-bookmarks-manual-update-with-divergence\n \n (manual version)\n \n   $ hg -R ../cloned-bookmarks-manual-update update Y\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n   (activating bookmark Y)\n   $ hg -R ../cloned-bookmarks-manual-update pull .\n   pulling from .\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  updating bookmark Y\n-  updating bookmark Z\n-  added 2 changesets with 2 changes to 2 files (+1 heads)\n-  new changesets 125c9a1d6df6:9ba5f110a0b3\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  no changes found\n \n (# tests strange but with --date crashing when bookmark have to move)\n \n@@ -795,70 +945,55 @@\n   abort: revision matching date not found\n   [10]\n   $ hg -R ../cloned-bookmarks-manual-update update\n-  updating to active bookmark Y\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  updating bookmark Y\n \n (all in one version)\n \n   $ hg -R ../cloned-bookmarks-update update Y\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n   (activating bookmark Y)\n   $ hg -R ../cloned-bookmarks-update pull --update .\n   pulling from .\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  updating bookmark Y\n-  updating bookmark Z\n-  added 2 changesets with 2 changes to 2 files (+1 heads)\n-  new changesets 125c9a1d6df6:9ba5f110a0b3\n-  updating to active bookmark Y\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  no changes found\n \n We warn about divergent during bare update to the active bookmark\n \n   $ hg -R ../cloned-bookmarks-manual-update-with-divergence update Y\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n   (activating bookmark Y)\n   $ hg -R ../cloned-bookmarks-manual-update-with-divergence bookmarks -r X2 Y@1\n   $ hg -R ../cloned-bookmarks-manual-update-with-divergence bookmarks\n-     X2                        1:925d80f479bb\n-   * Y                         2:db815d6d32e6\n+     X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+   * Y                         -1:000000000000\n      Y@1                       1:925d80f479bb\n-     Z                         2:db815d6d32e6\n-     x  y                      2:db815d6d32e6\n+     Z                         0:f7b1eb17ad24\n   $ hg -R ../cloned-bookmarks-manual-update-with-divergence pull\n   pulling from $TESTTMP/repo\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n+  no changes found\n+  $ hg -R ../cloned-bookmarks-manual-update-with-divergence update\n+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   updating bookmark Y\n-  updating bookmark Z\n-  added 2 changesets with 2 changes to 2 files (+1 heads)\n-  new changesets 125c9a1d6df6:9ba5f110a0b3\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n-  $ hg -R ../cloned-bookmarks-manual-update-with-divergence update\n-  updating to active bookmark Y\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   1 other divergent bookmarks for "Y"\n \n test wrongly formated bookmark\n \n   $ echo \'\' >> .hg/bookmarks\n   $ hg bookmarks\n-     X2                        1:925d80f479bb\n-     Y                         3:125c9a1d6df6\n-   * Z                         3:125c9a1d6df6\n-     x  y                      2:db815d6d32e6\n+     X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+   * Y                         -1:000000000000\n+     Z                         0:f7b1eb17ad24\n   $ echo "Ican\'thasformatedlines" >> .hg/bookmarks\n   $ hg bookmarks\n   malformed line in .hg/bookmarks: "Ican\'thasformatedlines"\n-     X2                        1:925d80f479bb\n-     Y                         3:125c9a1d6df6\n-   * Z                         3:125c9a1d6df6\n-     x  y                      2:db815d6d32e6\n+     X                         2:db815d6d32e6\n+     X2                        1:925d80f479bb\n+   * Y                         -1:000000000000\n+     Z                         0:f7b1eb17ad24\n \n test missing revisions\n \n@@ -869,20 +1004,8 @@\n test stripping a non-checked-out but bookmarked revision\n \n   $ hg log --graph\n-  o  changeset:   4:9ba5f110a0b3\n-  |  branch:      test\n+  @  changeset:   2:db815d6d32e6\n   |  tag:         tip\n-  |  parent:      2:db815d6d32e6\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     y\n-  |\n-  | @  changeset:   3:125c9a1d6df6\n-  |/   user:        test\n-  |    date:        Thu Jan 01 00:00:00 1970 +0000\n-  |    summary:     x\n-  |\n-  o  changeset:   2:db815d6d32e6\n   |  parent:      0:f7b1eb17ad24\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n@@ -899,25 +1022,24 @@\n      summary:     0\n   \n   $ hg book should-end-on-two\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg co --clean 4\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  (leaving bookmark should-end-on-two)\n+  abort: unknown revision \'4\'\n+  [255]\n   $ hg book four\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg --config extensions.mq= strip 3\n-  saved backup bundle to * (glob)\n+  abort: unknown revision \'3\'\n+  [255]\n should-end-on-two should end up pointing to revision 2, as that\'s the\n tipmost surviving ancestor of the stripped revision.\n   $ hg log --graph\n-  @  changeset:   3:9ba5f110a0b3\n-  |  branch:      test\n-  |  bookmark:    four\n+  @  changeset:   2:db815d6d32e6\n   |  tag:         tip\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     y\n-  |\n-  o  changeset:   2:db815d6d32e6\n-  |  bookmark:    should-end-on-two\n   |  parent:      0:f7b1eb17ad24\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n@@ -941,58 +1063,75 @@\n working directory of current repository)\n \n   $ hg bookmarks\n-   * four                      3:9ba5f110a0b3\n-     should-end-on-two         2:db815d6d32e6\n+  no bookmarks set\n   $ hg up four\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: unknown revision \'four\'\n+  [255]\n   $ hg up\n   0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  updated to "db815d6d32e6: 2"\n+  1 other heads for branch "default"\n   $ hg sum\n-  parent: 3:9ba5f110a0b3 tip\n-   y\n-  branch: test\n-  bookmarks: *four\n+  parent: 2:db815d6d32e6 tip\n+   2\n+  branch: default\n+  commit: 2 unknown (clean)\n   commit: 2 unknown (clean) (no-fsmonitor !)\n   commit: * unknown (clean) (glob) (fsmonitor !)\n-  update: (current)\n-  phases: 4 draft\n+  update: 1 new changesets, 2 branch heads (merge)\n+  phases: 3 draft\n \n test clearing divergent bookmarks of linear ancestors\n \n   $ hg bookmark Z -r 0\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark Z@1 -r 1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark Z@2 -r 2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark Z@3 -r 3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg book\n-     Z                         0:f7b1eb17ad24\n-     Z@1                       1:925d80f479bb\n-     Z@2                       2:db815d6d32e6\n-     Z@3                       3:9ba5f110a0b3\n-   * four                      3:9ba5f110a0b3\n-     should-end-on-two         2:db815d6d32e6\n+  no bookmarks set\n   $ hg bookmark Z\n-  moving bookmark \'Z\' forward from f7b1eb17ad24\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg book\n-   * Z                         3:9ba5f110a0b3\n-     Z@1                       1:925d80f479bb\n-     four                      3:9ba5f110a0b3\n-     should-end-on-two         2:db815d6d32e6\n+  no bookmarks set\n \n test clearing only a single divergent bookmark across branches\n \n   $ hg book foo -r 1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg book foo@1 -r 0\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg book foo@2 -r 2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg book foo@3 -r 3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg book foo -r foo@3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg book\n-   * Z                         3:9ba5f110a0b3\n-     Z@1                       1:925d80f479bb\n-     foo                       3:9ba5f110a0b3\n-     foo@1                     0:f7b1eb17ad24\n-     foo@2                     2:db815d6d32e6\n-     four                      3:9ba5f110a0b3\n-     should-end-on-two         2:db815d6d32e6\n+  no bookmarks set\n \n pull --update works the same as pull && update (case #2)\n \n@@ -1000,7 +1139,9 @@\n bookmark (\'Y\' in tests below).\n \n   $ hg pull -q ../cloned-bookmarks-update\n-  divergent bookmark Z stored as Z@2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n (pulling revision on another named branch with --update updates\n neither the working directory nor current active bookmark: "no-op"\n@@ -1008,51 +1149,39 @@\n \n   $ echo yy >> y\n   $ hg commit -m yy\n+  nothing changed\n+  [1]\n \n   $ hg -R ../cloned-bookmarks-update bookmarks | grep \' Y \'\n-   * Y                         3:125c9a1d6df6\n+   * Y                         -1:000000000000\n   $ hg -R ../cloned-bookmarks-update pull . --update\n   pulling from .\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  divergent bookmark Z stored as Z@default\n-  adding remote bookmark foo\n-  adding remote bookmark four\n-  adding remote bookmark should-end-on-two\n-  added 1 changesets with 1 changes to 1 files\n-  new changesets 5fb12f0f2d51\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  no changes found\n   $ hg -R ../cloned-bookmarks-update parents -T "{rev}:{node|short}\\n"\n-  3:125c9a1d6df6\n   $ hg -R ../cloned-bookmarks-update bookmarks | grep \' Y \'\n-   * Y                         3:125c9a1d6df6\n+   * Y                         -1:000000000000\n \n (pulling revision on current named/topological branch with --update\n updates the working directory and current active bookmark)\n \n   $ hg update -C -q 125c9a1d6df6\n+  abort: unknown revision \'125c9a1d6df6\'\n+  [255]\n   $ echo xx >> x\n   $ hg commit -m xx\n+  nothing changed\n+  [1]\n \n   $ hg -R ../cloned-bookmarks-update bookmarks | grep \' Y \'\n-   * Y                         3:125c9a1d6df6\n+   * Y                         -1:000000000000\n   $ hg -R ../cloned-bookmarks-update pull . --update\n   pulling from .\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  divergent bookmark Z stored as Z@default\n-  added 1 changesets with 1 changes to 1 files\n-  new changesets 81dcce76aa0b\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  updating bookmark Y\n+  no changes found\n   $ hg -R ../cloned-bookmarks-update parents -T "{rev}:{node|short}\\n"\n-  6:81dcce76aa0b\n   $ hg -R ../cloned-bookmarks-update bookmarks | grep \' Y \'\n-   * Y                         6:81dcce76aa0b\n+   * Y                         -1:000000000000\n \n   $ cd ..\n \n@@ -1122,10 +1251,50 @@\n   $ hg add a\n   $ hg commit -m \'#0\'\n   $ hg --config hooks.pretxnclose="sh $TESTTMP/savepending.sh" bookmarks INVISIBLE\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnclose hook exited with status 1\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 1278, in bookmark\n+      bookmarks.deactivate(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cp .hg/bookmarks.pending.saved .hg/bookmarks.pending\n \n (check visible bookmarks while transaction running in repo)\n@@ -1140,24 +1309,8 @@\n \n   $ cd ../repo\n   $ hg --config hooks.pretxnclose="sh $TESTTMP/checkpending.sh" bookmarks NEW\n-  @repo\n-   * NEW                       6:81dcce76aa0b\n-     X2                        1:925d80f479bb\n-     Y                         4:125c9a1d6df6\n-     Z                         5:5fb12f0f2d51\n-     Z@1                       1:925d80f479bb\n-     Z@2                       4:125c9a1d6df6\n-     foo                       3:9ba5f110a0b3\n-     foo@1                     0:f7b1eb17ad24\n-     foo@2                     2:db815d6d32e6\n-     four                      3:9ba5f110a0b3\n-     should-end-on-two         2:db815d6d32e6\n-     x  y                      2:db815d6d32e6\n-  @unrelated\n-  no bookmarks set\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnclose hook exited with status 1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n Check pretxnclose-bookmark can abort a transaction\n@@ -1175,62 +1328,22 @@\n   > EOF\n \n   $ hg log -G -T phases\n-  @  changeset:   6:81dcce76aa0b\n+  @  changeset:   2:db815d6d32e6\n   |  tag:         tip\n   |  phase:       draft\n-  |  parent:      4:125c9a1d6df6\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     xx\n-  |\n-  | o  changeset:   5:5fb12f0f2d51\n-  | |  branch:      test\n-  | |  bookmark:    Z\n-  | |  phase:       draft\n-  | |  parent:      3:9ba5f110a0b3\n-  | |  user:        test\n-  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  | |  summary:     yy\n-  | |\n-  o |  changeset:   4:125c9a1d6df6\n-  | |  bookmark:    Y\n-  | |  bookmark:    Z@2\n-  | |  phase:       public\n-  | |  parent:      2:db815d6d32e6\n-  | |  user:        test\n-  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  | |  summary:     x\n-  | |\n-  | o  changeset:   3:9ba5f110a0b3\n-  |/   branch:      test\n-  |    bookmark:    foo\n-  |    bookmark:    four\n-  |    phase:       public\n-  |    user:        test\n-  |    date:        Thu Jan 01 00:00:00 1970 +0000\n-  |    summary:     y\n-  |\n-  o  changeset:   2:db815d6d32e6\n-  |  bookmark:    foo@2\n-  |  bookmark:    should-end-on-two\n-  |  bookmark:    x  y\n-  |  phase:       public\n   |  parent:      0:f7b1eb17ad24\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     2\n   |\n   | o  changeset:   1:925d80f479bb\n-  |/   bookmark:    X2\n-  |    bookmark:    Z@1\n-  |    phase:       public\n+  |/   phase:       draft\n   |    user:        test\n   |    date:        Thu Jan 01 00:00:00 1970 +0000\n   |    summary:     1\n   |\n   o  changeset:   0:f7b1eb17ad24\n-     bookmark:    foo@1\n-     phase:       public\n+     phase:       draft\n      user:        test\n      date:        Thu Jan 01 00:00:00 1970 +0000\n      summary:     0\n@@ -1239,19 +1352,20 @@\n attempt to create on a default changeset\n \n   $ hg bookmark -r 81dcce76aa0b NEW\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnclose-bookmark.force-public hook exited with status 1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n create on a public changeset\n \n   $ hg bookmark -r 9ba5f110a0b3 NEW\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n move to the other branch\n \n   $ hg bookmark -f -r 125c9a1d6df6 NEW\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnclose-bookmark.force-forward hook exited with status 1\n-  [255]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n', 2105, 2107, 'truncated \\uXXXX escape') decoding diff, sorry

test-branch-change.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-branch-change.t\n+++ c:/hgdev/src/tests/test-branch-change.t.err\n@@ -51,21 +51,67 @@\n Change on non-linear set of commits\n \n   $ hg branch -r 2 -r 4 foo\n-  abort: cannot change branch of non-linear revisions\n-  [10]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 1358, in branch\n+      return cmdutil.changebranch(ui, repo, revs, label, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 1068, in changebranch\n+      ui.status(_(b"changed branch on %d changesets\\n") % len(replacements))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Change in middle of the stack (linear commits)\n \n   $ hg branch -r 1::3 foo\n-  abort: cannot change branch of changeset with children\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Change with dirty working directory\n \n   $ echo bar > a\n   $ hg branch -r . foo\n-  abort: uncommitted changes\n-  [20]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg revert --all\n   reverting a\n@@ -73,21 +119,23 @@\n Change on empty revision set\n \n   $ hg branch -r \'draft() - all()\' foo\n-  abort: empty revision set\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Changing branch on linear set of commits from head\n \n Without obsmarkers\n \n   $ hg branch -r 3:4 foo --config experimental.evolution=!\n-  changed branch on 2 changesets\n-  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/62615734edd5-e86bd13a-branch-change.hg\n-  $ hg glog\n-  @  4:3938acfb5c0f Added e\n-  |  foo ()\n-  o  3:9435da006bdc Added d\n-  |  foo ()\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg glog\n+  @  4:aa98ab95a928 Added e\n+  |  default ()\n+  o  3:62615734edd5 Added d\n+  |  default ()\n   o  2:28ad74487de9 Added c\n   |  default ()\n   o  1:29becc82797a Added b\n@@ -96,18 +144,19 @@\n      default ()\n \n   $ hg branches\n-  foo                            4:3938acfb5c0f\n-  default                        2:28ad74487de9 (inactive)\n+  default                        4:aa98ab95a928\n \n With obsmarkers\n \n   $ hg branch -r 3::4 bar\n-  changed branch on 2 changesets\n-  $ hg glog\n-  @  6:7c1991464886 Added e\n-  |  bar ()\n-  o  5:1ea05e93925f Added d\n-  |  bar ()\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg glog\n+  @  4:aa98ab95a928 Added e\n+  |  default ()\n+  o  3:62615734edd5 Added d\n+  |  default ()\n   o  2:28ad74487de9 Added c\n   |  default ()\n   o  1:29becc82797a Added b\n@@ -116,20 +165,21 @@\n      default ()\n \n   $ hg branches\n-  bar                            6:7c1991464886\n-  default                        2:28ad74487de9 (inactive)\n+  default                        4:aa98ab95a928\n \n Change branch name to an existing branch\n \n   $ hg branch -r . default\n-  abort: a branch of the same name already exists\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Changing on a branch head which is not topological head\n \n   $ hg branch -r 2 stable\n-  abort: cannot change branch of changeset with children\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Enabling the allowunstable config and trying to change branch on a branch head\n which is not a topological head\n@@ -137,238 +187,246 @@\n   $ echo "[experimental]" >> .hg/hgrc\n   $ echo "evolution.allowunstable=yes" >> .hg/hgrc\n   $ hg branch -r 2 foo\n-  changed branch on 1 changesets\n-  2 new orphan changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Changing branch of an obsoleted changeset\n \n   $ hg branch -r 4 foobar\n-  abort: hidden revision \'4\' was rewritten as: 7c1991464886\n-  (use --hidden to access hidden revisions)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n   $ hg branch -r 4 --hidden foobar\n-  abort: cannot change branch of a obsolete changeset\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Make sure bookmark movement is correct\n \n   $ hg bookmark b1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg glog -r \'.^::\'\n-  @  6:7c1991464886 Added e\n-  |  bar (b1)\n-  *  5:1ea05e93925f Added d\n-  |  bar ()\n+  @  4:aa98ab95a928 Added e\n+  |  default ()\n+  o  3:62615734edd5 Added d\n+  |  default ()\n   ~\n \n   $ hg branch -r \'(.^)::\' wat --debug\n-  changing branch of \'1ea05e93925f806d875a2163f9b76764be644636\' from \'bar\' to \'wat\'\n-  committing files:\n-  d\n-  committing manifest\n-  committing changelog\n-  new node id is 343660ccab7400da637bd6a211d07f413536d718\n-  changing branch of \'7c19914648869f5b02fc7fed31ddee9783fdd680\' from \'bar\' to \'wat\'\n-  committing files:\n-  e\n-  committing manifest\n-  committing changelog\n-  new node id is de1404b45a69f8cc6437d7679033ee33e9efb4ba\n-  moving bookmarks [\'b1\'] from 7c19914648869f5b02fc7fed31ddee9783fdd680 to de1404b45a69f8cc6437d7679033ee33e9efb4ba\n-  resolving manifests\n-   branchmerge: False, force: False, partial: False\n-   ancestor: 7c1991464886, local: 7c1991464886+, remote: de1404b45a69\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   starting 4 threads for background file closing (?)\n-  changed branch on 2 changesets\n-  updating the branch cache\n-  invalid branch cache (served): tip differs\n+  [255]\n \n   $ hg glog -r \'(.^)::\'\n-  @  9:de1404b45a69 Added e\n-  |  wat (b1)\n-  *  8:343660ccab74 Added d\n-  |  wat ()\n+  @  4:aa98ab95a928 Added e\n+  |  default ()\n+  o  3:62615734edd5 Added d\n+  |  default ()\n   ~\n \n Make sure phase handling is correct\n \n   $ echo foo >> bar\n   $ hg ci -Aqm "added bar" --secret\n-  1 new orphan changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg glog -r .\n-  @  10:8ad1294c1660 added bar\n-  |  wat (b1)\n+  @  4:aa98ab95a928 Added e\n+  |  default ()\n   ~\n   $ hg branch -r . secret\n-  changed branch on 1 changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase -r .\n-  11: secret\n+  4: draft\n \n   $ hg branches\n-  secret                        11:38a9b2d53f98\n-  foo                            7:8a4729a5e2b8\n-  wat                            9:de1404b45a69 (inactive)\n-  default                        2:28ad74487de9 (inactive)\n+  default                        4:aa98ab95a928\n   $ hg branch\n-  secret\n+  default\n \n Changing branch of another head, different from one on which we are\n \n   $ hg glog\n-  @  11:38a9b2d53f98 added bar\n-  |  secret (b1)\n-  *  9:de1404b45a69 Added e\n-  |  wat ()\n-  *  8:343660ccab74 Added d\n-  |  wat ()\n-  | o  7:8a4729a5e2b8 Added c\n-  | |  foo ()\n-  x |  2:28ad74487de9 Added c\n-  |/   default ()\n+  @  4:aa98ab95a928 Added e\n+  |  default ()\n+  o  3:62615734edd5 Added d\n+  |  default ()\n+  o  2:28ad74487de9 Added c\n+  |  default ()\n   o  1:29becc82797a Added b\n   |  default ()\n   o  0:18d04c59bb5d Added a\n      default ()\n \n   $ hg branch\n-  secret\n+  default\n \n   $ hg branch -r 7 foobar\n-  changed branch on 1 changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n The current branch must be preserved\n   $ hg branch\n-  secret\n+  default\n \n Changing branch on multiple heads at once\n \n   $ hg rebase -s 8 -d 12 --keepbranches -q\n+  abort: unknown revision \'8\'\n+  [255]\n \n   $ hg rebase -s 14 -d 1 --keepbranches -q\n+  abort: unknown revision \'14\'\n+  [255]\n \n   $ hg branch -r 0: stable\n-  changed branch on 6 changesets\n-  $ hg glog\n-  @  23:6a5ddbcfb870 added bar\n-  |  stable (b1)\n-  o  22:baedc6e98a67 Added e\n-  |  stable ()\n-  | o  21:99ac7bf8aad1 Added d\n-  | |  stable ()\n-  | o  20:0ecb4d39c4bd Added c\n-  |/   stable ()\n-  o  19:fd45b986b109 Added b\n-  |  stable ()\n-  o  18:204d2769eca2 Added a\n-     stable ()\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg glog\n+  @  4:aa98ab95a928 Added e\n+  |  default ()\n+  o  3:62615734edd5 Added d\n+  |  default ()\n+  o  2:28ad74487de9 Added c\n+  |  default ()\n+  o  1:29becc82797a Added b\n+  |  default ()\n+  o  0:18d04c59bb5d Added a\n+     default ()\n \n   $ hg branches\n-  stable                        23:6a5ddbcfb870\n+  default                        4:aa98ab95a928\n \n   $ hg branch\n-  stable\n+  default\n \n Changing to same branch is no-op\n \n   $ hg branch -r 19::21 stable\n-  changed branch on 0 changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Changing branch name to existing branch name if the branch of parent of root of\n revs is same as the new branch name\n \n   $ hg branch -r 20::21 bugfix\n-  changed branch on 2 changesets\n-  $ hg glog\n-  o  25:714defe1cf34 Added d\n-  |  bugfix ()\n-  o  24:98394def28fc Added c\n-  |  bugfix ()\n-  | @  23:6a5ddbcfb870 added bar\n-  | |  stable (b1)\n-  | o  22:baedc6e98a67 Added e\n-  |/   stable ()\n-  o  19:fd45b986b109 Added b\n-  |  stable ()\n-  o  18:204d2769eca2 Added a\n-     stable ()\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg glog\n+  @  4:aa98ab95a928 Added e\n+  |  default ()\n+  o  3:62615734edd5 Added d\n+  |  default ()\n+  o  2:28ad74487de9 Added c\n+  |  default ()\n+  o  1:29becc82797a Added b\n+  |  default ()\n+  o  0:18d04c59bb5d Added a\n+     default ()\n \n   $ hg branch -r 24:25 stable\n-  changed branch on 2 changesets\n-  $ hg glog\n-  o  27:4ec342341562 Added d\n-  |  stable ()\n-  o  26:83f48859c2de Added c\n-  |  stable ()\n-  | @  23:6a5ddbcfb870 added bar\n-  | |  stable (b1)\n-  | o  22:baedc6e98a67 Added e\n-  |/   stable ()\n-  o  19:fd45b986b109 Added b\n-  |  stable ()\n-  o  18:204d2769eca2 Added a\n-     stable ()\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg glog\n+  @  4:aa98ab95a928 Added e\n+  |  default ()\n+  o  3:62615734edd5 Added d\n+  |  default ()\n+  o  2:28ad74487de9 Added c\n+  |  default ()\n+  o  1:29becc82797a Added b\n+  |  default ()\n+  o  0:18d04c59bb5d Added a\n+     default ()\n \n Changing branch of a merge commit\n \n   $ hg branch -q ghi\n   $ echo f > f\n   $ hg ci -qAm \'Added f\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up -q 27\n+  abort: unknown revision \'27\'\n+  [255]\n   $ hg branch -q jkl\n   $ echo g > g\n   $ hg ci -qAm \'Added g\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg glog -r \'heads(:)\'\n-  @  29:6bc1c6c2c9da Added g\n-  |  jkl ()\n-  ~\n-  o  28:2f1019bd29d2 Added f\n-  |  ghi (b1)\n+  @  4:aa98ab95a928 Added e\n+  |  default ()\n   ~\n \n   $ hg branch -q default\n   $ hg merge -r 28\n-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n+  abort: merging with a working directory ancestor has no effect\n+  [255]\n   $ hg branch -r . abcd\n-  abort: outstanding uncommitted merge\n-  [20]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg ci -m "Merge commit"\n+  nothing changed\n+  [1]\n   $ hg glog -r \'parents(.)::\'\n-  @    30:4d56e6b1eb6b Merge commit\n-  |\\   default ()\n-  | o  29:6bc1c6c2c9da Added g\n-  | |  jkl ()\n-  | ~\n-  o  28:2f1019bd29d2 Added f\n-  |  ghi (b1)\n+  @  4:aa98ab95a928 Added e\n+  |  default ()\n+  o  3:62615734edd5 Added d\n+  |  default ()\n   ~\n \n   $ hg branch -r . ghi\n-  0 files updated, 0 files merged, 4 files removed, 0 files unresolved\n-  changed branch on 1 changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch -r . jkl\n-  changed branch on 1 changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch -r . default\n-  changed branch on 1 changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch -r . stable\n-  abort: a branch of the same name already exists\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg branch -r . stable --force\n-  changed branch on 1 changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branches\n-  stable                        34:d1c2addda4a2\n-  jkl                           29:6bc1c6c2c9da (inactive)\n-  ghi                           28:2f1019bd29d2 (inactive)\n+  default                        4:aa98ab95a928\n \n Changing branch on public changeset\n \n   $ hg phase -r . -p\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch -r . def\n-  abort: cannot change branch of public changesets\n-  (see \'hg help phases\' for details)\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Merge commit with conflicts, with evolution and without\n \n@@ -417,11 +475,74 @@\n   $ hg branch -r \'(.^)::\' abc\n   changed branch on 2 changesets\n   saved backup bundle to $TESTTMP/merge-without-evolution/.hg/strip-backup/9a3a2af368f4-8db1a361-branch-change.hg\n-  $ hg glog\n-  @    3:c07fa8b34d54 neither\n+  strip failed, backup bundle stored in \'$TESTTMP\\merge-without-evolution\\.hg\\strip-backup/9a3a2af368f4-8db1a361-branch-change.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\merge-without-evolution\\.hg\\strip-backup/9a3a2af368f4-5302be0d-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\merge-without-evolution\\.hg\\strip-backup/9a3a2af368f4-5302be0d-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 1358, in branch\n+      return cmdutil.changebranch(ui, repo, revs, label, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 1068, in changebranch\n+      ui.status(_(b"changed branch on %d changesets\\n") % len(replacements))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg glog\n+  @    5:c07fa8b34d54 neither\n   |\\   abc ()\n-  | o  2:f2aa51777cc9 baz\n+  | o  4:f2aa51777cc9 baz\n   | |  abc ()\n+  +---o  3:23352ce8447f neither\n+  | | |  default ()\n+  | | o  2:9a3a2af368f4 baz\n+  | |/   default ()\n   o |  1:2e33c4f0856b bar\n   |/   default ()\n   o  0:91cfb6004abf foo\n', 2146, 2148, 'truncated \\uXXXX escape') decoding diff, sorry

test-branches.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-branches.t\n+++ c:/hgdev/src/tests/test-branches.t.err\n@@ -744,24 +744,8 @@\n   $ rm -rf .hg/cache; hg head a -T \'{rev}\\n\'\n   5\n   $ f --hexdump --size .hg/cache/rbc-*\n-  .hg/cache/rbc-names-v1: size=92\n-  0000: 64 65 66 61 75 6c 74 00 61 00 62 00 63 00 61 20 |default.a.b.c.a |\n-  0010: 62 72 61 6e 63 68 20 6e 61 6d 65 20 6d 75 63 68 |branch name much|\n-  0020: 20 6c 6f 6e 67 65 72 20 74 68 61 6e 20 74 68 65 | longer than the|\n-  0030: 20 64 65 66 61 75 6c 74 20 6a 75 73 74 69 66 69 | default justifi|\n-  0040: 63 61 74 69 6f 6e 20 75 73 65 64 20 62 79 20 62 |cation used by b|\n-  0050: 72 61 6e 63 68 65 73 00 6d 00 6d 64             |ranches.m.md|\n-  .hg/cache/rbc-revs-v1: size=160\n-  0000: 19 70 9c 5a 00 00 00 00 dd 6b 44 0d 00 00 00 01 |.p.Z.....kD.....|\n-  0010: 88 1f e2 b9 00 00 00 01 ac 22 03 33 00 00 00 02 |.........".3....|\n-  0020: ae e3 9c d1 00 00 00 02 d8 cb c6 1d 00 00 00 01 |................|\n-  0030: 58 97 36 a2 00 00 00 03 10 ff 58 95 00 00 00 04 |X.6.......X.....|\n-  0040: ee bb 94 44 00 00 00 02 5f 40 61 bb 00 00 00 02 |...D...._@a.....|\n-  0050: bf be 84 1b 00 00 00 02 d3 f1 63 45 80 00 00 02 |..........cE....|\n-  0060: e3 d4 9c 05 80 00 00 02 e2 3b 55 05 00 00 00 02 |.........;U.....|\n-  0070: f8 94 c2 56 80 00 00 03 f3 44 76 37 00 00 00 05 |...V.....Dv7....|\n-  0080: a5 8c a5 d3 00 00 00 05 df 34 3b 0d 00 00 00 05 |.........4;.....|\n-  0090: c9 14 c9 9f 00 00 00 06 cd 21 a8 0b 80 00 00 05 |.........!......|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n no errors when revbranchcache is not writable\n \n@@ -791,103 +775,129 @@\n   5\n   truncating cache/rbc-revs-v1 to 160\n   $ f --size .hg/cache/rbc-revs*\n-  .hg/cache/rbc-revs-v1: size=160\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n recovery from invalid cache file with partial last record\n   $ mv .hg/cache/rbc-revs-v1 .\n   $ f -qDB 119 rbc-revs-v1 > .hg/cache/rbc-revs-v1\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ f --size .hg/cache/rbc-revs*\n-  .hg/cache/rbc-revs-v1: size=119\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ rm -f .hg/cache/branch* && hg head a -T \'{rev}\\n\' --debug\n   5\n-  truncating cache/rbc-revs-v1 to 112\n   $ f --size .hg/cache/rbc-revs*\n-  .hg/cache/rbc-revs-v1: size=160\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n recovery from invalid cache file with missing record - no truncation\n   $ mv .hg/cache/rbc-revs-v1 .\n   $ f -qDB 112 rbc-revs-v1 > .hg/cache/rbc-revs-v1\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ rm -f .hg/cache/branch* && hg head a -T \'{rev}\\n\' --debug\n   5\n   $ f --size .hg/cache/rbc-revs*\n-  .hg/cache/rbc-revs-v1: size=160\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n recovery from invalid cache file with some bad records\n   $ mv .hg/cache/rbc-revs-v1 .\n   $ f -qDB 8 rbc-revs-v1 > .hg/cache/rbc-revs-v1\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ f --size .hg/cache/rbc-revs*\n-  .hg/cache/rbc-revs-v1: size=8\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ f -qDB 112 rbc-revs-v1 >> .hg/cache/rbc-revs-v1\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ f --size .hg/cache/rbc-revs*\n-  .hg/cache/rbc-revs-v1: size=120\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ hg log -r \'branch(.)\' -T \'{rev} \' --debug\n-  history modification detected - truncating revision branch cache to revision 13\n-  history modification detected - truncating revision branch cache to revision 1\n-  3 4 8 9 10 11 12 13 truncating cache/rbc-revs-v1 to 8\n+  3 4 8 9 10 11 12 13  (no-eol)\n   $ rm -f .hg/cache/branch* && hg head a -T \'{rev}\\n\' --debug\n   5\n-  truncating cache/rbc-revs-v1 to 104\n   $ f --size --hexdump --bytes=16 .hg/cache/rbc-revs*\n-  .hg/cache/rbc-revs-v1: size=160\n-  0000: 19 70 9c 5a 00 00 00 00 dd 6b 44 0d 00 00 00 01 |.p.Z.....kD.....|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n cache is updated when committing\n   $ hg branch i-will-regret-this\n   marked working directory as branch i-will-regret-this\n   $ hg ci -m regrets\n   $ f --size .hg/cache/rbc-*\n-  .hg/cache/rbc-names-v1: size=111\n-  .hg/cache/rbc-revs-v1: size=168\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n update after rollback - the cache will be correct but rbc-names will will still\n contain the branch name even though it no longer is used\n   $ hg up -qr \'.^\'\n   $ hg rollback -qf\n   $ f --size --hexdump .hg/cache/rbc-*\n-  .hg/cache/rbc-names-v1: size=111\n-  0000: 64 65 66 61 75 6c 74 00 61 00 62 00 63 00 61 20 |default.a.b.c.a |\n-  0010: 62 72 61 6e 63 68 20 6e 61 6d 65 20 6d 75 63 68 |branch name much|\n-  0020: 20 6c 6f 6e 67 65 72 20 74 68 61 6e 20 74 68 65 | longer than the|\n-  0030: 20 64 65 66 61 75 6c 74 20 6a 75 73 74 69 66 69 | default justifi|\n-  0040: 63 61 74 69 6f 6e 20 75 73 65 64 20 62 79 20 62 |cation used by b|\n-  0050: 72 61 6e 63 68 65 73 00 6d 00 6d 64 00 69 2d 77 |ranches.m.md.i-w|\n-  0060: 69 6c 6c 2d 72 65 67 72 65 74 2d 74 68 69 73    |ill-regret-this|\n-  .hg/cache/rbc-revs-v1: size=160\n-  0000: 19 70 9c 5a 00 00 00 00 dd 6b 44 0d 00 00 00 01 |.p.Z.....kD.....|\n-  0010: 88 1f e2 b9 00 00 00 01 ac 22 03 33 00 00 00 02 |.........".3....|\n-  0020: ae e3 9c d1 00 00 00 02 d8 cb c6 1d 00 00 00 01 |................|\n-  0030: 58 97 36 a2 00 00 00 03 10 ff 58 95 00 00 00 04 |X.6.......X.....|\n-  0040: ee bb 94 44 00 00 00 02 5f 40 61 bb 00 00 00 02 |...D...._@a.....|\n-  0050: bf be 84 1b 00 00 00 02 d3 f1 63 45 80 00 00 02 |..........cE....|\n-  0060: e3 d4 9c 05 80 00 00 02 e2 3b 55 05 00 00 00 02 |.........;U.....|\n-  0070: f8 94 c2 56 80 00 00 03 f3 44 76 37 00 00 00 05 |...V.....Dv7....|\n-  0080: a5 8c a5 d3 00 00 00 05 df 34 3b 0d 00 00 00 05 |.........4;.....|\n-  0090: c9 14 c9 9f 00 00 00 06 cd 21 a8 0b 80 00 00 05 |.........!......|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n cache is updated/truncated when stripping - it is thus very hard to get in a\n situation where the cache is out of sync and the hash check detects it\n   $ hg --config extensions.strip= strip -r tip --nob\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ f --size .hg/cache/rbc-revs*\n-  .hg/cache/rbc-revs-v1: size=152\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n cache is rebuilt when corruption is detected\n   $ echo > .hg/cache/rbc-names-v1\n   $ hg log -r \'5:&branch(.)\' -T \'{rev} \' --debug\n   referenced branch names not found - rebuilding revision branch cache from scratch\n-  8 9 10 11 12 13 truncating cache/rbc-revs-v1 to 40\n+  13 truncating cache/rbc-revs-v1 to 40\n   $ f --size --hexdump .hg/cache/rbc-*\n-  .hg/cache/rbc-names-v1: size=84\n-  0000: 62 00 61 00 63 00 61 20 62 72 61 6e 63 68 20 6e |b.a.c.a branch n|\n-  0010: 61 6d 65 20 6d 75 63 68 20 6c 6f 6e 67 65 72 20 |ame much longer |\n-  0020: 74 68 61 6e 20 74 68 65 20 64 65 66 61 75 6c 74 |than the default|\n-  0030: 20 6a 75 73 74 69 66 69 63 61 74 69 6f 6e 20 75 | justification u|\n-  0040: 73 65 64 20 62 79 20 62 72 61 6e 63 68 65 73 00 |sed by branches.|\n-  0050: 6d 00 6d 64                                     |m.md|\n-  .hg/cache/rbc-revs-v1: size=152\n-  0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|\n-  0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|\n-  0020: 00 00 00 00 00 00 00 00 d8 cb c6 1d 00 00 00 01 |................|\n-  0030: 58 97 36 a2 00 00 00 02 10 ff 58 95 00 00 00 03 |X.6.......X.....|\n-  0040: ee bb 94 44 00 00 00 00 5f 40 61 bb 00 00 00 00 |...D...._@a.....|\n-  0050: bf be 84 1b 00 00 00 00 d3 f1 63 45 80 00 00 00 |..........cE....|\n-  0060: e3 d4 9c 05 80 00 00 00 e2 3b 55 05 00 00 00 00 |.........;U.....|\n-  0070: f8 94 c2 56 80 00 00 02 f3 44 76 37 00 00 00 04 |...V.....Dv7....|\n-  0080: a5 8c a5 d3 00 00 00 04 df 34 3b 0d 00 00 00 04 |.........4;.....|\n-  0090: c9 14 c9 9f 00 00 00 05                         |........|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n Test that cache files are created and grows correctly:\n \n@@ -895,19 +905,8 @@\n   $ hg log -r "5 & branch(5)" -T "{rev}\\n"\n   5\n   $ f --size --hexdump .hg/cache/rbc-*\n-  .hg/cache/rbc-names-v1: size=1\n-  0000: 61                                              |a|\n-  .hg/cache/rbc-revs-v1: size=152\n-  0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|\n-  0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|\n-  0020: 00 00 00 00 00 00 00 00 d8 cb c6 1d 00 00 00 00 |................|\n-  0030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|\n-  0040: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|\n-  0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|\n-  0060: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|\n-  0070: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|\n-  0080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|\n-  0090: 00 00 00 00 00 00 00 00                         |........|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n   $ cd ..\n \n@@ -923,21 +922,15 @@\n   $ hg ci -Amf\n \n   $ f --size --hexdump .hg/cache/rbc-*\n-  .hg/cache/rbc-names-v1: size=14\n-  0000: 64 65 66 61 75 6c 74 00 62 72 61 6e 63 68       |default.branch|\n-  .hg/cache/rbc-revs-v1: size=24\n-  0000: 66 e5 f5 aa 00 00 00 00 fa 4c 04 e5 00 00 00 00 |f........L......|\n-  0010: 56 46 78 69 00 00 00 01                         |VFxi....|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ : > .hg/cache/rbc-revs-v1\n \n No superfluous rebuilding of cache:\n   $ hg log -r "branch(null)&branch(branch)" --debug\n   $ f --size --hexdump .hg/cache/rbc-*\n-  .hg/cache/rbc-names-v1: size=14\n-  0000: 64 65 66 61 75 6c 74 00 62 72 61 6e 63 68       |default.branch|\n-  .hg/cache/rbc-revs-v1: size=24\n-  0000: 66 e5 f5 aa 00 00 00 00 fa 4c 04 e5 00 00 00 00 |f........L......|\n-  0010: 56 46 78 69 00 00 00 01                         |VFxi....|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n   $ cd ..\n \n', 7797, 7799, 'truncated \\uXXXX escape') decoding diff, sorry

test-bundle-phases.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-bundle-phases.t\n+++ c:/hgdev/src/tests/test-bundle-phases.t.err\n@@ -46,7 +46,60 @@\n   phase-heads -- {} (mandatory: True)\n       26805aba1e600a82e93661149f2313866a221a7b draft\n   $ hg strip --no-backup C\n-  $ hg unbundle -q bundle\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg unbundle -q bundle\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rm bundle\n   $ hg log -G -T \'{desc} {phase}\\n\'\n   o  E secret\n@@ -63,7 +116,13 @@\n   $ hg bundle -a bundle\n   5 changesets found\n   $ hg strip --no-backup A\n-  $ hg unbundle -q bundle\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unbundle -q bundle\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rm bundle\n   $ hg log -G -T \'{desc} {phase}\\n\'\n   o  E secret\n@@ -78,56 +137,86 @@\n   \n Completely public history can be restored\n   $ hg phase --public E\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bundle -a bundle\n   5 changesets found\n   $ hg strip --no-backup A\n-  $ hg unbundle -q bundle\n-  $ rm bundle\n-  $ hg log -G -T \'{desc} {phase}\\n\'\n-  o  E public\n-  |\n-  o  D public\n-  |\n-  o  C public\n-  |\n-  o  B public\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unbundle -q bundle\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ rm bundle\n+  $ hg log -G -T \'{desc} {phase}\\n\'\n+  o  E secret\n+  |\n+  o  D secret\n+  |\n+  o  C draft\n+  |\n+  o  B draft\n   |\n   o  A public\n   \n Direct transition from public to secret can be restored\n   $ hg phase --secret --force D\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bundle -a bundle\n   5 changesets found\n   $ hg strip --no-backup A\n-  $ hg unbundle -q bundle\n-  $ rm bundle\n-  $ hg log -G -T \'{desc} {phase}\\n\'\n-  o  E secret\n-  |\n-  o  D secret\n-  |\n-  o  C public\n-  |\n-  o  B public\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unbundle -q bundle\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ rm bundle\n+  $ hg log -G -T \'{desc} {phase}\\n\'\n+  o  E secret\n+  |\n+  o  D secret\n+  |\n+  o  C draft\n+  |\n+  o  B draft\n   |\n   o  A public\n   \n Revisions within bundle preserve their phase even if parent changes its phase\n   $ hg phase --draft --force B\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bundle --base B -r E bundle\n   3 changesets found\n   $ hg strip --no-backup C\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase --public B\n-  $ hg unbundle -q bundle\n-  $ rm bundle\n-  $ hg log -G -T \'{desc} {phase}\\n\'\n-  o  E secret\n-  |\n-  o  D secret\n-  |\n-  o  C draft\n-  |\n-  o  B public\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unbundle -q bundle\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ rm bundle\n+  $ hg log -G -T \'{desc} {phase}\\n\'\n+  o  E secret\n+  |\n+  o  D secret\n+  |\n+  o  C draft\n+  |\n+  o  B draft\n   |\n   o  A public\n   \n@@ -135,8 +224,17 @@\n   $ hg bundle --base B -r E bundle\n   3 changesets found\n   $ hg strip --no-backup C\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase --force --secret B\n-  $ hg unbundle -q bundle\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unbundle -q bundle\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rm bundle\n   $ hg log -G -T \'{desc} {phase}\\n\'\n   o  E secret\n@@ -153,17 +251,32 @@\n To test that, create a bundle of everything in draft phase and then unbundle\n to see that secret becomes draft, but public remains public.\n   $ hg phase --draft --force A\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase --draft E\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bundle -a bundle\n   5 changesets found\n   $ hg phase --public A\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase --secret --force E\n-  $ hg unbundle -q bundle\n-  $ rm bundle\n-  $ hg log -G -T \'{desc} {phase}\\n\'\n-  o  E draft\n-  |\n-  o  D draft\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unbundle -q bundle\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ rm bundle\n+  $ hg log -G -T \'{desc} {phase}\\n\'\n+  o  E secret\n+  |\n+  o  D secret\n   |\n   o  C draft\n   |\n@@ -173,8 +286,16 @@\n   \n Unbundling change in the middle of a stack does not affect later changes\n   $ hg strip --no-backup E\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase --secret --force D\n-  $ hg log -G -T \'{desc} {phase}\\n\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg log -G -T \'{desc} {phase}\\n\'\n+  o  E secret\n+  |\n   o  D secret\n   |\n   o  C draft\n@@ -186,8 +307,13 @@\n   $ hg bundle --base A -r B bundle\n   1 changesets found\n   $ hg unbundle -q bundle\n-  $ rm bundle\n-  $ hg log -G -T \'{desc} {phase}\\n\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ rm bundle\n+  $ hg log -G -T \'{desc} {phase}\\n\'\n+  o  E secret\n+  |\n   o  D secret\n   |\n   o  C draft\n@@ -239,7 +365,60 @@\n       dc0947a82db884575bb76ea10ac97b08536bfa03 public\n       03ca77807e919db8807c3749086dc36fb478cac0 draft\n   $ hg strip --no-backup A\n-  $ hg unbundle -q bundle\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg unbundle -q bundle\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rm bundle\n   $ hg log -G -T \'{node|short} {desc} {phase}\\n\'\n   o  03ca77807e91 E draft\n', 2342, 2344, 'truncated \\uXXXX escape') decoding diff, sorry

test-bundle-r.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-bundle-r.t\n+++ c:/hgdev/src/tests/test-bundle-r.t.err\n@@ -221,98 +221,133 @@\n   2:4ce51a113780\n   $ hg unbundle ../test-bundle-should-fail.hg\n   adding changesets\n-  transaction abort!\n-  rollback completed\n-  abort: 00changelog.i@93ee6ab32777: unknown parent\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 7400, in unbundle\n+      repo, gen, tr, source=b\'unbundle\', url=url\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n revision 2\n \n   $ hg tip -q\n   2:4ce51a113780\n   $ hg unbundle ../test-bundle-all.hg\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 6 changesets with 4 changes to 4 files (+1 heads)\n-  new changesets 93ee6ab32777:916f1afdef90 (6 drafts)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n revision 8\n \n   $ hg tip -q\n-  8:916f1afdef90\n-  $ hg verify\n-  checking changesets\n-  checking manifests\n-  crosschecking files in changesets and manifests\n-  checking files\n-  checked 9 changesets with 7 changes to 4 files\n+  2:4ce51a113780\n+  $ hg verify\n+  abandoned transaction found - run hg recover\n+  checking changesets\n+  checking manifests\n+  crosschecking files in changesets and manifests\n+  checking files\n+  checked 3 changesets with 3 changes to 1 files\n   $ hg rollback\n-  repository tip rolled back to revision 2 (undo unbundle)\n+  no rollback information available\n+  [1]\n \n revision 2\n \n   $ hg tip -q\n   2:4ce51a113780\n   $ hg unbundle ../test-bundle-branch1.hg\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 2 changes to 2 files\n-  new changesets 93ee6ab32777:916f1afdef90 (2 drafts)\n-  (run \'hg update\' to get a working copy)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n revision 4\n \n   $ hg tip -q\n-  4:916f1afdef90\n-  $ hg verify\n-  checking changesets\n-  checking manifests\n-  crosschecking files in changesets and manifests\n-  checking files\n-  checked 5 changesets with 5 changes to 2 files\n+  2:4ce51a113780\n+  $ hg verify\n+  abandoned transaction found - run hg recover\n+  checking changesets\n+  checking manifests\n+  crosschecking files in changesets and manifests\n+  checking files\n+  checked 3 changesets with 3 changes to 1 files\n   $ hg rollback\n-  repository tip rolled back to revision 2 (undo unbundle)\n+  no rollback information available\n+  [1]\n   $ hg unbundle ../test-bundle-branch2.hg\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 4 changesets with 3 changes to 3 files (+1 heads)\n-  new changesets c70afb1ee985:faa2e4234c7a (4 drafts)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n revision 6\n \n   $ hg tip -q\n-  6:faa2e4234c7a\n-  $ hg verify\n-  checking changesets\n-  checking manifests\n-  crosschecking files in changesets and manifests\n-  checking files\n-  checked 7 changesets with 6 changes to 3 files\n+  2:4ce51a113780\n+  $ hg verify\n+  abandoned transaction found - run hg recover\n+  checking changesets\n+  checking manifests\n+  crosschecking files in changesets and manifests\n+  checking files\n+  checked 3 changesets with 3 changes to 1 files\n   $ hg rollback\n-  repository tip rolled back to revision 2 (undo unbundle)\n+  no rollback information available\n+  [1]\n   $ hg unbundle ../test-bundle-cset-7.hg\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 2 changes to 2 files\n-  new changesets 93ee6ab32777:916f1afdef90 (2 drafts)\n-  (run \'hg update\' to get a working copy)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n revision 4\n \n   $ hg tip -q\n-  4:916f1afdef90\n-  $ hg verify\n-  checking changesets\n-  checking manifests\n-  crosschecking files in changesets and manifests\n-  checking files\n-  checked 5 changesets with 5 changes to 2 files\n+  2:4ce51a113780\n+  $ hg verify\n+  abandoned transaction found - run hg recover\n+  checking changesets\n+  checking manifests\n+  crosschecking files in changesets and manifests\n+  checking files\n+  checked 3 changesets with 3 changes to 1 files\n \n   $ cd ../test\n   $ hg merge 7\n', 2194, 2196, 'truncated \\uXXXX escape') decoding diff, sorry

test-bundle-type.t

--- c:/hgdev/src/tests/test-bundle-type.t
+++ c:/hgdev/src/tests/test-bundle-type.t.err
@@ -64,7 +64,8 @@
   % test bundle type None
   searching for changes
   1 changesets found
-  HG20 (esc)
+  /usr/bin/env: python3: $ENOENT$
+  
   Stream params: {}
   changegroup -- {nbchanges: 1, version: 02} (mandatory: True)
       c35a0f9217e65d1fdb90c936ffa7dbe679f83ddf
@@ -74,7 +75,8 @@
   % test bundle type bzip2
   searching for changes
   1 changesets found
-  HG20 (esc)
+  /usr/bin/env: python3: $ENOENT$
+  
   Stream params: {Compression: BZ}
   changegroup -- {nbchanges: 1, version: 02} (mandatory: True)
       c35a0f9217e65d1fdb90c936ffa7dbe679f83ddf
@@ -84,7 +86,8 @@
   % test bundle type gzip
   searching for changes
   1 changesets found
-  HG20 (esc)
+  /usr/bin/env: python3: $ENOENT$
+  
   Stream params: {Compression: GZ}
   changegroup -- {nbchanges: 1, version: 02} (mandatory: True)
       c35a0f9217e65d1fdb90c936ffa7dbe679f83ddf
@@ -94,7 +97,8 @@
   % test bundle type none-v2
   searching for changes
   1 changesets found
-  HG20 (esc)
+  /usr/bin/env: python3: $ENOENT$
+  
   Stream params: {}
   changegroup -- {nbchanges: 1, version: 02} (mandatory: True)
       c35a0f9217e65d1fdb90c936ffa7dbe679f83ddf
@@ -104,7 +108,8 @@
   % test bundle type v2
   searching for changes
   1 changesets found
-  HG20 (esc)
+  /usr/bin/env: python3: $ENOENT$
+  
   Stream params: {Compression: BZ}
   changegroup -- {nbchanges: 1, version: 02} (mandatory: True)
       c35a0f9217e65d1fdb90c936ffa7dbe679f83ddf
@@ -114,14 +119,16 @@
   % test bundle type v1
   searching for changes
   1 changesets found
-  HG10BZ
+  /usr/bin/env: python3: $ENOENT$
+  
   c35a0f9217e65d1fdb90c936ffa7dbe679f83ddf
   bzip2-v1
   
   % test bundle type gzip-v1
   searching for changes
   1 changesets found
-  HG10GZ
+  /usr/bin/env: python3: $ENOENT$
+  
   c35a0f9217e65d1fdb90c936ffa7dbe679f83ddf
   gzip-v1
   
@@ -147,17 +154,20 @@
   $ hg bundle -a -t gzip-v2 gzip-v2.hg
   1 changesets found
   $ f --size gzip-v2.hg
-  gzip-v2.hg: size=468
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
   $ hg --config experimental.bundlecomplevel=1 bundle -a -t gzip-v2 gzip-v2-level1.hg
   1 changesets found
   $ f --size gzip-v2-level1.hg
-  gzip-v2-level1.hg: size=475
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
   $ hg --config experimental.bundlecomplevel.gzip=1 --config experimental.bundlelevel=9 bundle -a -t gzip-v2 gzip-v2-level1.hg
   1 changesets found
   $ f --size gzip-v2-level1.hg
-  gzip-v2-level1.hg: size=475
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
   $ cd ..
 
@@ -206,8 +216,7 @@
 zstd is a valid engine but isn't available
 
   $ hg -R t1 bundle -a -t zstd irrelevant.hg
-  abort: compression engine zstd could not be loaded
-  [255]
+  1 changesets found
 
 #endif
 

test-bundle.t

--- c:/hgdev/src/tests/test-bundle.t
+++ c:/hgdev/src/tests/test-bundle.t.err
@@ -926,8 +926,8 @@
 Test the option that create slim bundle
 
   $ hg bundle -a --config devel.bundle.delta=p1 ./slim.hg
-  3 changesets found
+  4 changesets found
 
 Test the option that create and no-delta's bundle
   $ hg bundle -a --config devel.bundle.delta=full ./full.hg
-  3 changesets found
+  4 changesets found

test-bundle2-exchange.t#sshv1

test-bundle2-exchange.t#sshv2

test-bundle2-format.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-bundle2-format.t\n+++ c:/hgdev/src/tests/test-bundle2-format.t.err\n@@ -262,8 +262,8 @@\n Test bundling\n \n   $ hg bundle2 | f --hexdump\n-  \n-  0000: 48 47 32 30 00 00 00 00 00 00 00 00             |HG20........|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n Test timeouts during bundling\n   $ hg bundle2 --timeout --debug --config devel.bundle2.debug=yes\n@@ -313,9 +313,8 @@\n Test generation simple option\n \n   $ hg bundle2 --param \'caution\' | f --hexdump\n-  \n-  0000: 48 47 32 30 00 00 00 07 63 61 75 74 69 6f 6e 00 |HG20....caution.|\n-  0010: 00 00 00                                        |...|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n Test unbundling\n \n@@ -327,9 +326,8 @@\n Test generation multiple option\n \n   $ hg bundle2 --param \'caution\' --param \'meal\' | f --hexdump\n-  \n-  0000: 48 47 32 30 00 00 00 0c 63 61 75 74 69 6f 6e 20 |HG20....caution |\n-  0010: 6d 65 61 6c 00 00 00 00                         |meal....|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n Test unbundling\n \n@@ -345,10 +343,8 @@\n Test generation\n \n   $ hg bundle2 --param \'caution\' --param \'meal=vegan\' --param \'elephants\' | f --hexdump\n-  \n-  0000: 48 47 32 30 00 00 00 1c 63 61 75 74 69 6f 6e 20 |HG20....caution |\n-  0010: 6d 65 61 6c 3d 76 65 67 61 6e 20 65 6c 65 70 68 |meal=vegan eleph|\n-  0020: 61 6e 74 73 00 00 00 00                         |ants....|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n Test unbundling\n \n@@ -366,11 +362,8 @@\n Test generation\n \n   $ hg bundle2 --param \'e|! 7/=babar%#==tutu\' --param simple | f --hexdump\n-  \n-  0000: 48 47 32 30 00 00 00 29 65 25 37 43 25 32 31 25 |HG20...)e%7C%21%|\n-  0010: 32 30 37 2f 3d 62 61 62 61 72 25 32 35 25 32 33 |207/=babar%25%23|\n-  0020: 25 33 44 25 33 44 74 75 74 75 20 73 69 6d 70 6c |%3D%3Dtutu simpl|\n-  0030: 65 00 00 00 00                                  |e....|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n Test unbundling\n \n@@ -403,11 +396,8 @@\n file content is ok\n \n   $ f --hexdump ../out.hg2\n-  ../out.hg2:\n-  0000: 48 47 32 30 00 00 00 29 65 25 37 43 25 32 31 25 |HG20...)e%7C%21%|\n-  0010: 32 30 37 2f 3d 62 61 62 61 72 25 32 35 25 32 33 |207/=babar%25%23|\n-  0020: 25 33 44 25 33 44 74 75 74 75 20 73 69 6d 70 6c |%3D%3Dtutu simpl|\n-  0030: 65 00 00 00 00                                  |e....|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n unbundling debug\n \n@@ -490,33 +480,8 @@\n   bundle2-output: end of bundle\n \n   $ f --hexdump ../parts.hg2\n-  ../parts.hg2:\n-  0000: 48 47 32 30 00 00 00 00 00 00 00 11 0a 74 65 73 |HG20.........tes|\n-  0010: 74 3a 65 6d 70 74 79 00 00 00 00 00 00 00 00 00 |t:empty.........|\n-  0020: 00 00 00 00 11 0a 74 65 73 74 3a 65 6d 70 74 79 |......test:empty|\n-  0030: 00 00 00 01 00 00 00 00 00 00 00 00 00 10 09 74 |...............t|\n-  0040: 65 73 74 3a 73 6f 6e 67 00 00 00 02 00 00 00 00 |est:song........|\n-  0050: 00 b2 50 61 74 61 6c 69 20 44 69 72 61 70 61 74 |..Patali Dirapat|\n-  0060: 61 2c 20 43 72 6f 6d 64 61 20 43 72 6f 6d 64 61 |a, Cromda Cromda|\n-  0070: 20 52 69 70 61 6c 6f 2c 20 50 61 74 61 20 50 61 | Ripalo, Pata Pa|\n-  0080: 74 61 2c 20 4b 6f 20 4b 6f 20 4b 6f 0a 42 6f 6b |ta, Ko Ko Ko.Bok|\n-  0090: 6f 72 6f 20 44 69 70 6f 75 6c 69 74 6f 2c 20 52 |oro Dipoulito, R|\n-  00a0: 6f 6e 64 69 20 52 6f 6e 64 69 20 50 65 70 69 6e |ondi Rondi Pepin|\n-  00b0: 6f 2c 20 50 61 74 61 20 50 61 74 61 2c 20 4b 6f |o, Pata Pata, Ko|\n-  00c0: 20 4b 6f 20 4b 6f 0a 45 6d 61 6e 61 20 4b 61 72 | Ko Ko.Emana Kar|\n-  00d0: 61 73 73 6f 6c 69 2c 20 4c 6f 75 63 72 61 20 4c |assoli, Loucra L|\n-  00e0: 6f 75 63 72 61 20 50 6f 6e 70 6f 6e 74 6f 2c 20 |oucra Ponponto, |\n-  00f0: 50 61 74 61 20 50 61 74 61 2c 20 4b 6f 20 4b 6f |Pata Pata, Ko Ko|\n-  0100: 20 4b 6f 2e 00 00 00 00 00 00 00 16 0f 74 65 73 | Ko..........tes|\n-  0110: 74 3a 64 65 62 75 67 72 65 70 6c 79 00 00 00 03 |t:debugreply....|\n-  0120: 00 00 00 00 00 00 00 00 00 2b 09 74 65 73 74 3a |.........+.test:|\n-  0130: 6d 61 74 68 00 00 00 04 02 01 02 04 01 04 07 03 |math............|\n-  0140: 70 69 33 2e 31 34 65 32 2e 37 32 63 6f 6f 6b 69 |pi3.14e2.72cooki|\n-  0150: 6e 67 72 61 77 00 00 00 02 34 32 00 00 00 00 00 |ngraw....42.....|\n-  0160: 00 00 1d 09 74 65 73 74 3a 73 6f 6e 67 00 00 00 |....test:song...|\n-  0170: 05 01 00 0b 00 72 61 6e 64 6f 6d 70 61 72 61 6d |.....randomparam|\n-  0180: 00 00 00 00 00 00 00 10 09 74 65 73 74 3a 70 69 |.........test:pi|\n-  0190: 6e 67 00 00 00 06 00 00 00 00 00 00 00 00 00 00 |ng..............|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n \n   $ hg statbundle2 < ../parts.hg2\n@@ -714,9 +679,50 @@\n       Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko\n       Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko.\n   debugreply: no reply\n-  0 unread bytes\n-  abort: missing support for test:unknown\n-  [255]\n+  ** Unknown exception encountered with possibly-broken third-party extension "bundle2" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "bundle2" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: bundle2\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "$TESTTMP/bundle2.py", line 185, in cmdunbundle2\n+      tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Unbundle with an unknown mandatory part parameters\n (should abort)\n@@ -724,311 +730,87 @@\n   $ hg bundle2 --unknownparams ../unknown.hg2\n \n   $ hg unbundle2 < ../unknown.hg2\n-  0 unread bytes\n-  abort: missing support for test:song - randomparams\n+  50 unread bytes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n unbundle with a reply\n \n   $ hg bundle2 --parts --reply ../parts-reply.hg2\n   $ hg unbundle2 ../reply.hg2 < ../parts-reply.hg2\n-  0 unread bytes\n-  3 total verses sung\n+  504 unread bytes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n The reply is a bundle\n \n   $ f --hexdump ../reply.hg2\n-  ../reply.hg2:\n-  0000: 48 47 32 30 00 00 00 00 00 00 00 1b 06 6f 75 74 |HG20.........out|\n-  0010: 70 75 74 00 00 00 00 00 01 0b 01 69 6e 2d 72 65 |put........in-re|\n-  0020: 70 6c 79 2d 74 6f 33 00 00 00 d9 54 68 65 20 63 |ply-to3....The c|\n-  0030: 68 6f 69 72 20 73 74 61 72 74 73 20 73 69 6e 67 |hoir starts sing|\n-  0040: 69 6e 67 3a 0a 20 20 20 20 50 61 74 61 6c 69 20 |ing:.    Patali |\n-  0050: 44 69 72 61 70 61 74 61 2c 20 43 72 6f 6d 64 61 |Dirapata, Cromda|\n-  0060: 20 43 72 6f 6d 64 61 20 52 69 70 61 6c 6f 2c 20 | Cromda Ripalo, |\n-  0070: 50 61 74 61 20 50 61 74 61 2c 20 4b 6f 20 4b 6f |Pata Pata, Ko Ko|\n-  0080: 20 4b 6f 0a 20 20 20 20 42 6f 6b 6f 72 6f 20 44 | Ko.    Bokoro D|\n-  0090: 69 70 6f 75 6c 69 74 6f 2c 20 52 6f 6e 64 69 20 |ipoulito, Rondi |\n-  00a0: 52 6f 6e 64 69 20 50 65 70 69 6e 6f 2c 20 50 61 |Rondi Pepino, Pa|\n-  00b0: 74 61 20 50 61 74 61 2c 20 4b 6f 20 4b 6f 20 4b |ta Pata, Ko Ko K|\n-  00c0: 6f 0a 20 20 20 20 45 6d 61 6e 61 20 4b 61 72 61 |o.    Emana Kara|\n-  00d0: 73 73 6f 6c 69 2c 20 4c 6f 75 63 72 61 20 4c 6f |ssoli, Loucra Lo|\n-  00e0: 75 63 72 61 20 50 6f 6e 70 6f 6e 74 6f 2c 20 50 |ucra Ponponto, P|\n-  00f0: 61 74 61 20 50 61 74 61 2c 20 4b 6f 20 4b 6f 20 |ata Pata, Ko Ko |\n-  0100: 4b 6f 2e 0a 00 00 00 00 00 00 00 1b 06 6f 75 74 |Ko...........out|\n-  0110: 70 75 74 00 00 00 01 00 01 0b 01 69 6e 2d 72 65 |put........in-re|\n-  0120: 70 6c 79 2d 74 6f 34 00 00 00 c9 64 65 62 75 67 |ply-to4....debug|\n-  0130: 72 65 70 6c 79 3a 20 63 61 70 61 62 69 6c 69 74 |reply: capabilit|\n-  0140: 69 65 73 3a 0a 64 65 62 75 67 72 65 70 6c 79 3a |ies:.debugreply:|\n-  0150: 20 20 20 20 20 27 63 69 74 79 3d 21 27 0a 64 65 |     \'city=!\'.de|\n-  0160: 62 75 67 72 65 70 6c 79 3a 20 20 20 20 20 20 20 |bugreply:       |\n-  0170: 20 20 27 63 65 6c 65 73 74 65 2c 76 69 6c 6c 65 |  \'celeste,ville|\n-  0180: 27 0a 64 65 62 75 67 72 65 70 6c 79 3a 20 20 20 |\'.debugreply:   |\n-  0190: 20 20 27 65 6c 65 70 68 61 6e 74 73 27 0a 64 65 |  \'elephants\'.de|\n-  01a0: 62 75 67 72 65 70 6c 79 3a 20 20 20 20 20 20 20 |bugreply:       |\n-  01b0: 20 20 27 62 61 62 61 72 27 0a 64 65 62 75 67 72 |  \'babar\'.debugr|\n-  01c0: 65 70 6c 79 3a 20 20 20 20 20 20 20 20 20 27 63 |eply:         \'c|\n-  01d0: 65 6c 65 73 74 65 27 0a 64 65 62 75 67 72 65 70 |eleste\'.debugrep|\n-  01e0: 6c 79 3a 20 20 20 20 20 27 70 69 6e 67 2d 70 6f |ly:     \'ping-po|\n-  01f0: 6e 67 27 0a 00 00 00 00 00 00 00 1e 09 74 65 73 |ng\'..........tes|\n-  0200: 74 3a 70 6f 6e 67 00 00 00 02 01 00 0b 01 69 6e |t:pong........in|\n-  0210: 2d 72 65 70 6c 79 2d 74 6f 37 00 00 00 00 00 00 |-reply-to7......|\n-  0220: 00 1b 06 6f 75 74 70 75 74 00 00 00 03 00 01 0b |...output.......|\n-  0230: 01 69 6e 2d 72 65 70 6c 79 2d 74 6f 37 00 00 00 |.in-reply-to7...|\n-  0240: 3d 72 65 63 65 69 76 65 64 20 70 69 6e 67 20 72 |=received ping r|\n-  0250: 65 71 75 65 73 74 20 28 69 64 20 37 29 0a 72 65 |equest (id 7).re|\n-  0260: 70 6c 79 69 6e 67 20 74 6f 20 70 69 6e 67 20 72 |plying to ping r|\n-  0270: 65 71 75 65 73 74 20 28 69 64 20 37 29 0a 00 00 |equest (id 7)...|\n-  0280: 00 00 00 00 00 00                               |......|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n The reply is valid\n \n   $ hg statbundle2 < ../reply.hg2\n-  options count: 0\n-    :output:\n-      mandatory: 0\n-      advisory: 1\n-      payload: 217 bytes\n-    :output:\n-      mandatory: 0\n-      advisory: 1\n-      payload: 201 bytes\n-    :test:pong:\n-      mandatory: 1\n-      advisory: 0\n-      payload: 0 bytes\n-    :output:\n-      mandatory: 0\n-      advisory: 1\n-      payload: 61 bytes\n-  parts count:   4\n+  $TESTTMP.sh: line 315: ../reply.hg2: $ENOENT$\n+  [1]\n \n Unbundle the reply to get the output:\n \n   $ hg unbundle2 < ../reply.hg2\n-  remote: The choir starts singing:\n-  remote:     Patali Dirapata, Cromda Cromda Ripalo, Pata Pata, Ko Ko Ko\n-  remote:     Bokoro Dipoulito, Rondi Rondi Pepino, Pata Pata, Ko Ko Ko\n-  remote:     Emana Karassoli, Loucra Loucra Ponponto, Pata Pata, Ko Ko Ko.\n-  remote: debugreply: capabilities:\n-  remote: debugreply:     \'city=!\'\n-  remote: debugreply:         \'celeste,ville\'\n-  remote: debugreply:     \'elephants\'\n-  remote: debugreply:         \'babar\'\n-  remote: debugreply:         \'celeste\'\n-  remote: debugreply:     \'ping-pong\'\n-  remote: received ping request (id 7)\n-  remote: replying to ping request (id 7)\n-  0 unread bytes\n+  $TESTTMP.sh: line 317: ../reply.hg2: $ENOENT$\n+  [1]\n \n Test push race detection\n \n   $ hg bundle2 --pushrace ../part-race.hg2\n \n   $ hg unbundle2 < ../part-race.hg2\n-  0 unread bytes\n-  abort: push race: remote repository changed while pushing - please try again\n+  62 unread bytes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n Support for changegroup\n ===================================\n \n   $ hg unbundle $TESTDIR/bundles/rebase.hg\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 8 changesets with 7 changes to 7 files (+3 heads)\n-  new changesets cd010b8cd998:02de42196ebe (8 drafts)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg log -G\n-  o  8:02de42196ebe draft Nicolas Dumazet <nicdumz.commits@gmail.com>  H\n-  |\n-  | o  7:eea13746799a draft Nicolas Dumazet <nicdumz.commits@gmail.com>  G\n-  |/|\n-  o |  6:24b6387c8c8c draft Nicolas Dumazet <nicdumz.commits@gmail.com>  F\n-  | |\n-  | o  5:9520eea781bc draft Nicolas Dumazet <nicdumz.commits@gmail.com>  E\n-  |/\n-  | o  4:32af7686d403 draft Nicolas Dumazet <nicdumz.commits@gmail.com>  D\n-  | |\n-  | o  3:5fddd98957c8 draft Nicolas Dumazet <nicdumz.commits@gmail.com>  C\n-  | |\n-  | o  2:42ccdea3bb16 draft Nicolas Dumazet <nicdumz.commits@gmail.com>  B\n-  |/\n-  o  1:cd010b8cd998 draft Nicolas Dumazet <nicdumz.commits@gmail.com>  A\n-  \n   @  0:3903775176ed draft test  a\n   \n \n   $ hg bundle2 --debug --config progress.debug=true --config devel.bundle2.debug=true --rev \'8+7+5+4\' ../rev.hg2\n-  4 changesets found\n-  list of changesets:\n-  32af7686d403cf45b5d95f2d70cebea587ac806a\n-  9520eea781bcca16c1e15acc0ba14335a0e8e5ba\n-  eea13746799a9e0bfd88f29d3c2e9dc9389f524f\n-  02de42196ebee42ef284b6780a87cdc96e8eaab6\n-  bundle2-output-bundle: "HG20", 1 parts total\n-  bundle2-output: start emission of HG20 stream\n-  bundle2-output: bundle parameter: \n-  bundle2-output: start of parts\n-  bundle2-output: bundle part: "changegroup"\n-  bundle2-output-part: "changegroup" (advisory) streamed payload\n-  bundle2-output: part 0: "changegroup"\n-  bundle2-output: header chunk size: 18\n-  changesets: 1/4 chunks (25.00%)\n-  changesets: 2/4 chunks (50.00%)\n-  changesets: 3/4 chunks (75.00%)\n-  changesets: 4/4 chunks (100.00%)\n-  manifests: 1/4 chunks (25.00%)\n-  manifests: 2/4 chunks (50.00%)\n-  manifests: 3/4 chunks (75.00%)\n-  manifests: 4/4 chunks (100.00%)\n-  files: D 1/3 files (33.33%)\n-  files: E 2/3 files (66.67%)\n-  files: H 3/3 files (100.00%)\n-  bundle2-output: payload chunk size: 1555\n-  bundle2-output: closing payload chunk\n-  bundle2-output: end of bundle\n+  abort: unknown revision \'8\'\n+  [255]\n \n   $ f --hexdump ../rev.hg2\n-  ../rev.hg2:\n-  0000: 48 47 32 30 00 00 00 00 00 00 00 12 0b 63 68 61 |HG20.........cha|\n-  0010: 6e 67 65 67 72 6f 75 70 00 00 00 00 00 00 00 00 |ngegroup........|\n-  0020: 06 13 00 00 00 a4 32 af 76 86 d4 03 cf 45 b5 d9 |......2.v....E..|\n-  0030: 5f 2d 70 ce be a5 87 ac 80 6a 5f dd d9 89 57 c8 |_-p......j_...W.|\n-  0040: a5 4a 4d 43 6d fe 1d a9 d8 7f 21 a1 b9 7b 00 00 |.JMCm.....!..{..|\n-  0050: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|\n-  0060: 00 00 32 af 76 86 d4 03 cf 45 b5 d9 5f 2d 70 ce |..2.v....E.._-p.|\n-  0070: be a5 87 ac 80 6a 00 00 00 00 00 00 00 29 00 00 |.....j.......)..|\n-  0080: 00 29 36 65 31 66 34 63 34 37 65 63 62 35 33 33 |.)6e1f4c47ecb533|\n-  0090: 66 66 64 30 63 38 65 35 32 63 64 63 38 38 61 66 |ffd0c8e52cdc88af|\n-  00a0: 62 36 63 64 33 39 65 32 30 63 0a 00 00 00 66 00 |b6cd39e20c....f.|\n-  00b0: 00 00 68 00 00 00 02 44 0a 00 00 00 69 00 00 00 |..h....D....i...|\n-  00c0: 6a 00 00 00 01 44 00 00 00 a4 95 20 ee a7 81 bc |j....D..... ....|\n-  00d0: ca 16 c1 e1 5a cc 0b a1 43 35 a0 e8 e5 ba cd 01 |....Z...C5......|\n-  00e0: 0b 8c d9 98 f3 98 1a 5a 81 15 f9 4f 8d a4 ab 50 |.......Z...O...P|\n-  00f0: 60 89 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |`...............|\n-  0100: 00 00 00 00 00 00 95 20 ee a7 81 bc ca 16 c1 e1 |....... ........|\n-  0110: 5a cc 0b a1 43 35 a0 e8 e5 ba 00 00 00 00 00 00 |Z...C5..........|\n-  0120: 00 29 00 00 00 29 34 64 65 63 65 39 63 38 32 36 |.)...)4dece9c826|\n-  0130: 66 36 39 34 39 30 35 30 37 62 39 38 63 36 33 38 |f69490507b98c638|\n-  0140: 33 61 33 30 30 39 62 32 39 35 38 33 37 64 0a 00 |3a3009b295837d..|\n-  0150: 00 00 66 00 00 00 68 00 00 00 02 45 0a 00 00 00 |..f...h....E....|\n-  0160: 69 00 00 00 6a 00 00 00 01 45 00 00 00 a2 ee a1 |i...j....E......|\n-  0170: 37 46 79 9a 9e 0b fd 88 f2 9d 3c 2e 9d c9 38 9f |7Fy.......<...8.|\n-  0180: 52 4f 24 b6 38 7c 8c 8c ae 37 17 88 80 f3 fa 95 |RO$.8|...7......|\n-  0190: de d3 cb 1c f7 85 95 20 ee a7 81 bc ca 16 c1 e1 |....... ........|\n-  01a0: 5a cc 0b a1 43 35 a0 e8 e5 ba ee a1 37 46 79 9a |Z...C5......7Fy.|\n-  01b0: 9e 0b fd 88 f2 9d 3c 2e 9d c9 38 9f 52 4f 00 00 |......<...8.RO..|\n-  01c0: 00 00 00 00 00 29 00 00 00 29 33 36 35 62 39 33 |.....)...)365b93|\n-  01d0: 64 35 37 66 64 66 34 38 31 34 65 32 62 35 39 31 |d57fdf4814e2b591|\n-  01e0: 31 64 36 62 61 63 66 66 32 62 31 32 30 31 34 34 |1d6bacff2b120144|\n-  01f0: 34 31 0a 00 00 00 66 00 00 00 68 00 00 00 00 00 |41....f...h.....|\n-  0200: 00 00 69 00 00 00 6a 00 00 00 01 47 00 00 00 a4 |..i...j....G....|\n-  0210: 02 de 42 19 6e be e4 2e f2 84 b6 78 0a 87 cd c9 |..B.n......x....|\n-  0220: 6e 8e aa b6 24 b6 38 7c 8c 8c ae 37 17 88 80 f3 |n...$.8|...7....|\n-  0230: fa 95 de d3 cb 1c f7 85 00 00 00 00 00 00 00 00 |................|\n-  0240: 00 00 00 00 00 00 00 00 00 00 00 00 02 de 42 19 |..............B.|\n-  0250: 6e be e4 2e f2 84 b6 78 0a 87 cd c9 6e 8e aa b6 |n......x....n...|\n-  0260: 00 00 00 00 00 00 00 29 00 00 00 29 38 62 65 65 |.......)...)8bee|\n-  0270: 34 38 65 64 63 37 33 31 38 35 34 31 66 63 30 30 |48edc7318541fc00|\n-  0280: 31 33 65 65 34 31 62 30 38 39 32 37 36 61 38 63 |13ee41b089276a8c|\n-  0290: 32 34 62 66 0a 00 00 00 66 00 00 00 66 00 00 00 |24bf....f...f...|\n-  02a0: 02 48 0a 00 00 00 67 00 00 00 68 00 00 00 01 48 |.H....g...h....H|\n-  02b0: 00 00 00 00 00 00 00 8b 6e 1f 4c 47 ec b5 33 ff |........n.LG..3.|\n-  02c0: d0 c8 e5 2c dc 88 af b6 cd 39 e2 0c 66 a5 a0 18 |...,.....9..f...|\n-  02d0: 17 fd f5 23 9c 27 38 02 b5 b7 61 8d 05 1c 89 e4 |...#.\'8...a.....|\n-  02e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|\n-  02f0: 00 00 00 00 32 af 76 86 d4 03 cf 45 b5 d9 5f 2d |....2.v....E.._-|\n-  0300: 70 ce be a5 87 ac 80 6a 00 00 00 81 00 00 00 81 |p......j........|\n-  0310: 00 00 00 2b 44 00 63 33 66 31 63 61 32 39 32 34 |...+D.c3f1ca2924|\n-  0320: 63 31 36 61 31 39 62 30 36 35 36 61 38 34 39 30 |c16a19b0656a8490|\n-  0330: 30 65 35 30 34 65 35 62 30 61 65 63 32 64 0a 00 |0e504e5b0aec2d..|\n-  0340: 00 00 8b 4d ec e9 c8 26 f6 94 90 50 7b 98 c6 38 |...M...&...P{..8|\n-  0350: 3a 30 09 b2 95 83 7d 00 7d 8c 9d 88 84 13 25 f5 |:0....}.}.....%.|\n-  0360: c6 b0 63 71 b3 5b 4e 8a 2b 1a 83 00 00 00 00 00 |..cq.[N.+.......|\n-  0370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 95 |................|\n-  0380: 20 ee a7 81 bc ca 16 c1 e1 5a cc 0b a1 43 35 a0 | ........Z...C5.|\n-  0390: e8 e5 ba 00 00 00 2b 00 00 00 ac 00 00 00 2b 45 |......+.......+E|\n-  03a0: 00 39 63 36 66 64 30 33 35 30 61 36 63 30 64 30 |.9c6fd0350a6c0d0|\n-  03b0: 63 34 39 64 34 61 39 63 35 30 31 37 63 66 30 37 |c49d4a9c5017cf07|\n-  03c0: 30 34 33 66 35 34 65 35 38 0a 00 00 00 8b 36 5b |043f54e58.....6[|\n-  03d0: 93 d5 7f df 48 14 e2 b5 91 1d 6b ac ff 2b 12 01 |....H.....k..+..|\n-  03e0: 44 41 28 a5 84 c6 5e f1 21 f8 9e b6 6a b7 d0 bc |DA(...^.!...j...|\n-  03f0: 15 3d 80 99 e7 ce 4d ec e9 c8 26 f6 94 90 50 7b |.=....M...&...P{|\n-  0400: 98 c6 38 3a 30 09 b2 95 83 7d ee a1 37 46 79 9a |..8:0....}..7Fy.|\n-  0410: 9e 0b fd 88 f2 9d 3c 2e 9d c9 38 9f 52 4f 00 00 |......<...8.RO..|\n-  0420: 00 56 00 00 00 56 00 00 00 2b 46 00 32 32 62 66 |.V...V...+F.22bf|\n-  0430: 63 66 64 36 32 61 32 31 61 33 32 38 37 65 64 62 |cfd62a21a3287edb|\n-  0440: 64 34 64 36 35 36 32 31 38 64 30 66 35 32 35 65 |d4d656218d0f525e|\n-  0450: 64 37 36 61 0a 00 00 00 97 8b ee 48 ed c7 31 85 |d76a.......H..1.|\n-  0460: 41 fc 00 13 ee 41 b0 89 27 6a 8c 24 bf 28 a5 84 |A....A..\'j.$.(..|\n-  0470: c6 5e f1 21 f8 9e b6 6a b7 d0 bc 15 3d 80 99 e7 |.^.!...j....=...|\n-  0480: ce 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|\n-  0490: 00 00 00 00 00 02 de 42 19 6e be e4 2e f2 84 b6 |.......B.n......|\n-  04a0: 78 0a 87 cd c9 6e 8e aa b6 00 00 00 2b 00 00 00 |x....n......+...|\n-  04b0: 56 00 00 00 00 00 00 00 81 00 00 00 81 00 00 00 |V...............|\n-  04c0: 2b 48 00 38 35 30 30 31 38 39 65 37 34 61 39 65 |+H.8500189e74a9e|\n-  04d0: 30 34 37 35 65 38 32 32 30 39 33 62 63 37 64 62 |0475e822093bc7db|\n-  04e0: 30 64 36 33 31 61 65 62 30 62 34 0a 00 00 00 00 |0d631aeb0b4.....|\n-  04f0: 00 00 00 05 44 00 00 00 62 c3 f1 ca 29 24 c1 6a |....D...b...)$.j|\n-  0500: 19 b0 65 6a 84 90 0e 50 4e 5b 0a ec 2d 00 00 00 |..ej...PN[..-...|\n-  0510: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|\n-  0520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|\n-  0530: 00 00 00 00 00 32 af 76 86 d4 03 cf 45 b5 d9 5f |.....2.v....E.._|\n-  0540: 2d 70 ce be a5 87 ac 80 6a 00 00 00 00 00 00 00 |-p......j.......|\n-  0550: 00 00 00 00 02 44 0a 00 00 00 00 00 00 00 05 45 |.....D.........E|\n-  0560: 00 00 00 62 9c 6f d0 35 0a 6c 0d 0c 49 d4 a9 c5 |...b.o.5.l..I...|\n-  0570: 01 7c f0 70 43 f5 4e 58 00 00 00 00 00 00 00 00 |.|.pC.NX........|\n-  0580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|\n-  0590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|\n-  05a0: 95 20 ee a7 81 bc ca 16 c1 e1 5a cc 0b a1 43 35 |. ........Z...C5|\n-  05b0: a0 e8 e5 ba 00 00 00 00 00 00 00 00 00 00 00 02 |................|\n-  05c0: 45 0a 00 00 00 00 00 00 00 05 48 00 00 00 62 85 |E.........H...b.|\n-  05d0: 00 18 9e 74 a9 e0 47 5e 82 20 93 bc 7d b0 d6 31 |...t..G^. ..}..1|\n-  05e0: ae b0 b4 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|\n-  05f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|\n-  0600: 00 00 00 00 00 00 00 00 00 00 00 02 de 42 19 6e |.............B.n|\n-  0610: be e4 2e f2 84 b6 78 0a 87 cd c9 6e 8e aa b6 00 |......x....n....|\n-  0620: 00 00 00 00 00 00 00 00 00 00 02 48 0a 00 00 00 |...........H....|\n-  0630: 00 00 00 00 00 00 00 00 00 00 00 00 00          |.............|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n   $ hg debugbundle ../rev.hg2\n-  Stream params: {}\n-  changegroup -- {} (mandatory: False)\n-      32af7686d403cf45b5d95f2d70cebea587ac806a\n-      9520eea781bcca16c1e15acc0ba14335a0e8e5ba\n-      eea13746799a9e0bfd88f29d3c2e9dc9389f524f\n-      02de42196ebee42ef284b6780a87cdc96e8eaab6\n+  abort: ../rev.hg2: $ENOENT$\n+  [255]\n   $ hg unbundle ../rev.hg2\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 0 changesets with 0 changes to 3 files\n-  (run \'hg update\' to get a working copy)\n+  abort: ../rev.hg2: $ENOENT$\n+  [255]\n \n with reply\n \n   $ hg bundle2 --rev \'8+7+5+4\' --reply ../rev-rr.hg2\n+  abort: unknown revision \'8\'\n+  [255]\n   $ hg unbundle2 ../rev-reply.hg2 < ../rev-rr.hg2\n-  added 0 changesets with 0 changes to 3 files\n-  0 unread bytes\n-  addchangegroup return: 1\n+  $TESTTMP.sh: line 337: ../rev-rr.hg2: $ENOENT$\n+  [1]\n \n   $ f --hexdump ../rev-reply.hg2\n-  ../rev-reply.hg2:\n-  0000: 48 47 32 30 00 00 00 00 00 00 00 2f 11 72 65 70 |HG20......./.rep|\n-  0010: 6c 79 3a 63 68 61 6e 67 65 67 72 6f 75 70 00 00 |ly:changegroup..|\n-  0020: 00 00 00 02 0b 01 06 01 69 6e 2d 72 65 70 6c 79 |........in-reply|\n-  0030: 2d 74 6f 31 72 65 74 75 72 6e 31 00 00 00 00 00 |-to1return1.....|\n-  0040: 00 00 1b 06 6f 75 74 70 75 74 00 00 00 01 00 01 |....output......|\n-  0050: 0b 01 69 6e 2d 72 65 70 6c 79 2d 74 6f 31 00 00 |..in-reply-to1..|\n-  0060: 00 37 61 64 64 69 6e 67 20 63 68 61 6e 67 65 73 |.7adding changes|\n-  0070: 65 74 73 0a 61 64 64 69 6e 67 20 6d 61 6e 69 66 |ets.adding manif|\n-  0080: 65 73 74 73 0a 61 64 64 69 6e 67 20 66 69 6c 65 |ests.adding file|\n-  0090: 20 63 68 61 6e 67 65 73 0a 00 00 00 00 00 00 00 | changes........|\n-  00a0: 00                                              |.|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n Check handling of exception during generation.\n ----------------------------------------------\n@@ -1040,21 +822,15 @@\n Should still be a valid bundle\n \n   $ f --hexdump ../genfailed.hg2\n-  ../genfailed.hg2:\n-  0000: 48 47 32 30 00 00 00 00 00 00 00 0d 06 6f 75 74 |HG20.........out|\n-  0010: 70 75 74 00 00 00 00 00 00 ff ff ff ff 00 00 00 |put.............|\n-  0020: 48 0b 65 72 72 6f 72 3a 61 62 6f 72 74 00 00 00 |H.error:abort...|\n-  0030: 00 01 00 07 2d 6d 65 73 73 61 67 65 75 6e 65 78 |....-messageunex|\n-  0040: 70 65 63 74 65 64 20 65 72 72 6f 72 3a 20 53 6f |pected error: So|\n-  0050: 6d 65 6f 6e 65 20 73 65 74 20 75 70 20 75 73 20 |meone set up us |\n-  0060: 74 68 65 20 62 6f 6d 62 21 00 00 00 00 00 00 00 |the bomb!.......|\n-  0070: 00                                              |.|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n And its handling on the other size raise a clean exception\n \n   $ cat ../genfailed.hg2 | hg unbundle2\n-  0 unread bytes\n-  abort: unexpected error: Someone set up us the bomb!\n+  113 unread bytes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n Test compression\n@@ -1064,175 +840,45 @@\n ----------------------------------\n \n   $ hg bundle2 --compress GZ --rev \'8+7+5+4\' ../rev.hg2.bz\n+  abort: unknown revision \'8\'\n+  [255]\n   $ f --hexdump ../rev.hg2.bz\n-  ../rev.hg2.bz:\n-  0000: 48 47 32 30 00 00 00 0e 43 6f 6d 70 72 65 73 73 |HG20....Compress|\n-  0010: 69 6f 6e 3d 47 5a 78 9c 95 94 7d 68 95 55 1c c7 |ion=GZx...}h.U..|\n-  0020: 9f 3b 31 e8 ce fa c3 65 be a0 a4 b4 52 b9 29 e7 |.;1....e....R.).|\n-  0030: f5 79 ce 89 fa 63 ed 5e 77 8b 9c c3 3f 2a 1c 68 |.y...c.^w...?*.h|\n-  0040: cf 79 9b dd 6a ae b0 28 74 b8 e5 96 5b bb 86 61 |.y..j..(t...[..a|\n-  0050: a3 15 6e 3a 71 c8 6a e8 a5 da 95 64 28 22 ce 69 |..n:q.j....d(".i|\n-  0060: cd 06 59 34 28 2b 51 2a 58 c3 17 56 2a 9a 9d 67 |..Y4(+Q*X..V*..g|\n-  0070: dc c6 35 9e c4 1d f8 9e 87 f3 9c f3 3b bf 0f bf |..5.........;...|\n-  0080: 97 e3 38 ce f4 42 b9 d6 af ae d2 55 af ae 7b ad |..8..B.....U..{.|\n-  0090: c6 c9 8d bb 8a ec b4 07 ed 7f fd ed d3 53 be 4e |.............S.N|\n-  00a0: f4 0e af 59 52 73 ea 50 d7 96 9e ba d4 9a 1f 87 |...YRs.P........|\n-  00b0: 9b 9f 1d e8 7a 6a 79 e9 cb 7f cf eb fe 7e d3 82 |....zjy......~..|\n-  00c0: ce 2f 36 38 21 23 cc 36 b7 b5 38 90 ab a1 21 92 |./68!#.6..8...!.|\n-  00d0: 78 5a 0a 8a b1 31 0a 48 a6 29 92 4a 32 e6 1b e1 |xZ...1.H.).J2...|\n-  00e0: 4a 85 b9 46 40 46 ed 61 63 b5 d6 aa 20 1e ac 5e |J..F@F.ac... ..^|\n-  00f0: b0 0a ae 8a c4 03 c6 d6 f9 a3 7b eb fb 4e de 7f |..........{..N..|\n-  0100: e4 97 55 5f 15 76 96 d2 5d bf 9d 3f 38 18 29 4c |..U_.v..]..?8.)L|\n-  0110: 0f b7 5d 6e 9b b3 aa 7e c6 d5 15 5b f7 7c 52 f1 |..]n...~...[.|R.|\n-  0120: 7c 73 18 63 98 6d 3e 23 51 5a 6a 2e 19 72 8d cb ||s.c.m>#QZj..r..|\n-  0130: 09 07 14 78 82 33 e9 62 86 7d 0c 00 17 88 53 86 |...x.3.b.}....S.|\n-  0140: 3d 75 0b 63 e2 16 c6 84 9d 76 8f 76 7a cb de fc |=u.c.....v.vz...|\n-  0150: a8 a3 f0 46 d3 a5 f6 c7 96 b6 9f 60 3b 57 ae 28 |...F.......`;W.(|\n-  0160: ce b2 8d e9 f4 3e 6f 66 53 dd e5 6b ad 67 be f9 |.....>ofS..k.g..|\n-  0170: 72 ee 5f 8d 61 3c 61 b6 f9 8c d8 a5 82 63 45 3d |r._.a<a......cE=|\n-  0180: a3 0c 61 90 68 24 28 87 50 b9 c2 97 c6 20 01 11 |..a.h$(.P.... ..|\n-  0190: 80 84 10 98 cf e8 e4 13 96 05 51 2c 38 f3 c4 ec |..........Q,8...|\n-  01a0: ea 43 e7 96 5e 6a c8 be 11 dd 32 78 a2 fa dd 8f |.C..^j....2x....|\n-  01b0: b3 61 84 61 51 0c b3 cd 27 64 42 6b c2 b4 92 1e |.a.aQ...\'dBk....|\n-  01c0: 86 8c 12 68 24 00 10 db 7f 50 00 c6 91 e7 fa 4c |...h$....P.....L|\n-  01d0: 22 22 cc bf 84 81 0a 92 c1 aa 2a c7 1b 49 e6 ee |""........*..I..|\n-  01e0: 6b a9 7e e0 e9 b2 91 5e 7c 73 68 e0 fc 23 3f 34 |k.~....^|sh..#?4|\n-  01f0: ed cf 0e f2 b3 d3 4c d7 ae 59 33 6f 8c 3d b8 63 |......L..Y3o.=.c|\n-  0200: 21 2b e8 3d e0 6f 9d 3a b7 f9 dc 24 2a b2 3e a7 |!+.=.o.:...$*.>.|\n-  0210: 58 dc 91 d8 40 e9 23 8e 88 84 ae 0f b9 00 2e b5 |X...@.#.........|\n-  0220: 74 36 f3 40 53 40 34 15 c0 d7 12 8d e7 bb 65 f9 |t6.@S@4.......e.|\n-  0230: c8 ef 03 0f ff f9 fe b6 8a 0d 6d fd ec 51 70 f7 |..........m..Qp.|\n-  0240: a7 ad 9b 6b 9d da 74 7b 53 43 d1 43 63 fd 19 f9 |...k..t{SC.Cc...|\n-  0250: ca 67 95 e5 ef c4 e6 6c 9e 44 e1 c5 ac 7a 82 6f |.g.....l.D...z.o|\n-  0260: c2 e1 d2 b5 2d 81 29 f0 5d 09 6c 6f 10 ae 88 cf |....-.).].lo....|\n-  0270: 25 05 d0 93 06 78 80 60 43 2d 10 1b 47 71 2b b7 |%....x.`C-..Gq+.|\n-  0280: 7f bb e9 a7 e4 7d 67 7b df 9b f7 62 cf cd d8 f4 |.....}g{...b....|\n-  0290: 48 bc 64 51 57 43 ff ea 8b 0b ae 74 64 53 07 86 |H.dQWC.....tdS..|\n-  02a0: fa 66 3c 5e f7 e1 af a7 c2 90 ff a7 be 9e c9 29 |.f<^...........)|\n-  02b0: b6 cc 41 48 18 69 94 8b 7c 04 7d 8c 98 a7 95 50 |..AH.i..|.}....P|\n-  02c0: 44 d9 d0 20 c8 14 30 14 51 ad 6c 16 03 94 0f 5a |D.. ..0.Q.l....Z|\n-  02d0: 46 93 7f 1c 87 8d 25 d7 9d a2 d1 92 4c f3 c2 54 |F.....%.....L..T|\n-  02e0: ba f8 70 18 ca 24 0a 29 96 43 71 f2 93 95 74 18 |..p..$.).Cq...t.|\n-  02f0: b5 65 c4 b8 f6 6c 5c 34 20 1e d5 0c 21 c0 b1 90 |.e...l\\4 ...!...|\n-  0300: 9e 12 40 b9 18 fa 5a 00 41 a2 39 d3 a9 c1 73 21 |..@...Z.A.9...s!|\n-  0310: 8e 5e 3c b9 b8 f8 48 6a 76 46 a7 1a b6 dd 5b 51 |.^<...HjvF....[Q|\n-  0320: 5e 19 1d 59 12 c6 32 89 02 9a c0 8f 4f b8 0a ba |^..Y..2.....O...|\n-  0330: 5e ec 58 37 44 a3 2f dd 33 ed c9 d3 dd c7 22 1b |^.X7D./.3.....".|\n-  0340: 2f d4 94 8e 95 3f 77 a7 ae 6e f3 32 8d bb 4a 4c |/....?w..n.2..JL|\n-  0350: b8 0a 5a 43 34 3a b3 3a d6 77 ff 5c b6 fa ad f9 |..ZC4:.:.w.\\....|\n-  0360: db fb 6a 33 df c1 7d 99 cf ef d4 d5 6d da 77 7c |..j3..}.....m.w||\n-  0370: 3b 19 fd af c5 3f f1 60 c3 17                   |;....?.`..|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ hg debugbundle ../rev.hg2.bz\n-  Stream params: {Compression: GZ}\n-  changegroup -- {} (mandatory: False)\n-      32af7686d403cf45b5d95f2d70cebea587ac806a\n-      9520eea781bcca16c1e15acc0ba14335a0e8e5ba\n-      eea13746799a9e0bfd88f29d3c2e9dc9389f524f\n-      02de42196ebee42ef284b6780a87cdc96e8eaab6\n+  abort: ../rev.hg2.bz: $ENOENT$\n+  [255]\n   $ hg unbundle ../rev.hg2.bz\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 0 changesets with 0 changes to 3 files\n-  (run \'hg update\' to get a working copy)\n+  abort: ../rev.hg2.bz: $ENOENT$\n+  [255]\n Simple case where it just work: BZ\n ----------------------------------\n \n   $ hg bundle2 --compress BZ --rev \'8+7+5+4\' ../rev.hg2.bz\n+  abort: unknown revision \'8\'\n+  [255]\n   $ f --hexdump ../rev.hg2.bz\n-  ../rev.hg2.bz:\n-  0000: 48 47 32 30 00 00 00 0e 43 6f 6d 70 72 65 73 73 |HG20....Compress|\n-  0010: 69 6f 6e 3d 42 5a 42 5a 68 39 31 41 59 26 53 59 |ion=BZBZh91AY&SY|\n-  0020: a3 4b 18 3d 00 00 1a 7f ff ff bf 5f f6 ef ef 7f |.K.=......._....|\n-  0030: f6 3f f7 d1 d9 ff ff f7 6e ff ff 6e f7 f6 bd df |.?......n..n....|\n-  0040: b5 ab ff cf 67 f6 e7 7b f7 c0 02 d7 33 82 8b 51 |....g..{....3..Q|\n-  0050: 04 a5 53 d5 3d 27 a0 99 18 4d 0d 34 00 d1 a1 e8 |..S.=\'...M.4....|\n-  0060: 80 c8 7a 87 a9 a3 43 6a 3d 46 86 26 80 34 3d 40 |..z...Cj=F.&.4=@|\n-  0070: c8 c9 b5 34 f4 8f 48 0f 51 ea 34 34 fd 4d aa 19 |...4..H.Q.44.M..|\n-  0080: 03 40 0c 08 da 86 43 d4 f5 0f 42 1e a0 f3 54 33 |.@....C...B...T3|\n-  0090: 54 d3 13 4d 03 40 32 00 00 32 03 26 80 0d 00 0d |T..M.@2..2.&....|\n-  00a0: 00 68 c8 c8 03 20 32 30 98 8c 80 00 00 03 4d 00 |.h... 20......M.|\n-  00b0: c8 00 00 0d 00 00 22 99 a1 34 c2 64 a6 d5 34 1a |......"..4.d..4.|\n-  00c0: 00 00 06 86 83 4d 07 a8 d1 a0 68 01 a0 00 00 00 |.....M....h.....|\n-  00d0: 00 0d 06 80 00 00 00 0d 00 03 40 00 00 04 a4 a1 |..........@.....|\n-  00e0: 4d a9 89 89 b4 9a 32 0c 43 46 86 87 a9 8d 41 9a |M.....2.CF....A.|\n-  00f0: 98 46 9a 0d 31 32 1a 34 0d 0c 8d a2 0c 98 4d 06 |.F..12.4......M.|\n-  0100: 8c 40 c2 60 8d 0d 0c 20 c9 89 fa a0 d0 d3 21 a1 |.@.`... ......!.|\n-  0110: ea 34 d3 68 9e a6 d1 74 05 33 cb 66 96 93 28 64 |.4.h...t.3.f..(d|\n-  0120: 40 91 22 ac 55 9b ea 40 7b 38 94 e2 f8 06 00 cb |@.".U..@{8......|\n-  0130: 28 02 00 4d ab 40 24 10 43 18 cf 64 b4 06 83 0c |(..M.@$.C..d....|\n-  0140: 34 6c b4 a3 d4 0a 0a e4 a8 5c 4e 23 c0 c9 7a 31 |4l.......\\N#..z1|\n-  0150: 97 87 77 7a 64 88 80 8e 60 97 20 93 0f 8e eb c4 |..wzd...`. .....|\n-  0160: 62 a4 44 a3 52 20 b2 99 a9 2e e1 d7 29 4a 54 ac |b.D.R ......)JT.|\n-  0170: 44 7a bb cc 04 3d e0 aa bd 6a 33 5e 9b a2 57 36 |Dz...=...j3^..W6|\n-  0180: fa cb 45 bb 6d 3e c1 d9 d9 f5 83 69 8a d0 e0 e2 |..E.m>.....i....|\n-  0190: e7 ae 90 55 24 da 3f ab 78 c0 4c b4 56 a3 9e a4 |...U$.?.x.L.V...|\n-  01a0: af 9c 65 74 86 ec 6d dc 62 dc 33 ca c8 50 dd 9d |..et..m.b.3..P..|\n-  01b0: 98 8e 9e 59 20 f3 f0 42 91 4a 09 f5 75 8d 3d a5 |...Y ..B.J..u.=.|\n-  01c0: a5 15 cb 8d 10 63 b0 c2 2e b2 81 f7 c1 76 0e 53 |.....c.......v.S|\n-  01d0: 6c 0e 46 73 b5 ae 67 f9 4c 0b 45 6b a8 32 2a 2f |l.Fs..g.L.Ek.2*/|\n-  01e0: a2 54 a4 44 05 20 a1 38 d1 a4 c6 09 a8 2b 08 99 |.T.D. .8.....+..|\n-  01f0: a4 14 ae 8d a3 e3 aa 34 27 d8 44 ca c3 5d 21 8b |.......4\'.D..]!.|\n-  0200: 1a 1e 97 29 71 2b 09 4a 4a 55 55 94 58 65 b2 bc |...)q+.JJUU.Xe..|\n-  0210: f3 a5 90 26 36 76 67 7a 51 98 d6 8a 4a 99 50 b5 |...&6vgzQ...J.P.|\n-  0220: 99 8f 94 21 17 a9 8b f3 ad 4c 33 d4 2e 40 c8 0c |...!.....L3..@..|\n-  0230: 3b 90 53 39 db 48 02 34 83 48 d6 b3 99 13 d2 58 |;.S9.H.4.H.....X|\n-  0240: 65 8e 71 ac a9 06 95 f2 c4 8e b4 08 6b d3 0c ae |e.q.........k...|\n-  0250: d9 90 56 71 43 a7 a2 62 16 3e 50 63 d3 57 3c 2d |..VqC..b.>Pc.W<-|\n-  0260: 9f 0f 34 05 08 d8 a6 4b 59 31 54 66 3a 45 0c 8a |..4....KY1Tf:E..|\n-  0270: c7 90 3a f0 6a 83 1b f5 ca fb 80 2b 50 06 fb 51 |..:.j......+P..Q|\n-  0280: 7e a6 a4 d4 81 44 82 21 54 00 5b 1a 30 83 62 a3 |~....D.!T.[.0.b.|\n-  0290: 18 b6 24 19 1e 45 df 4d 5c db a6 af 5b ac 90 fa |..$..E.M\\...[...|\n-  02a0: 3e ed f9 ec 4c ba 36 ee d8 60 20 a7 c7 3b cb d1 |>...L.6..` ..;..|\n-  02b0: 90 43 7d 27 16 50 5d ad f4 14 07 0b 90 5c cc 6b |.C}\'.P]......\\.k|\n-  02c0: 8d 3f a6 88 f4 34 37 a8 cf 14 63 36 19 f7 3e 28 |.?...47...c6..>(|\n-  02d0: de 99 e8 16 a4 9d 0d 40 a1 a7 24 52 14 a6 72 62 |.......@..$R..rb|\n-  02e0: 59 5a ca 2d e5 51 90 78 88 d9 c6 c7 21 d0 f7 46 |YZ.-.Q.x....!..F|\n-  02f0: b2 04 46 44 4e 20 9c 12 b1 03 4e 25 e0 a9 0c 58 |..FDN ....N%...X|\n-  0300: 5b 1d 3c 93 20 01 51 de a9 1c 69 23 32 46 14 b4 |[.<. .Q...i#2F..|\n-  0310: 90 db 17 98 98 50 03 90 29 aa 40 b0 13 d8 43 d2 |.....P..).@...C.|\n-  0320: 5f c5 9d eb f3 f2 ad 41 e8 7a a9 ed a1 58 84 a6 |_......A.z...X..|\n-  0330: 42 bf d6 fc 24 82 c1 20 32 26 4a 15 a6 1d 29 7f |B...$.. 2&J...).|\n-  0340: 7e f4 3d 07 bc 62 9a 5b ec 44 3d 72 1d 41 8b 5c |~.=..b.[.D=r.A.\\|\n-  0350: 80 de 0e 62 9a 2e f8 83 00 d5 07 a0 9c c6 74 98 |...b..........t.|\n-  0360: 11 b2 5e a9 38 02 03 ee fd 86 5c f4 86 b3 ae da |..^.8.....\\.....|\n-  0370: 05 94 01 c5 c6 ea 18 e6 ba 2a ba b3 04 5c 96 89 |.........*...\\..|\n-  0380: 72 63 5b 10 11 f6 67 34 98 cb e4 c0 4e fa e6 99 |rc[...g4....N...|\n-  0390: 19 6e 50 e8 26 8d 0c 17 e0 be ef e1 8e 02 6f 32 |.nP.&.........o2|\n-  03a0: 82 dc 26 f8 a1 08 f3 8a 0d f3 c4 75 00 48 73 b8 |..&........u.Hs.|\n-  03b0: be 3b 0d 7f d0 fd c7 78 96 ec e0 03 80 68 4d 8d |.;.....x.....hM.|\n-  03c0: 43 8c d7 68 58 f9 50 f0 18 cb 21 58 1b 60 cd 1f |C..hX.P...!X.`..|\n-  03d0: 84 36 2e 16 1f 0a f7 4e 8f eb df 01 2d c2 79 0b |.6.....N....-.y.|\n-  03e0: f7 24 ea 0d e8 59 86 51 6e 1c 30 a3 ad 2f ee 8c |.$...Y.Qn.0../..|\n-  03f0: 90 c8 84 d5 e8 34 c1 95 b2 c9 f6 4d 87 1c 7d 19 |.....4.....M..}.|\n-  0400: d6 41 58 56 7a e0 6c ba 10 c7 e8 33 39 36 96 e7 |.AXVz.l....396..|\n-  0410: d2 f9 59 9a 08 95 48 38 e7 0b b7 0a 24 67 c4 39 |..Y...H8....$g.9|\n-  0420: 8b 43 88 57 9c 01 f5 61 b5 e1 27 41 7e af 83 fe |.C.W...a..\'A~...|\n-  0430: 2e e4 8a 70 a1 21 46 96 30 7a                   |...p.!F.0z|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ hg debugbundle ../rev.hg2.bz\n-  Stream params: {Compression: BZ}\n-  changegroup -- {} (mandatory: False)\n-      32af7686d403cf45b5d95f2d70cebea587ac806a\n-      9520eea781bcca16c1e15acc0ba14335a0e8e5ba\n-      eea13746799a9e0bfd88f29d3c2e9dc9389f524f\n-      02de42196ebee42ef284b6780a87cdc96e8eaab6\n+  abort: ../rev.hg2.bz: $ENOENT$\n+  [255]\n   $ hg unbundle ../rev.hg2.bz\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 0 changesets with 0 changes to 3 files\n-  (run \'hg update\' to get a working copy)\n+  abort: ../rev.hg2.bz: $ENOENT$\n+  [255]\n \n unknown compression while unbundling\n -----------------------------\n \n   $ hg bundle2 --param Compression=FooBarUnknown --rev \'8+7+5+4\' ../rev.hg2.bz\n+  abort: unknown revision \'8\'\n+  [255]\n   $ cat ../rev.hg2.bz | hg statbundle2\n-  abort: unknown parameters: Stream Parameter - Compression=\'FooBarUnknown\'\n+  cat: ../rev.hg2.bz: $ENOENT$\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n   [255]\n   $ hg unbundle ../rev.hg2.bz\n-  abort: ../rev.hg2.bz: unknown bundle feature, Stream Parameter - Compression=\'FooBarUnknown\'\n-  (see https://mercurial-scm.org/wiki/BundleFeature for more information)\n+  abort: ../rev.hg2.bz: $ENOENT$\n   [255]\n \n   $ cd ..\n', 6849, 6851, 'truncated \\uXXXX escape') decoding diff, sorry

test-bundle2-multiple-changegroups.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-bundle2-multiple-changegroups.t\n+++ c:/hgdev/src/tests/test-bundle2-multiple-changegroups.t.err\n@@ -80,85 +80,63 @@\n   adding changesets\n   adding manifests\n   adding file changes\n-  pretxnchangegroup hook: HG_HOOKNAME=pretxnchangegroup\n-  HG_HOOKTYPE=pretxnchangegroup\n-  HG_NODE=27547f69f25460a52fff66ad004e58da7ad3fb56\n-  HG_NODE_LAST=27547f69f25460a52fff66ad004e58da7ad3fb56\n-  HG_PENDING=$TESTTMP/clone\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/repo (glob)\n-  HG_URL=file:$TESTTMP/repo\n-  \n-  remote: changegroup2\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  pretxnchangegroup hook: HG_HOOKNAME=pretxnchangegroup\n-  HG_HOOKTYPE=pretxnchangegroup\n-  HG_NODE=f838bfaca5c7226600ebcfd84f3c3c13a28d3757\n-  HG_NODE_LAST=f838bfaca5c7226600ebcfd84f3c3c13a28d3757\n-  HG_PENDING=$TESTTMP/clone\n-  HG_PHASES_MOVED=1\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/repo (glob)\n-  HG_URL=file:$TESTTMP/repo\n-  \n-  added 2 changesets with 2 changes to 2 files\n-  new changesets 27547f69f254:f838bfaca5c7\n-  changegroup hook: HG_HOOKNAME=changegroup\n-  HG_HOOKTYPE=changegroup\n-  HG_NODE=27547f69f25460a52fff66ad004e58da7ad3fb56\n-  HG_NODE_LAST=27547f69f25460a52fff66ad004e58da7ad3fb56\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/repo (glob)\n-  HG_URL=file:$TESTTMP/repo\n-  \n-  incoming hook: HG_HOOKNAME=incoming\n-  HG_HOOKTYPE=incoming\n-  HG_NODE=27547f69f25460a52fff66ad004e58da7ad3fb56\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/repo (glob)\n-  HG_URL=file:$TESTTMP/repo\n-  \n-  changegroup hook: HG_HOOKNAME=changegroup\n-  HG_HOOKTYPE=changegroup\n-  HG_NODE=f838bfaca5c7226600ebcfd84f3c3c13a28d3757\n-  HG_NODE_LAST=f838bfaca5c7226600ebcfd84f3c3c13a28d3757\n-  HG_PHASES_MOVED=1\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/repo (glob)\n-  HG_URL=file:$TESTTMP/repo\n-  \n-  incoming hook: HG_HOOKNAME=incoming\n-  HG_HOOKTYPE=incoming\n-  HG_NODE=f838bfaca5c7226600ebcfd84f3c3c13a28d3757\n-  HG_PHASES_MOVED=1\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/repo (glob)\n-  HG_URL=file:$TESTTMP/repo\n-  \n-  pullop.cgresult is 1\n-  (run \'hg update\' to get a working copy)\n+  /usr/bin/env: python3: $ENOENT$\n+  ** Unknown exception encountered with possibly-broken third-party extension "bundle2" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "bundle2" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: bundle2\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 5398, in pull\n+      confirm=opts.get(b\'confirm\'),\n+    File "$TESTTMP/bundle2.py", line 24, in _pull\n+      pullop = _orig_pull(repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1634, in pull\n+      _pullobsolete(pullop)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1462, in release\n+      self._tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg update\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ hg log -G\n-  @  2:f838bfaca5c7 public test  C\n-  |\n-  o  1:27547f69f254 public test  B\n-  |\n-  o  0:4a2df7238c3b public test  A\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  $ hg log -G\n+  @  0:4a2df7238c3b public test  A\n   \n Add more changesets with multiple heads to the original repository\n \n@@ -204,125 +182,11 @@\n   pulling from $TESTTMP/repo\n   searching for changes\n   remote: changegroup1\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  pretxnchangegroup hook: HG_HOOKNAME=pretxnchangegroup\n-  HG_HOOKTYPE=pretxnchangegroup\n-  HG_NODE=b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e\n-  HG_NODE_LAST=8a5212ebc8527f9fb821601504794e3eb11a1ed3\n-  HG_PENDING=$TESTTMP/clone\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/repo (glob)\n-  HG_URL=file:$TESTTMP/repo\n-  \n-  remote: changegroup2\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  pretxnchangegroup hook: HG_HOOKNAME=pretxnchangegroup\n-  HG_HOOKTYPE=pretxnchangegroup\n-  HG_NODE=7f219660301fe4c8a116f714df5e769695cc2b46\n-  HG_NODE_LAST=5cd59d311f6508b8e0ed28a266756c859419c9f1\n-  HG_PENDING=$TESTTMP/clone\n-  HG_PHASES_MOVED=1\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/repo (glob)\n-  HG_URL=file:$TESTTMP/repo\n-  \n-  added 5 changesets with 5 changes to 5 files (+2 heads)\n-  new changesets b3325c91a4d9:5cd59d311f65\n-  changegroup hook: HG_HOOKNAME=changegroup\n-  HG_HOOKTYPE=changegroup\n-  HG_NODE=b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e\n-  HG_NODE_LAST=8a5212ebc8527f9fb821601504794e3eb11a1ed3\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/repo (glob)\n-  HG_URL=file:$TESTTMP/repo\n-  \n-  incoming hook: HG_HOOKNAME=incoming\n-  HG_HOOKTYPE=incoming\n-  HG_NODE=b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/repo (glob)\n-  HG_URL=file:$TESTTMP/repo\n-  \n-  incoming hook: HG_HOOKNAME=incoming\n-  HG_HOOKTYPE=incoming\n-  HG_NODE=8a5212ebc8527f9fb821601504794e3eb11a1ed3\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/repo (glob)\n-  HG_URL=file:$TESTTMP/repo\n-  \n-  changegroup hook: HG_HOOKNAME=changegroup\n-  HG_HOOKTYPE=changegroup\n-  HG_NODE=7f219660301fe4c8a116f714df5e769695cc2b46\n-  HG_NODE_LAST=5cd59d311f6508b8e0ed28a266756c859419c9f1\n-  HG_PHASES_MOVED=1\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/repo (glob)\n-  HG_URL=file:$TESTTMP/repo\n-  \n-  incoming hook: HG_HOOKNAME=incoming\n-  HG_HOOKTYPE=incoming\n-  HG_NODE=7f219660301fe4c8a116f714df5e769695cc2b46\n-  HG_PHASES_MOVED=1\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/repo (glob)\n-  HG_URL=file:$TESTTMP/repo\n-  \n-  incoming hook: HG_HOOKNAME=incoming\n-  HG_HOOKTYPE=incoming\n-  HG_NODE=1d14c3ce6ac0582d2809220d33e8cd7a696e0156\n-  HG_PHASES_MOVED=1\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/repo (glob)\n-  HG_URL=file:$TESTTMP/repo\n-  \n-  incoming hook: HG_HOOKNAME=incoming\n-  HG_HOOKTYPE=incoming\n-  HG_NODE=5cd59d311f6508b8e0ed28a266756c859419c9f1\n-  HG_PHASES_MOVED=1\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/repo (glob)\n-  HG_URL=file:$TESTTMP/repo\n-  \n-  pullop.cgresult is 3\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n-  $ hg log -G\n-  o  7:5cd59d311f65 public test  H\n-  |\n-  | o  6:1d14c3ce6ac0 public test  G\n-  | |\n-  | | o  5:7f219660301f public test  F\n-  | | |\n-  | | o  4:8a5212ebc852 public test  E\n-  | |/\n-  o |  3:b3325c91a4d9 public test  D\n-  | |\n-  @ |  2:f838bfaca5c7 public test  C\n-  |/\n-  o  1:27547f69f254 public test  B\n-  |\n-  o  0:4a2df7238c3b public test  A\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg log -G\n+  @  0:4a2df7238c3b public test  A\n   \n Removing a head from the original repository by merging it\n \n@@ -360,98 +224,9 @@\n   pulling from $TESTTMP/repo\n   searching for changes\n   remote: changegroup1\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  pretxnchangegroup hook: HG_HOOKNAME=pretxnchangegroup\n-  HG_HOOKTYPE=pretxnchangegroup\n-  HG_NODE=71bd7b46de72e69a32455bf88d04757d542e6cf4\n-  HG_NODE_LAST=71bd7b46de72e69a32455bf88d04757d542e6cf4\n-  HG_PENDING=$TESTTMP/clone\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/repo (glob)\n-  HG_URL=file:$TESTTMP/repo\n-  \n-  remote: changegroup2\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  pretxnchangegroup hook: HG_HOOKNAME=pretxnchangegroup\n-  HG_HOOKTYPE=pretxnchangegroup\n-  HG_NODE=9d18e5bd9ab09337802595d49f1dad0c98df4d84\n-  HG_NODE_LAST=9d18e5bd9ab09337802595d49f1dad0c98df4d84\n-  HG_PENDING=$TESTTMP/clone\n-  HG_PHASES_MOVED=1\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/repo (glob)\n-  HG_URL=file:$TESTTMP/repo\n-  \n-  added 2 changesets with 1 changes to 1 files (-1 heads)\n-  new changesets 71bd7b46de72:9d18e5bd9ab0\n-  changegroup hook: HG_HOOKNAME=changegroup\n-  HG_HOOKTYPE=changegroup\n-  HG_NODE=71bd7b46de72e69a32455bf88d04757d542e6cf4\n-  HG_NODE_LAST=71bd7b46de72e69a32455bf88d04757d542e6cf4\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/repo (glob)\n-  HG_URL=file:$TESTTMP/repo\n-  \n-  incoming hook: HG_HOOKNAME=incoming\n-  HG_HOOKTYPE=incoming\n-  HG_NODE=71bd7b46de72e69a32455bf88d04757d542e6cf4\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/repo (glob)\n-  HG_URL=file:$TESTTMP/repo\n-  \n-  changegroup hook: HG_HOOKNAME=changegroup\n-  HG_HOOKTYPE=changegroup\n-  HG_NODE=9d18e5bd9ab09337802595d49f1dad0c98df4d84\n-  HG_NODE_LAST=9d18e5bd9ab09337802595d49f1dad0c98df4d84\n-  HG_PHASES_MOVED=1\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/repo (glob)\n-  HG_URL=file:$TESTTMP/repo\n-  \n-  incoming hook: HG_HOOKNAME=incoming\n-  HG_HOOKTYPE=incoming\n-  HG_NODE=9d18e5bd9ab09337802595d49f1dad0c98df4d84\n-  HG_PHASES_MOVED=1\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/repo (glob)\n-  HG_URL=file:$TESTTMP/repo\n-  \n-  pullop.cgresult is -2\n-  (run \'hg update\' to get a working copy)\n-  $ hg log -G\n-  o  9:9d18e5bd9ab0 public test  H\n-  |\n-  o    8:71bd7b46de72 public test  Merge\n-  |\\\n-  | o  7:5cd59d311f65 public test  H\n-  | |\n-  o |  6:1d14c3ce6ac0 public test  G\n-  | |\n-  | | o  5:7f219660301f public test  F\n-  | | |\n-  +---o  4:8a5212ebc852 public test  E\n-  | |\n-  | o  3:b3325c91a4d9 public test  D\n-  | |\n-  | @  2:f838bfaca5c7 public test  C\n-  |/\n-  o  1:27547f69f254 public test  B\n-  |\n-  o  0:4a2df7238c3b public test  A\n-  \n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg log -G\n+  @  0:4a2df7238c3b public test  A\n+  \n', 4415, 4417, 'truncated \\uXXXX escape') decoding diff, sorry

test-bundle2-remote-changegroup.t#sshv1

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-bundle2-remote-changegroup.t\n+++ c:/hgdev/src/tests/test-bundle2-remote-changegroup.t#sshv1.err\n@@ -380,11 +380,56 @@\n   adding changesets\n   adding manifests\n   adding file changes\n-  transaction abort!\n-  rollback completed\n-  abort: bundle at http://localhost:$HGPORT/bundle6.hg is corrupted:\n-  sha1 mismatch: expected 0000000000000000000000000000000000000000, got 2c880cfec23cff7d8f80c2f12958d1563cbdaba6\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 1933, in clone\n+      depth=opts.get(b\'depth\') or None,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\hg.py", line 948, in clone\n+      depth=depth,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1634, in pull\n+      _pullobsolete(pullop)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1462, in release\n+      self._tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Multiple hash digests can be given\n \n@@ -392,15 +437,8 @@\n   > raw-remote-changegroup {\'url\': \'http://localhost:$HGPORT/bundle6.hg\', \'size\': 1663, \'digests\': \'md5 sha1\', \'digest:md5\': \'e22172c2907ef88794b7bea6642c2394\', \'digest:sha1\': \'2c880cfec23cff7d8f80c2f12958d1563cbdaba6\'}\n   > EOF\n   $ hg clone ssh://user@dummy/repo clone\n-  requesting all changes\n-  remote: remote-changegroup\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 8 changesets with 7 changes to 7 files (+2 heads)\n-  new changesets cd010b8cd998:02de42196ebe\n-  updating to branch default\n-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: destination \'clone\' is not empty\n+  [10]\n   $ rm -rf clone\n \n If either of the multiple hash digests mismatches, an error is thrown\n@@ -414,37 +452,69 @@\n   adding changesets\n   adding manifests\n   adding file changes\n-  transaction abort!\n-  rollback completed\n-  abort: bundle at http://localhost:$HGPORT/bundle6.hg is corrupted:\n-  md5 mismatch: expected 00000000000000000000000000000000, got e22172c2907ef88794b7bea6642c2394\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 1933, in clone\n+      depth=opts.get(b\'depth\') or None,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\hg.py", line 948, in clone\n+      depth=depth,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1634, in pull\n+      _pullobsolete(pullop)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1462, in release\n+      self._tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ cat > repo/.hg/bundle2maker << EOF\n   > raw-remote-changegroup {\'url\': \'http://localhost:$HGPORT/bundle6.hg\', \'size\': 1663, \'digests\': \'md5 sha1\', \'digest:md5\': \'e22172c2907ef88794b7bea6642c2394\', \'digest:sha1\': \'0\' * 40}\n   > EOF\n   $ hg clone ssh://user@dummy/repo clone\n-  requesting all changes\n-  remote: remote-changegroup\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  transaction abort!\n-  rollback completed\n-  abort: bundle at http://localhost:$HGPORT/bundle6.hg is corrupted:\n-  sha1 mismatch: expected 0000000000000000000000000000000000000000, got 2c880cfec23cff7d8f80c2f12958d1563cbdaba6\n-  [255]\n+  abort: destination \'clone\' is not empty\n+  [10]\n \n Corruption tests\n \n   $ hg clone orig clone -r 2\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 3 changesets with 3 changes to 3 files\n-  new changesets cd010b8cd998:5fddd98957c8\n-  updating to branch default\n-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: destination \'clone\' is not empty\n+  [10]\n \n   $ cat > repo/.hg/bundle2maker << EOF\n   > remote-changegroup http://localhost:$HGPORT/bundle4.hg bundle4.hg\n@@ -453,30 +523,61 @@\n   > EOF\n   $ hg pull -R clone ssh://user@dummy/repo\n   pulling from ssh://user@dummy/repo\n-  searching for changes\n-  remote: remote-changegroup\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  remote: remote-changegroup\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  transaction abort!\n-  rollback completed\n-  abort: bundle at http://localhost:$HGPORT/bundle5.hg is corrupted:\n-  sha1 mismatch: expected 0000000000000000000000000000000000000000, got f29485d6bfd37db99983cfc95ecb52f8ca396106\n-  [255]\n+  requesting all changes\n+  remote: remote-changegroup\n+  adding changesets\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 5398, in pull\n+      confirm=opts.get(b\'confirm\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1634, in pull\n+      _pullobsolete(pullop)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1462, in release\n+      self._tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n The entire transaction has been rolled back in the pull above\n \n   $ hg -R clone log -G\n-  @  2:5fddd98957c8 public Nicolas Dumazet <nicdumz.commits@gmail.com>  C\n-  |\n-  o  1:42ccdea3bb16 public Nicolas Dumazet <nicdumz.commits@gmail.com>  B\n-  |\n-  o  0:cd010b8cd998 public Nicolas Dumazet <nicdumz.commits@gmail.com>  A\n-  \n \n No params\n \n@@ -485,7 +586,7 @@\n   > EOF\n   $ hg pull -R clone ssh://user@dummy/repo\n   pulling from ssh://user@dummy/repo\n-  searching for changes\n+  requesting all changes\n   remote: remote-changegroup\n   abort: remote-changegroup: missing "url" param\n   [255]\n@@ -497,7 +598,7 @@\n   > EOF\n   $ hg pull -R clone ssh://user@dummy/repo\n   pulling from ssh://user@dummy/repo\n-  searching for changes\n+  requesting all changes\n   remote: remote-changegroup\n   abort: remote-changegroup: missing "size" param\n   [255]\n@@ -509,7 +610,7 @@\n   > EOF\n   $ hg pull -R clone ssh://user@dummy/repo\n   pulling from ssh://user@dummy/repo\n-  searching for changes\n+  requesting all changes\n   remote: remote-changegroup\n   abort: remote-changegroup: invalid value for param "size"\n   [255]\n@@ -521,15 +622,10 @@\n   > EOF\n   $ hg pull -R clone ssh://user@dummy/repo\n   pulling from ssh://user@dummy/repo\n-  searching for changes\n-  remote: remote-changegroup\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  transaction abort!\n-  rollback completed\n-  abort: bundle at http://localhost:$HGPORT/bundle4.hg is corrupted:\n-  size mismatch: expected 42, got 581\n+  requesting all changes\n+  remote: remote-changegroup\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n Unknown digest\n@@ -539,7 +635,7 @@\n   > EOF\n   $ hg pull -R clone ssh://user@dummy/repo\n   pulling from ssh://user@dummy/repo\n-  searching for changes\n+  requesting all changes\n   remote: remote-changegroup\n   abort: missing support for remote-changegroup - digest:foo\n   [255]\n@@ -551,7 +647,7 @@\n   > EOF\n   $ hg pull -R clone ssh://user@dummy/repo\n   pulling from ssh://user@dummy/repo\n-  searching for changes\n+  requesting all changes\n   remote: remote-changegroup\n   abort: remote-changegroup: missing "digest:sha1" param\n   [255]\n@@ -563,7 +659,7 @@\n   > EOF\n   $ hg pull -R clone ssh://user@dummy/repo\n   pulling from ssh://user@dummy/repo\n-  searching for changes\n+  requesting all changes\n   remote: remote-changegroup\n   abort: remote-changegroup does not support ssh urls\n   [255]\n@@ -578,9 +674,10 @@\n   > EOF\n   $ hg pull -R clone ssh://user@dummy/repo\n   pulling from ssh://user@dummy/repo\n-  searching for changes\n-  remote: remote-changegroup\n-  abort: http://localhost:$HGPORT/notbundle.hg: not a Mercurial bundle\n+  requesting all changes\n+  remote: remote-changegroup\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n Not a bundle 1.0\n@@ -593,18 +690,15 @@\n   > EOF\n   $ hg pull -R clone ssh://user@dummy/repo\n   pulling from ssh://user@dummy/repo\n-  searching for changes\n-  remote: remote-changegroup\n-  abort: http://localhost:$HGPORT/notbundle10.hg: not a bundle version 1.0\n+  requesting all changes\n+  remote: remote-changegroup\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n   $ hg -R clone log -G\n-  @  2:5fddd98957c8 public Nicolas Dumazet <nicdumz.commits@gmail.com>  C\n-  |\n-  o  1:42ccdea3bb16 public Nicolas Dumazet <nicdumz.commits@gmail.com>  B\n-  |\n-  o  0:cd010b8cd998 public Nicolas Dumazet <nicdumz.commits@gmail.com>  A\n-  \n   $ rm -rf clone\n \n   $ killdaemons.py\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n', 2344, 2346, 'truncated \\uXXXX escape') decoding diff, sorry

test-bundle2-remote-changegroup.t#sshv2

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-bundle2-remote-changegroup.t\n+++ c:/hgdev/src/tests/test-bundle2-remote-changegroup.t#sshv2.err\n@@ -380,11 +380,56 @@\n   adding changesets\n   adding manifests\n   adding file changes\n-  transaction abort!\n-  rollback completed\n-  abort: bundle at http://localhost:$HGPORT/bundle6.hg is corrupted:\n-  sha1 mismatch: expected 0000000000000000000000000000000000000000, got 2c880cfec23cff7d8f80c2f12958d1563cbdaba6\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 1933, in clone\n+      depth=opts.get(b\'depth\') or None,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\hg.py", line 948, in clone\n+      depth=depth,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1634, in pull\n+      _pullobsolete(pullop)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1462, in release\n+      self._tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Multiple hash digests can be given\n \n@@ -392,15 +437,8 @@\n   > raw-remote-changegroup {\'url\': \'http://localhost:$HGPORT/bundle6.hg\', \'size\': 1663, \'digests\': \'md5 sha1\', \'digest:md5\': \'e22172c2907ef88794b7bea6642c2394\', \'digest:sha1\': \'2c880cfec23cff7d8f80c2f12958d1563cbdaba6\'}\n   > EOF\n   $ hg clone ssh://user@dummy/repo clone\n-  requesting all changes\n-  remote: remote-changegroup\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 8 changesets with 7 changes to 7 files (+2 heads)\n-  new changesets cd010b8cd998:02de42196ebe\n-  updating to branch default\n-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: destination \'clone\' is not empty\n+  [10]\n   $ rm -rf clone\n \n If either of the multiple hash digests mismatches, an error is thrown\n@@ -414,37 +452,69 @@\n   adding changesets\n   adding manifests\n   adding file changes\n-  transaction abort!\n-  rollback completed\n-  abort: bundle at http://localhost:$HGPORT/bundle6.hg is corrupted:\n-  md5 mismatch: expected 00000000000000000000000000000000, got e22172c2907ef88794b7bea6642c2394\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 1933, in clone\n+      depth=opts.get(b\'depth\') or None,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\hg.py", line 948, in clone\n+      depth=depth,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1634, in pull\n+      _pullobsolete(pullop)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1462, in release\n+      self._tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ cat > repo/.hg/bundle2maker << EOF\n   > raw-remote-changegroup {\'url\': \'http://localhost:$HGPORT/bundle6.hg\', \'size\': 1663, \'digests\': \'md5 sha1\', \'digest:md5\': \'e22172c2907ef88794b7bea6642c2394\', \'digest:sha1\': \'0\' * 40}\n   > EOF\n   $ hg clone ssh://user@dummy/repo clone\n-  requesting all changes\n-  remote: remote-changegroup\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  transaction abort!\n-  rollback completed\n-  abort: bundle at http://localhost:$HGPORT/bundle6.hg is corrupted:\n-  sha1 mismatch: expected 0000000000000000000000000000000000000000, got 2c880cfec23cff7d8f80c2f12958d1563cbdaba6\n-  [255]\n+  abort: destination \'clone\' is not empty\n+  [10]\n \n Corruption tests\n \n   $ hg clone orig clone -r 2\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 3 changesets with 3 changes to 3 files\n-  new changesets cd010b8cd998:5fddd98957c8\n-  updating to branch default\n-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: destination \'clone\' is not empty\n+  [10]\n \n   $ cat > repo/.hg/bundle2maker << EOF\n   > remote-changegroup http://localhost:$HGPORT/bundle4.hg bundle4.hg\n@@ -453,30 +523,61 @@\n   > EOF\n   $ hg pull -R clone ssh://user@dummy/repo\n   pulling from ssh://user@dummy/repo\n-  searching for changes\n-  remote: remote-changegroup\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  remote: remote-changegroup\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  transaction abort!\n-  rollback completed\n-  abort: bundle at http://localhost:$HGPORT/bundle5.hg is corrupted:\n-  sha1 mismatch: expected 0000000000000000000000000000000000000000, got f29485d6bfd37db99983cfc95ecb52f8ca396106\n-  [255]\n+  requesting all changes\n+  remote: remote-changegroup\n+  adding changesets\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 5398, in pull\n+      confirm=opts.get(b\'confirm\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1634, in pull\n+      _pullobsolete(pullop)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1462, in release\n+      self._tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n The entire transaction has been rolled back in the pull above\n \n   $ hg -R clone log -G\n-  @  2:5fddd98957c8 public Nicolas Dumazet <nicdumz.commits@gmail.com>  C\n-  |\n-  o  1:42ccdea3bb16 public Nicolas Dumazet <nicdumz.commits@gmail.com>  B\n-  |\n-  o  0:cd010b8cd998 public Nicolas Dumazet <nicdumz.commits@gmail.com>  A\n-  \n \n No params\n \n@@ -485,7 +586,7 @@\n   > EOF\n   $ hg pull -R clone ssh://user@dummy/repo\n   pulling from ssh://user@dummy/repo\n-  searching for changes\n+  requesting all changes\n   remote: remote-changegroup\n   abort: remote-changegroup: missing "url" param\n   [255]\n@@ -497,7 +598,7 @@\n   > EOF\n   $ hg pull -R clone ssh://user@dummy/repo\n   pulling from ssh://user@dummy/repo\n-  searching for changes\n+  requesting all changes\n   remote: remote-changegroup\n   abort: remote-changegroup: missing "size" param\n   [255]\n@@ -509,7 +610,7 @@\n   > EOF\n   $ hg pull -R clone ssh://user@dummy/repo\n   pulling from ssh://user@dummy/repo\n-  searching for changes\n+  requesting all changes\n   remote: remote-changegroup\n   abort: remote-changegroup: invalid value for param "size"\n   [255]\n@@ -521,15 +622,10 @@\n   > EOF\n   $ hg pull -R clone ssh://user@dummy/repo\n   pulling from ssh://user@dummy/repo\n-  searching for changes\n-  remote: remote-changegroup\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  transaction abort!\n-  rollback completed\n-  abort: bundle at http://localhost:$HGPORT/bundle4.hg is corrupted:\n-  size mismatch: expected 42, got 581\n+  requesting all changes\n+  remote: remote-changegroup\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n Unknown digest\n@@ -539,7 +635,7 @@\n   > EOF\n   $ hg pull -R clone ssh://user@dummy/repo\n   pulling from ssh://user@dummy/repo\n-  searching for changes\n+  requesting all changes\n   remote: remote-changegroup\n   abort: missing support for remote-changegroup - digest:foo\n   [255]\n@@ -551,7 +647,7 @@\n   > EOF\n   $ hg pull -R clone ssh://user@dummy/repo\n   pulling from ssh://user@dummy/repo\n-  searching for changes\n+  requesting all changes\n   remote: remote-changegroup\n   abort: remote-changegroup: missing "digest:sha1" param\n   [255]\n@@ -563,7 +659,7 @@\n   > EOF\n   $ hg pull -R clone ssh://user@dummy/repo\n   pulling from ssh://user@dummy/repo\n-  searching for changes\n+  requesting all changes\n   remote: remote-changegroup\n   abort: remote-changegroup does not support ssh urls\n   [255]\n@@ -578,9 +674,10 @@\n   > EOF\n   $ hg pull -R clone ssh://user@dummy/repo\n   pulling from ssh://user@dummy/repo\n-  searching for changes\n-  remote: remote-changegroup\n-  abort: http://localhost:$HGPORT/notbundle.hg: not a Mercurial bundle\n+  requesting all changes\n+  remote: remote-changegroup\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n Not a bundle 1.0\n@@ -593,18 +690,15 @@\n   > EOF\n   $ hg pull -R clone ssh://user@dummy/repo\n   pulling from ssh://user@dummy/repo\n-  searching for changes\n-  remote: remote-changegroup\n-  abort: http://localhost:$HGPORT/notbundle10.hg: not a bundle version 1.0\n+  requesting all changes\n+  remote: remote-changegroup\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n   $ hg -R clone log -G\n-  @  2:5fddd98957c8 public Nicolas Dumazet <nicdumz.commits@gmail.com>  C\n-  |\n-  o  1:42ccdea3bb16 public Nicolas Dumazet <nicdumz.commits@gmail.com>  B\n-  |\n-  o  0:cd010b8cd998 public Nicolas Dumazet <nicdumz.commits@gmail.com>  A\n-  \n   $ rm -rf clone\n \n   $ killdaemons.py\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n', 2344, 2346, 'truncated \\uXXXX escape') decoding diff, sorry

test-clone-pull-corruption.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-clone-pull-corruption.t\n+++ c:/hgdev/src/tests/test-clone-pull-corruption.t.err\n@@ -29,25 +29,81 @@\n   $ sleep 1\n   $ hg pull ../source 2>/dev/null\n   pulling from ../source\n-  transaction abort!\n-  rollback completed\n-  abort: pretxncommit hook exited with status 1\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2127, in _docommit\n+      node = cmdutil.commit(ui, repo, commitfunc, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2754, in commit\n+      return commitfunc(ui, repo, message, matcher, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2124, in commitfunc\n+      extra=extra,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  new changesets 52998019f625\n-  (run \'hg update\' to get a working copy)\n+  [255]\n \n see what happened\n \n   $ wait\n   $ hg verify\n+  abandoned transaction found - run hg recover\n   checking changesets\n   checking manifests\n+   manifest@?: rev 1 points to nonexistent changeset 1\n+   manifest@?: e313fc172615 not in changesets\n   crosschecking files in changesets and manifests\n+   bar@1: in manifest but not in changeset\n   checking files\n-  checked 2 changesets with 2 changes to 1 files\n+   warning: revlog \'data/bar.i\' not in fncache!\n+   bar@?: rev 0 points to nonexistent changeset 1\n+  checked 1 changesets with 2 changes to 2 files\n+  1 warnings encountered!\n+  hint: run "hg debugrebuildfncache" to recover from corrupt fncache\n+  4 integrity errors encountered!\n+  (first damaged changeset appears to be 1)\n+  [1]\n \n   $ cd ..\n', 2192, 2194, 'truncated \\uXXXX escape') decoding diff, sorry

test-clone.t#sshv1

--- c:/hgdev/src/tests/test-clone.t
+++ c:/hgdev/src/tests/test-clone.t#sshv1.err
@@ -102,13 +102,13 @@
 #else
   $ hg --debug clone -U . ../c --config progress.debug=true
   linking: 1 files
-  copying: 2 files
-  copying: 3 files
-  copying: 4 files
-  copying: 5 files
-  copying: 6 files
-  copying: 7 files
-  copying: 8 files
+  linking: 2 files
+  linking: 3 files
+  linking: 4 files
+  linking: 5 files
+  linking: 6 files
+  linking: 7 files
+  linked 7 files
   copied 8 files (reporevlogstore !)
   copying: 9 files (reposimplestore !)
   copying: 10 files (reposimplestore !)
@@ -177,13 +177,23 @@
   added 11 changesets with 11 changes to 2 files
   new changesets acb14030fe0a:a7949464abda
   updating to branch default
-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  abort: unknown compression type 'ë'
+  [255]
   $ hg -R g verify
   checking changesets
   checking manifests
   crosschecking files in changesets and manifests
   checking files
+   b@5: unpacking 323983059000: unknown compression type 'ë'
+   b@6: unpacking a09381309476: revlog decompress error: Error -5 while decompressing data: incomplete or truncated stream
+   b@7: unpacking 1c4daecb8230: unknown compression type 'ë'
+   b@8: unpacking be7c09ebbca3: revlog decompress error: Error -5 while decompressing data: incomplete or truncated stream
+   b@9: unpacking 481b5d8ae047: revlog decompress error: Error -5 while decompressing data: incomplete or truncated stream
+   b@10: unpacking f44cbe5dcf64: unknown compression type 'ë'
   checked 11 changesets with 11 changes to 2 files
+  6 integrity errors encountered!
+  (first damaged changeset appears to be 5)
+  [1]
 
 Invalid dest '' with --pull must abort (issue2528):
 
@@ -299,7 +309,8 @@
   added 16 changesets with 16 changes to 3 files (+1 heads)
   new changesets acb14030fe0a:0aae7cf88f0d
   updating to branch stable
-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  abort: unknown compression type 'ë'
+  [255]
 
 Repo ua has both heads:
 
@@ -322,7 +333,6 @@
   $ hg -R a parents --template "{node|short}
"
   e8ece76546a6
   $ hg -R ua parents --template "{node|short}
"
-  e8ece76546a6
 
   $ rm -r ua
 
@@ -440,7 +450,8 @@
   added 14 changesets with 14 changes to 3 files
   new changesets acb14030fe0a:0aae7cf88f0d
   updating to branch stable
-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  abort: unknown compression type 'ë'
+  [255]
 
 Repo ua has branch 'stable' and 'default' (was changed in fd511e9eeea6):
 
@@ -463,7 +474,6 @@
   $ hg -R a parents --template "{node|short}
"
   e8ece76546a6
   $ hg -R ua parents --template "{node|short}
"
-  e8ece76546a6
 
   $ rm -r ua
 
@@ -477,7 +487,8 @@
   added 14 changesets with 14 changes to 3 files
   new changesets acb14030fe0a:0aae7cf88f0d
   updating to branch stable
-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  abort: unknown compression type 'ë'
+  [255]
 
 Repo ua has branch 'stable' and 'default' (was changed in fd511e9eeea6):
 
@@ -500,7 +511,6 @@
   $ hg -R a parents --template "{node|short}
"
   e8ece76546a6
   $ hg -R ua parents --template "{node|short}
"
-  e8ece76546a6
 
   $ rm -r ua
 
@@ -514,7 +524,8 @@
   added 14 changesets with 14 changes to 3 files
   new changesets acb14030fe0a:0aae7cf88f0d
   updating to branch stable
-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  abort: unknown compression type 'ë'
+  [255]
 
 Repo ua has branch 'stable' and 'default' (was changed in fd511e9eeea6):
 
@@ -535,13 +546,6 @@
 Branch 'stable' is checked out:
 
   $ hg -R ua parents
-  changeset:   13:0aae7cf88f0d
-  branch:      stable
-  tag:         tip
-  user:        test
-  date:        Thu Jan 01 00:00:00 1970 +0000
-  summary:     another change for branch stable
-  
 
   $ rm -r ua
 
@@ -578,7 +582,39 @@
   added 14 changesets with 14 changes to 3 files
   new changesets acb14030fe0a:0aae7cf88f0d
   updating to branch stable
-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  Traceback (most recent call last):
 (esc)
+    File "branchclone.py", line 6, in <module>
 (esc)
+      hg.clone(myui, {}, repo, dest=b"ua", branch=[b"stable"])
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\hg.py", line 1033, in clone
 (esc)
+      _update(destrepo, uprev)
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\hg.py", line 1084, in update
 (esc)
+      stats = mergemod.update(repo[node], updatecheck=updatecheck)
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\merge.py", line 2194, in update
 (esc)
+      wc=wc,
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\merge.py", line 2132, in _update
 (esc)
+      labels=labels,
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\merge.py", line 1571, in applyupdates
 (esc)
+      for final, res in prog:
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\merge.py", line 1403, in batchget
 (esc)
+      fctx(f).data(),
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\context.py", line 1311, in data
 (esc)
+      return self._filelog.read(self._filenode)
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\filelog.py", line 174, in read
 (esc)
+      return storageutil.filtermetadata(self.revision(node))
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\filelog.py", line 93, in revision
 (esc)
+      return self._revlog.revision(node, _df=_df, raw=raw)
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\revlog.py", line 1838, in revision
 (esc)
+      return self._revisiondata(nodeorrev, _df, raw=raw)[0]
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\revlog.py", line 1864, in _revisiondata
 (esc)
+      rev, rawtext, validated = self._rawtext(node, rev, _df=_df)
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\revlog.py", line 1933, in _rawtext
 (esc)
+      bins = self._chunks(chain, df=_df, targetsize=targetsize)
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\revlog.py", line 1755, in _chunks
 (esc)
+      ladd(decomp(buffer(data, chunkstart - offset, chunklength)))
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\revlog.py", line 2230, in decompress
 (esc)
+      raise error.RevlogError(_(b'unknown compression type %r') % t)
 (esc)
+  mercurial.error.RevlogError: unknown compression type '\xeb'
 (esc)
+  [1]
   $ rm -r ua
 
 
@@ -1203,14 +1239,14 @@
   [255]
 #else
   $ hg clone "ssh://%3btouch%20owned%20/" --debug
-  running sh -c "read l; read l; read l" ';touch owned ' 'hg -R . serve --stdio'
+  running sh -c "read l; read l; read l" ";touch owned " "hg -R . serve --stdio"
   sending upgrade request: * proto=exp-ssh-v2-0003 (glob) (sshv2 !)
   sending hello command
   sending between command
   abort: no suitable response from remote hg
   [255]
   $ hg clone "ssh://example.com:%3btouch%20owned%20/" --debug
-  running sh -c "read l; read l; read l" -p ';touch owned ' example.com 'hg -R . serve --stdio'
+  running sh -c "read l; read l; read l" -p ";touch owned " example.com "hg -R . serve --stdio"
   sending upgrade request: * proto=exp-ssh-v2-0003 (glob) (sshv2 !)
   sending hello command
   sending between command

test-clone.t#sshv2

--- c:/hgdev/src/tests/test-clone.t
+++ c:/hgdev/src/tests/test-clone.t#sshv2.err
@@ -102,13 +102,13 @@
 #else
   $ hg --debug clone -U . ../c --config progress.debug=true
   linking: 1 files
-  copying: 2 files
-  copying: 3 files
-  copying: 4 files
-  copying: 5 files
-  copying: 6 files
-  copying: 7 files
-  copying: 8 files
+  linking: 2 files
+  linking: 3 files
+  linking: 4 files
+  linking: 5 files
+  linking: 6 files
+  linking: 7 files
+  linked 7 files
   copied 8 files (reporevlogstore !)
   copying: 9 files (reposimplestore !)
   copying: 10 files (reposimplestore !)
@@ -177,13 +177,23 @@
   added 11 changesets with 11 changes to 2 files
   new changesets acb14030fe0a:a7949464abda
   updating to branch default
-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  abort: unknown compression type 'ë'
+  [255]
   $ hg -R g verify
   checking changesets
   checking manifests
   crosschecking files in changesets and manifests
   checking files
+   b@5: unpacking 323983059000: unknown compression type 'ë'
+   b@6: unpacking a09381309476: revlog decompress error: Error -5 while decompressing data: incomplete or truncated stream
+   b@7: unpacking 1c4daecb8230: unknown compression type 'ë'
+   b@8: unpacking be7c09ebbca3: revlog decompress error: Error -5 while decompressing data: incomplete or truncated stream
+   b@9: unpacking 481b5d8ae047: revlog decompress error: Error -5 while decompressing data: incomplete or truncated stream
+   b@10: unpacking f44cbe5dcf64: unknown compression type 'ë'
   checked 11 changesets with 11 changes to 2 files
+  6 integrity errors encountered!
+  (first damaged changeset appears to be 5)
+  [1]
 
 Invalid dest '' with --pull must abort (issue2528):
 
@@ -299,7 +309,8 @@
   added 16 changesets with 16 changes to 3 files (+1 heads)
   new changesets acb14030fe0a:0aae7cf88f0d
   updating to branch stable
-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  abort: unknown compression type 'ë'
+  [255]
 
 Repo ua has both heads:
 
@@ -322,7 +333,6 @@
   $ hg -R a parents --template "{node|short}
"
   e8ece76546a6
   $ hg -R ua parents --template "{node|short}
"
-  e8ece76546a6
 
   $ rm -r ua
 
@@ -440,7 +450,8 @@
   added 14 changesets with 14 changes to 3 files
   new changesets acb14030fe0a:0aae7cf88f0d
   updating to branch stable
-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  abort: unknown compression type 'ë'
+  [255]
 
 Repo ua has branch 'stable' and 'default' (was changed in fd511e9eeea6):
 
@@ -463,7 +474,6 @@
   $ hg -R a parents --template "{node|short}
"
   e8ece76546a6
   $ hg -R ua parents --template "{node|short}
"
-  e8ece76546a6
 
   $ rm -r ua
 
@@ -477,7 +487,8 @@
   added 14 changesets with 14 changes to 3 files
   new changesets acb14030fe0a:0aae7cf88f0d
   updating to branch stable
-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  abort: unknown compression type 'ë'
+  [255]
 
 Repo ua has branch 'stable' and 'default' (was changed in fd511e9eeea6):
 
@@ -500,7 +511,6 @@
   $ hg -R a parents --template "{node|short}
"
   e8ece76546a6
   $ hg -R ua parents --template "{node|short}
"
-  e8ece76546a6
 
   $ rm -r ua
 
@@ -514,7 +524,8 @@
   added 14 changesets with 14 changes to 3 files
   new changesets acb14030fe0a:0aae7cf88f0d
   updating to branch stable
-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  abort: unknown compression type 'ë'
+  [255]
 
 Repo ua has branch 'stable' and 'default' (was changed in fd511e9eeea6):
 
@@ -535,13 +546,6 @@
 Branch 'stable' is checked out:
 
   $ hg -R ua parents
-  changeset:   13:0aae7cf88f0d
-  branch:      stable
-  tag:         tip
-  user:        test
-  date:        Thu Jan 01 00:00:00 1970 +0000
-  summary:     another change for branch stable
-  
 
   $ rm -r ua
 
@@ -578,7 +582,39 @@
   added 14 changesets with 14 changes to 3 files
   new changesets acb14030fe0a:0aae7cf88f0d
   updating to branch stable
-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  Traceback (most recent call last):
 (esc)
+    File "branchclone.py", line 6, in <module>
 (esc)
+      hg.clone(myui, {}, repo, dest=b"ua", branch=[b"stable"])
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\hg.py", line 1033, in clone
 (esc)
+      _update(destrepo, uprev)
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\hg.py", line 1084, in update
 (esc)
+      stats = mergemod.update(repo[node], updatecheck=updatecheck)
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\merge.py", line 2194, in update
 (esc)
+      wc=wc,
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\merge.py", line 2132, in _update
 (esc)
+      labels=labels,
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\merge.py", line 1571, in applyupdates
 (esc)
+      for final, res in prog:
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\merge.py", line 1403, in batchget
 (esc)
+      fctx(f).data(),
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\context.py", line 1311, in data
 (esc)
+      return self._filelog.read(self._filenode)
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\filelog.py", line 174, in read
 (esc)
+      return storageutil.filtermetadata(self.revision(node))
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\filelog.py", line 93, in revision
 (esc)
+      return self._revlog.revision(node, _df=_df, raw=raw)
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\revlog.py", line 1838, in revision
 (esc)
+      return self._revisiondata(nodeorrev, _df, raw=raw)[0]
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\revlog.py", line 1864, in _revisiondata
 (esc)
+      rev, rawtext, validated = self._rawtext(node, rev, _df=_df)
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\revlog.py", line 1933, in _rawtext
 (esc)
+      bins = self._chunks(chain, df=_df, targetsize=targetsize)
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\revlog.py", line 1755, in _chunks
 (esc)
+      ladd(decomp(buffer(data, chunkstart - offset, chunklength)))
 (esc)
+    File "C:\Temp\hgtests.dstqqw\install\lib\python\mercurial\revlog.py", line 2230, in decompress
 (esc)
+      raise error.RevlogError(_(b'unknown compression type %r') % t)
 (esc)
+  mercurial.error.RevlogError: unknown compression type '\xeb'
 (esc)
+  [1]
   $ rm -r ua
 
 
@@ -1203,14 +1239,14 @@
   [255]
 #else
   $ hg clone "ssh://%3btouch%20owned%20/" --debug
-  running sh -c "read l; read l; read l" ';touch owned ' 'hg -R . serve --stdio'
+  running sh -c "read l; read l; read l" ";touch owned " "hg -R . serve --stdio"
   sending upgrade request: * proto=exp-ssh-v2-0003 (glob) (sshv2 !)
   sending hello command
   sending between command
   abort: no suitable response from remote hg
   [255]
   $ hg clone "ssh://example.com:%3btouch%20owned%20/" --debug
-  running sh -c "read l; read l; read l" -p ';touch owned ' example.com 'hg -R . serve --stdio'
+  running sh -c "read l; read l; read l" -p ";touch owned " example.com "hg -R . serve --stdio"
   sending upgrade request: * proto=exp-ssh-v2-0003 (glob) (sshv2 !)
   sending hello command
   sending between command

test-commandserver.t

--- c:/hgdev/src/tests/test-commandserver.t
+++ c:/hgdev/src/tests/test-commandserver.t.err
@@ -17,6 +17,7 @@
   >>> import os
   >>> import sys
   >>> from hgclient import bprint, check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def hellomessage(server):
   ...     ch, data = readchannel(server)
@@ -24,17 +25,17 @@
   ...     # run an arbitrary command to make sure the next thing the server
   ...     # sends isn't part of the hello message
   ...     runcommand(server, [b'id'])
-  o, 'capabilities: getencoding runcommand
encoding: *
pid: *' (glob)
-  *** runcommand id
-  000000000000 tip
+  NameError("name 'check' is not defined",)
 (esc)
 
   >>> from hgclient import check
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def unknowncommand(server):
   ...     server.stdin.write(b'unknowncommand
')
-  abort: unknown command unknowncommand
-
-  >>> from hgclient import check, readchannel, runcommand
+  NameError("name 'check' is not defined",)
 (esc)
+
+  >>> from hgclient import check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def checkruncommand(server):
   ...     # hello block
@@ -57,43 +58,10 @@
   ... 
   ...     # negative return code should be masked
   ...     runcommand(server, [b'id', b'-runknown'])
-  *** runcommand 
-  Mercurial Distributed SCM
-  
-  basic commands:
-  
-   add           add the specified files on the next commit
-   annotate      show changeset information by line for each file
-   clone         make a copy of an existing repository
-   commit        commit the specified files or all outstanding changes
-   diff          diff repository (or selected files)
-   export        dump the header and diffs for one or more changesets
-   forget        forget the specified files on the next commit
-   init          create a new repository in the given directory
-   log           show revision history of entire repository or files
-   merge         merge another revision into working directory
-   pull          pull changes from the specified source
-   push          push changes to the specified destination
-   remove        remove the specified files on the next commit
-   serve         start stand-alone webserver
-   status        show changed files in the working directory
-   summary       summarize working directory state
-   update        update working directory (or switch revisions)
-  
-  (use 'hg help' for the full list of commands or 'hg -v' for details)
-  *** runcommand id --quiet
-  000000000000
-  *** runcommand id
-  000000000000 tip
-  *** runcommand id --config ui.quiet=True
-  000000000000
-  *** runcommand id
-  000000000000 tip
-  *** runcommand id -runknown
-  abort: unknown revision 'unknown'
-   [255]
+  NameError("name 'check' is not defined",)
 (esc)
 
   >>> from hgclient import bprint, check, readchannel
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def inputeof(server):
   ...     readchannel(server)
@@ -103,9 +71,10 @@
   ... 
   ...     # server exits with 1 if the pipe closed while reading the command
   ...     bprint(b'server exit code =', b'%d' % server.wait())
-  server exit code = 1
+  NameError("name 'check' is not defined",)
 (esc)
 
   >>> from hgclient import check, readchannel, runcommand, stringio
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def serverinput(server):
   ...     readchannel(server)
@@ -127,33 +96,25 @@
   ... 
   ...     runcommand(server, [b'import', b'-'], input=stringio(patch))
   ...     runcommand(server, [b'log'])
-  *** runcommand import -
-  applying patch from stdin
-  *** runcommand log
-  changeset:   0:eff892de26ec
-  tag:         tip
-  user:        test
-  date:        Thu Jan 01 00:00:00 1970 +0000
-  summary:     1
-  
+  NameError("name 'check' is not defined",)
 (esc)
 
 check strict parsing of early options:
 
   >>> import os
   >>> from hgclient import check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> os.environ['HGPLAIN'] = '+strictflags'
   >>> @check
   ... def cwd(server):
   ...     readchannel(server)
   ...     runcommand(server, [b'log', b'-b', b'--config=alias.log=!echo pwned',
   ...                         b'default'])
-  *** runcommand log -b --config=alias.log=!echo pwned default
-  abort: unknown revision '--config=alias.log=!echo pwned'
-   [255]
+  NameError("name 'check' is not defined",)
 (esc)
 
 check that "histedit --commands=-" can read rules from the input channel:
 
   >>> from hgclient import check, readchannel, runcommand, stringio
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def serverinput(server):
   ...     readchannel(server)
@@ -161,22 +122,20 @@
   ...     runcommand(server, [b'histedit', b'0', b'--commands=-',
   ...                         b'--config', b'extensions.histedit='],
   ...                input=stringio(rules))
-  *** runcommand histedit 0 --commands=- --config extensions.histedit=
+  NameError("name 'check' is not defined",)
 (esc)
 
 check that --cwd doesn't persist between requests:
 
   $ mkdir foo
   $ touch foo/bar
   >>> from hgclient import check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def cwd(server):
   ...     readchannel(server)
   ...     runcommand(server, [b'--cwd', b'foo', b'st', b'bar'])
   ...     runcommand(server, [b'st', b'foo/bar'])
-  *** runcommand --cwd foo st bar
-  ? bar
-  *** runcommand st foo/bar
-  ? foo/bar
+  NameError("name 'check' is not defined",)
 (esc)
 
   $ rm foo/bar
 
@@ -248,6 +207,7 @@
   > EOF
 
   >>> from hgclient import check, readchannel, runcommand, stringio
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def hookoutput(server):
   ...     readchannel(server)
@@ -255,10 +215,7 @@
   ...                         b'hooks.pre-identify=python:hook.hook',
   ...                         b'id'],
   ...                input=stringio(b'some input'))
-  *** runcommand --config hooks.pre-identify=python:hook.hook id
-  eff892de26ec tip
-  hook talking
-  now try to read something: ''
+  NameError("name 'check' is not defined",)
 (esc)
 
 Clean hook cached version
   $ rm hook.py*
@@ -267,6 +224,7 @@
   $ echo a >> a
   >>> import os
   >>> from hgclient import check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def outsidechanges(server):
   ...     readchannel(server)
@@ -274,19 +232,11 @@
   ...     os.system('hg ci -Am2')
   ...     runcommand(server, [b'tip'])
   ...     runcommand(server, [b'status'])
-  *** runcommand status
-  M a
-  *** runcommand tip
-  changeset:   1:d3a0a68be6de
-  tag:         tip
-  user:        test
-  date:        Thu Jan 01 00:00:00 1970 +0000
-  summary:     2
-  
-  *** runcommand status
+  NameError("name 'check' is not defined",)
 (esc)
 
   >>> import os
   >>> from hgclient import bprint, check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def bookmarks(server):
   ...     readchannel(server)
@@ -308,50 +258,33 @@
   ...     runcommand(server, [b'commit', b'-Amm'])
   ...     runcommand(server, [b'bookmarks'])
   ...     bprint(b'')
-  *** runcommand bookmarks
-  no bookmarks set
-  *** runcommand bookmarks
-     bm1                       1:d3a0a68be6de
-     bm2                       1:d3a0a68be6de
-  *** runcommand bookmarks
-   * bm1                       1:d3a0a68be6de
-     bm2                       1:d3a0a68be6de
-  *** runcommand bookmarks bm3
-  *** runcommand commit -Amm
-  *** runcommand bookmarks
-     bm1                       1:d3a0a68be6de
-     bm2                       1:d3a0a68be6de
-   * bm3                       2:aef17e88f5f0
-  
-
-  >>> import os
-  >>> from hgclient import check, readchannel, runcommand
+  NameError("name 'check' is not defined",)
 (esc)
+
+  >>> import os
+  >>> from hgclient import check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def tagscache(server):
   ...     readchannel(server)
   ...     runcommand(server, [b'id', b'-t', b'-r', b'0'])
   ...     os.system('hg tag -r 0 foo')
   ...     runcommand(server, [b'id', b'-t', b'-r', b'0'])
-  *** runcommand id -t -r 0
-  
-  *** runcommand id -t -r 0
-  foo
-
-  >>> import os
-  >>> from hgclient import check, readchannel, runcommand
+  NameError("name 'check' is not defined",)
 (esc)
+
+  >>> import os
+  >>> from hgclient import check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def setphase(server):
   ...     readchannel(server)
   ...     runcommand(server, [b'phase', b'-r', b'.'])
   ...     os.system('hg phase -r . -p')
   ...     runcommand(server, [b'phase', b'-r', b'.'])
-  *** runcommand phase -r .
-  3: draft
-  *** runcommand phase -r .
-  3: public
+  NameError("name 'check' is not defined",)
 (esc)
 
   $ echo a >> a
   >>> from hgclient import bprint, check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def rollback(server):
   ...     readchannel(server)
@@ -360,18 +293,11 @@
   ...     runcommand(server, [b'rollback'])
   ...     runcommand(server, [b'phase', b'-r', b'.'])
   ...     bprint(b'')
-  *** runcommand phase -r . -p
-  no phases changed
-  *** runcommand commit -Am.
-  *** runcommand rollback
-  repository tip rolled back to revision 3 (undo commit)
-  working directory now based on revision 3
-  *** runcommand phase -r .
-  3: public
-  
-
-  >>> import os
-  >>> from hgclient import check, readchannel, runcommand
+  NameError("name 'check' is not defined",)
 (esc)
+
+  >>> import os
+  >>> from hgclient import check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def branch(server):
   ...     readchannel(server)
@@ -379,18 +305,12 @@
   ...     os.system('hg branch foo')
   ...     runcommand(server, [b'branch'])
   ...     os.system('hg branch default')
-  *** runcommand branch
-  default
-  marked working directory as branch foo
-  (branches are permanent and global, did you want a bookmark?)
-  *** runcommand branch
-  foo
-  marked working directory as branch default
-  (branches are permanent and global, did you want a bookmark?)
+  NameError("name 'check' is not defined",)
 (esc)
 
   $ touch .hgignore
   >>> import os
   >>> from hgclient import bprint, check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def hgignore(server):
   ...     readchannel(server)
@@ -403,17 +323,14 @@
   ...     f.close()
   ...     runcommand(server, [b'status', b'-i', b'-u'])
   ...     bprint(b'')
-  *** runcommand commit -Am.
-  adding .hgignore
-  *** runcommand status -i -u
-  I ignored-file
-  
+  NameError("name 'check' is not defined",)
 (esc)
 
 cache of non-public revisions should be invalidated on repository change
 (issue4855):
 
   >>> import os
   >>> from hgclient import bprint, check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def phasesetscacheaftercommit(server):
   ...     readchannel(server)
@@ -429,16 +346,11 @@
   ...     # new commits should be listed as draft revisions
   ...     runcommand(server, [b'log', b'-qr', b'draft()'])
   ...     bprint(b'')
-  *** runcommand log -qr draft()
-  4:7966c8e3734d
-  *** runcommand log -qr draft()
-  4:7966c8e3734d
-  5:41f6602d1c4f
-  6:10501e202c35
-  
+  NameError("name 'check' is not defined",)
 (esc)
 
   >>> import os
   >>> from hgclient import bprint, check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def phasesetscacheafterstrip(server):
   ...     readchannel(server)
@@ -449,18 +361,13 @@
   ...     # shouldn't abort by "unknown revision '6'"
   ...     runcommand(server, [b'log', b'-qr', b'draft()'])
   ...     bprint(b'')
-  *** runcommand log -qr draft()
-  4:7966c8e3734d
-  5:41f6602d1c4f
-  6:10501e202c35
-  *** runcommand log -qr draft()
-  4:7966c8e3734d
-  
+  NameError("name 'check' is not defined",)
 (esc)
 
 cache of phase roots should be invalidated on strip (issue3827):
 
   >>> import os
   >>> from hgclient import check, readchannel, runcommand, sep
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def phasecacheafterstrip(server):
   ...     readchannel(server)
@@ -483,52 +390,21 @@
   ... 
   ...     # shouldn't raise "7966c8e3734d: no node!"
   ...     runcommand(server, [b'branches'])
-  *** runcommand update -C 0
-  1 files updated, 0 files merged, 2 files removed, 0 files unresolved
-  (leaving bookmark bm3)
-  *** runcommand commit -Am. a
-  created new head
-  *** runcommand log -Gq
-  @  5:731265503d86
-  |
-  | o  4:7966c8e3734d
-  | |
-  | o  3:b9b85890c400
-  | |
-  | o  2:aef17e88f5f0
-  | |
-  | o  1:d3a0a68be6de
-  |/
-  o  0:eff892de26ec
-  
-  *** runcommand phase -p .
-  *** runcommand phase .
-  5: public
-  *** runcommand branches
-  default                        1:731265503d86
+  NameError("name 'check' is not defined",)
 (esc)
 
 in-memory cache must be reloaded if transaction is aborted. otherwise
 changelog and manifest would have invalid node:
 
   $ echo a >> a
   >>> from hgclient import check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def txabort(server):
   ...     readchannel(server)
   ...     runcommand(server, [b'commit', b'--config', b'hooks.pretxncommit=false',
   ...                         b'-mfoo'])
   ...     runcommand(server, [b'verify'])
-  *** runcommand commit --config hooks.pretxncommit=false -mfoo
-  transaction abort!
-  rollback completed
-  abort: pretxncommit hook exited with status 1
-   [255]
-  *** runcommand verify
-  checking changesets
-  checking manifests
-  crosschecking files in changesets and manifests
-  checking files
-  checked 2 changesets with 2 changes to 1 files
+  NameError("name 'check' is not defined",)
 (esc)
   $ hg revert --no-backup -aq
 
   $ cat >> .hg/hgrc << EOF
@@ -538,6 +414,7 @@
 
   >>> import os
   >>> from hgclient import check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def obsolete(server):
   ...     readchannel(server)
@@ -550,37 +427,7 @@
   ...     os.system(cmd)
   ...     runcommand(server, [b'log', b'--hidden'])
   ...     runcommand(server, [b'log'])
-  *** runcommand up null
-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved
-  *** runcommand phase -df tip
-  1 new obsolescence markers
-  obsoleted 1 changesets
-  *** runcommand log --hidden
-  changeset:   1:731265503d86
-  tag:         tip
-  user:        test
-  date:        Thu Jan 01 00:00:00 1970 +0000
-  obsolete:    pruned
-  summary:     .
-  
-  changeset:   0:eff892de26ec
-  bookmark:    bm1
-  bookmark:    bm2
-  bookmark:    bm3
-  user:        test
-  date:        Thu Jan 01 00:00:00 1970 +0000
-  summary:     1
-  
-  *** runcommand log
-  changeset:   0:eff892de26ec
-  bookmark:    bm1
-  bookmark:    bm2
-  bookmark:    bm3
-  tag:         tip
-  user:        test
-  date:        Thu Jan 01 00:00:00 1970 +0000
-  summary:     1
-  
+  NameError("name 'check' is not defined",)
 (esc)
 
   $ cat <<EOF >> .hg/hgrc
   > [extensions]
@@ -589,6 +436,7 @@
 
   >>> import os
   >>> from hgclient import check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def mqoutsidechanges(server):
   ...     readchannel(server)
@@ -603,14 +451,7 @@
   ...     os.system('hg qqueue --create foo')
   ...     # repo.mq should be recreated to point to new queue
   ...     runcommand(server, [b'qqueue', b'--active'])
-  *** runcommand qapplied
-  *** runcommand qapplied
-  0.diff
-  *** runcommand qpop --all
-  popping 0.diff
-  patch queue now empty
-  *** runcommand qqueue --active
-  foo
+  NameError("name 'check' is not defined",)
 (esc)
 
   $ cat <<'EOF' > ../dbgui.py
   > import os
@@ -643,6 +484,7 @@
   > EOF
 
   >>> from hgclient import check, readchannel, runcommand, stringio
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def getpass(server):
   ...     readchannel(server)
@@ -663,27 +505,13 @@
   ...                input=stringio(b'
remainder
should
not
be
read
'))
   ...     runcommand(server, [b'debugreadstdin'])
   ...     runcommand(server, [b'debugwritestdout'])
-  *** runcommand debuggetpass --config ui.interactive=True
-  password: 1234
-  *** runcommand debuggetpass --config ui.interactive=True
-  password: 
-  *** runcommand debuggetpass --config ui.interactive=True
-  password: abort: response expected
-   [255]
-  *** runcommand debugprompt --config ui.interactive=True
-  prompt: 5678
-  *** runcommand debugprompt --config ui.interactive=True
-  prompt: y
-  *** runcommand debugreadstdin
-  read: ''
-  *** runcommand debugwritestdout
-  low-level stdout fd and
-  stdout should be redirected to stderr
+  NameError("name 'check' is not defined",)
 (esc)
 
 
 run commandserver in commandserver, which is silly but should work:
 
   >>> from hgclient import bprint, check, readchannel, runcommand, stringio
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def nested(server):
   ...     bprint(b'%c, %r' % readchannel(server))
@@ -695,10 +523,7 @@
   ...     nestedserver.stdout.seek(0)
   ...     bprint(b'%c, %r' % readchannel(nestedserver))  # hello
   ...     bprint(b'%c, %r' % readchannel(nestedserver))  # getencoding
-  o, 'capabilities: getencoding runcommand
encoding: *
pid: *' (glob)
-  *** runcommand serve --cmdserver pipe
-  o, 'capabilities: getencoding runcommand
encoding: *
pid: *' (glob)
-  r, '*' (glob)
+  NameError("name 'check' is not defined",)
 (esc)
 
 
 start without repository:
@@ -706,6 +531,7 @@
   $ cd ..
 
   >>> from hgclient import bprint, check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def hellomessage(server):
   ...     ch, data = readchannel(server)
@@ -713,20 +539,16 @@
   ...     # run an arbitrary command to make sure the next thing the server
   ...     # sends isn't part of the hello message
   ...     runcommand(server, [b'id'])
-  o, 'capabilities: getencoding runcommand
encoding: *
pid: *' (glob)
-  *** runcommand id
-  abort: there is no Mercurial repository here (.hg not found)
-   [10]
-
-  >>> from hgclient import check, readchannel, runcommand
+  NameError("name 'check' is not defined",)
 (esc)
+
+  >>> from hgclient import check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def startwithoutrepo(server):
   ...     readchannel(server)
   ...     runcommand(server, [b'init', b'repo2'])
   ...     runcommand(server, [b'id', b'-R', b'repo2'])
-  *** runcommand init repo2
-  *** runcommand id -R repo2
-  000000000000 tip
+  NameError("name 'check' is not defined",)
 (esc)
 
 
 don't fall back to cwd if invalid -R path is specified (issue4805):
@@ -790,31 +612,22 @@
   > # server --config should precede repository option
   > message-output = stdio
   > EOF
+  $TESTTMP.sh: line 565: repo2/.hg/hgrc: $ENOENT$
+  [1]
 
   >>> from hgclient import bprint, checkwith, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @checkwith(extraargs=[b'--config', b'ui.message-output=channel',
   ...                       b'--config', b'cmdserver.message-encodings=foo cbor'])
   ... def verify(server):
   ...     _ch, data = readchannel(server)
   ...     bprint(data)
   ...     runcommand(server, [b'-R', b'repo2', b'verify'])
-  capabilities: getencoding runcommand
-  encoding: ascii
-  message-encoding: cbor
-  pid: * (glob)
+  NameError("name 'checkwith' is not defined",)
 (esc)
   pgid: * (glob) (no-windows !)
-  *** runcommand -R repo2 verify
-  message: '¢DdataTchecking changesets
DtypeFstatus'
-  message: '¦Ditem@CposöEtopicHcheckingEtotalöDtypeHprogressDunit@'
-  message: '¢DdataSchecking manifests
DtypeFstatus'
-  message: '¦Ditem@CposöEtopicHcheckingEtotalöDtypeHprogressDunit@'
-  message: '¢DdataX0crosschecking files in changesets and manifests
DtypeFstatus'
-  message: '¦Ditem@CposöEtopicMcrosscheckingEtotalöDtypeHprogressDunit@'
-  message: '¢DdataOchecking files
DtypeFstatus'
-  message: '¦Ditem@CposöEtopicHcheckingEtotalöDtypeHprogressDunit@'
-  message: '¢DdataX/checked 0 changesets with 0 changes to 0 files
DtypeFstatus'
 
   >>> from hgclient import checkwith, readchannel, runcommand, stringio
+  ImportError('No module named hgclient',)
 (esc)
   >>> @checkwith(extraargs=[b'--config', b'ui.message-output=channel',
   ...                       b'--config', b'cmdserver.message-encodings=cbor',
   ...                       b'--config', b'extensions.dbgui=dbgui.py'])
@@ -827,15 +640,7 @@
   ...                input=stringio(b'5678
'))
   ...     runcommand(server, [b'debugpromptchoice'] + interactive,
   ...                input=stringio(b'n
'))
-  *** runcommand debuggetpass --config ui.interactive=True
-  message: '£DdataJpassword: HpasswordõDtypeFprompt'
-  1234
-  *** runcommand debugprompt --config ui.interactive=True
-  message: '£DdataGprompt:GdefaultAyDtypeFprompt'
-   5678
-  *** runcommand debugpromptchoice --config ui.interactive=True
-  message: '¤Gchoices‚‚AyCYes‚AnBNoDdataTpromptchoice (y/n)? GdefaultAyDtypeFprompt'
-   1
+  NameError("name 'checkwith' is not defined",)
 (esc)
 
 bad message encoding:
 
@@ -1001,6 +806,7 @@
 (failure before finalization)
 
   >>> from hgclient import check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def abort(server):
   ...     readchannel(server)
@@ -1009,17 +815,12 @@
   ...                         b'-mfoo'])
   ...     runcommand(server, [b'log'])
   ...     runcommand(server, [b'verify', b'-q'])
-  *** runcommand commit --config hooks.pretxncommit=false -mfoo
-  transaction abort!
-  rollback completed
-  abort: pretxncommit hook exited with status 1
-   [255]
-  *** runcommand log
-  *** runcommand verify -q
+  NameError("name 'check' is not defined",)
 (esc)
 
 (failure after finalization)
 
   >>> from hgclient import check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def abort(server):
   ...     readchannel(server)
@@ -1028,13 +829,7 @@
   ...                         b'-mfoo'])
   ...     runcommand(server, [b'log'])
   ...     runcommand(server, [b'verify', b'-q'])
-  *** runcommand commit --config failafterfinalize.fail=true -mfoo
-  transaction abort!
-  rollback completed
-  abort: fail after finalization
-   [255]
-  *** runcommand log
-  *** runcommand verify -q
+  NameError("name 'check' is not defined",)
 (esc)
 
 - test failure with "not-empty changelog"
 
@@ -1045,6 +840,7 @@
 (failure before finalization)
 
   >>> from hgclient import check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def abort(server):
   ...     readchannel(server)
@@ -1053,18 +849,12 @@
   ...                         b'-mfoo', b'foo'])
   ...     runcommand(server, [b'log'])
   ...     runcommand(server, [b'verify', b'-q'])
-  *** runcommand commit --config hooks.pretxncommit=false -mfoo foo
-  transaction abort!
-  rollback completed
-  abort: pretxncommit hook exited with status 1
-   [255]
-  *** runcommand log
-  0 bar (bar)
-  *** runcommand verify -q
+  NameError("name 'check' is not defined",)
 (esc)
 
 (failure after finalization)
 
   >>> from hgclient import check, readchannel, runcommand
+  ImportError('No module named hgclient',)
 (esc)
   >>> @check
   ... def abort(server):
   ...     readchannel(server)
@@ -1073,14 +863,7 @@
   ...                         b'-mfoo', b'foo'])
   ...     runcommand(server, [b'log'])
   ...     runcommand(server, [b'verify', b'-q'])
-  *** runcommand commit --config failafterfinalize.fail=true -mfoo foo
-  transaction abort!
-  rollback completed
-  abort: fail after finalization
-   [255]
-  *** runcommand log
-  0 bar (bar)
-  *** runcommand verify -q
+  NameError("name 'check' is not defined",)
 (esc)
 
   $ cd ..
 

test-commit-amend.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-commit-amend.t\n+++ c:/hgdev/src/tests/test-commit-amend.t.err\n@@ -37,6 +37,67 @@\n   pretxncommit 43f1ba15f28a50abf0aae529cf8a16bfced7b149\n   43f1ba15f28a tip\n   saved backup bundle to $TESTTMP/.hg/strip-backup/489edb5b847d-5ab4f721-amend.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\.hg\\strip-backup/489edb5b847d-5ab4f721-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\.hg\\strip-backup/489edb5b847d-007467c2-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\.hg\\strip-backup/489edb5b847d-007467c2-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo \'pretxncommit.foo = \' >> $HGRCPATH\n   $ hg diff -c .\n   diff -r ad120869acf0 -r 43f1ba15f28a a\n@@ -47,11 +108,17 @@\n   +a\n   +a\n   $ hg log\n-  changeset:   1:43f1ba15f28a\n+  changeset:   2:43f1ba15f28a\n   tag:         tip\n+  parent:      0:ad120869acf0\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n   summary:     amend base1\n+  \n+  changeset:   1:489edb5b847d\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     base1\n   \n   changeset:   0:ad120869acf0\n   user:        test\n@@ -75,81 +142,74 @@\n   $ echo b > b\n   $ hg add b\n   $ hg summary\n-  parent: 1:43f1ba15f28a tip\n+  parent: 2:43f1ba15f28a tip\n    amend base1\n   branch: default\n   commit: 1 modified, 1 added, 1 unknown\n-  update: (current)\n-  phases: 2 draft\n+  update: 1 new changesets, 2 branch heads (merge)\n+  phases: 3 draft\n   $ HGEDITOR="\\"sh\\" \\"`pwd`/editor.sh\\"" hg commit --amend\n-  abort: empty commit message\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg summary\n-  parent: 1:43f1ba15f28a tip\n+  parent: 2:43f1ba15f28a tip\n    amend base1\n   branch: default\n   commit: 1 modified, 1 added, 1 unknown\n-  update: (current)\n-  phases: 2 draft\n+  update: 1 new changesets, 2 branch heads (merge)\n+  phases: 3 draft\n \n Add new file along with modified existing file:\n   $ hg ci --amend -m \'amend base1 new file\'\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/43f1ba15f28a-007467c2-amend.hg\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Remove file that was added in amended commit:\n (and test logfile option)\n (and test that logfile option do not trigger an editor)\n \n   $ hg rm b\n+  not removing b: file has been marked for add (use \'hg forget\' to undo add)\n+  [1]\n   $ echo \'amend base1 remove new file\' > ../logfile\n   $ HGEDITOR="\\"sh\\" \\"`pwd`/editor.sh\\"" hg ci --amend --logfile ../logfile\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/c16295aaf401-1ada9901-amend.hg\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg cat b\n-  b: no such file in rev 47343646fa3d\n+  b: no such file in rev 43f1ba15f28a\n   [1]\n \n No changes, just a different message:\n \n   $ hg ci -v --amend -m \'no changes, new message\'\n-  amending changeset 47343646fa3d\n-  copying changeset 47343646fa3d to ad120869acf0\n-  committing files:\n-  a\n-  committing manifest\n-  committing changelog\n-  1 changesets found\n-  uncompressed size of bundle content:\n-       254 (changelog)\n-       163 (manifests)\n-       131  a\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/47343646fa3d-c2758885-amend.hg\n-  1 changesets found\n-  uncompressed size of bundle content:\n-       250 (changelog)\n-       163 (manifests)\n-       131  a\n-  adding branch\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  committed changeset 1:401431e913a1\n+  amending changeset 43f1ba15f28a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg diff -c .\n-  diff -r ad120869acf0 -r 401431e913a1 a\n+  diff -r ad120869acf0 -r 43f1ba15f28a a\n   --- a/a\tThu Jan 01 00:00:00 1970 +0000\n   +++ b/a\tThu Jan 01 00:00:00 1970 +0000\n-  @@ -1,1 +1,4 @@\n+  @@ -1,1 +1,3 @@\n    a\n   +a\n   +a\n-  +a\n   $ hg log\n-  changeset:   1:401431e913a1\n+  changeset:   2:43f1ba15f28a\n   tag:         tip\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     no changes, new message\n+  parent:      0:ad120869acf0\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     amend base1\n+  \n+  changeset:   1:489edb5b847d\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     base1\n   \n   changeset:   0:ad120869acf0\n   user:        test\n@@ -169,17 +229,21 @@\n   > true\n   > EOF\n   $ HGEDITOR="sh .hg/checkeditform.sh" hg ci --amend -u foo -d \'1 0\'\n-  HGEDITFORM=commit.amend.normal\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/401431e913a1-5e8e532c-amend.hg\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo a >> a\n   $ hg ci --amend -u foo -d \'1 0\'\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/d96b1d28ae33-677e0afb-amend.hg\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -r .\n-  changeset:   1:a9a13940fc03\n+  changeset:   2:43f1ba15f28a\n   tag:         tip\n-  user:        foo\n-  date:        Thu Jan 01 00:00:01 1970 +0000\n-  summary:     no changes, new message\n+  parent:      0:ad120869acf0\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     amend base1\n   \n \n Open editor with old commit message if a message isn\'t given otherwise:\n@@ -199,45 +263,24 @@\n \n   $ rm -f .hg/last-message.txt\n   $ hg commit --amend -v -m "message given from command line"\n-  amending changeset a9a13940fc03\n-  copying changeset a9a13940fc03 to ad120869acf0\n-  committing files:\n-  a\n-  committing manifest\n-  committing changelog\n-  running hook pretxncommit.test-saving-last-message: false\n-  transaction abort!\n-  rollback completed\n-  abort: pretxncommit.test-saving-last-message hook exited with status 1\n+  amending changeset 43f1ba15f28a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ cat .hg/last-message.txt\n-  message given from command line (no-eol)\n+  cat: .hg/last-message.txt: $ENOENT$\n+  [1]\n \n   $ rm -f .hg/last-message.txt\n   $ HGEDITOR="\\"sh\\" \\"`pwd`/editor.sh\\"" hg commit --amend -v\n-  amending changeset a9a13940fc03\n-  copying changeset a9a13940fc03 to ad120869acf0\n-  no changes, new message\n-  \n-  \n-  HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  HG: Leave message empty to abort commit.\n-  HG: --\n-  HG: user: foo\n-  HG: branch \'default\'\n-  HG: changed a\n-  committing files:\n-  a\n-  committing manifest\n-  committing changelog\n-  running hook pretxncommit.test-saving-last-message: false\n-  transaction abort!\n-  rollback completed\n-  abort: pretxncommit.test-saving-last-message hook exited with status 1\n+  amending changeset 43f1ba15f28a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n   $ cat .hg/last-message.txt\n-  another precious commit message\n+  cat: .hg/last-message.txt: $ENOENT$\n+  [1]\n \n   $ cat > .hg/hgrc << \'__EOF__\'\n   > [hooks]\n@@ -247,99 +290,53 @@\n then, test editing custom commit message\n \n   $ HGEDITOR="\\"sh\\" \\"`pwd`/editor.sh\\"" hg commit --amend -v\n-  amending changeset a9a13940fc03\n-  copying changeset a9a13940fc03 to ad120869acf0\n-  no changes, new message\n-  \n-  \n-  HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  HG: Leave message empty to abort commit.\n-  HG: --\n-  HG: user: foo\n-  HG: branch \'default\'\n-  HG: changed a\n-  committing files:\n-  a\n-  committing manifest\n-  committing changelog\n-  1 changesets found\n-  uncompressed size of bundle content:\n-       249 (changelog)\n-       163 (manifests)\n-       133  a\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/a9a13940fc03-7c2e8674-amend.hg\n-  1 changesets found\n-  uncompressed size of bundle content:\n-       257 (changelog)\n-       163 (manifests)\n-       133  a\n-  adding branch\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  committed changeset 1:64a124ba1b44\n+  amending changeset 43f1ba15f28a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Same, but with changes in working dir (different code path):\n \n   $ echo a >> a\n   $ HGEDITOR="\\"sh\\" \\"`pwd`/editor.sh\\"" hg commit --amend -v\n-  amending changeset 64a124ba1b44\n-  another precious commit message\n-  \n-  \n-  HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  HG: Leave message empty to abort commit.\n-  HG: --\n-  HG: user: foo\n-  HG: branch \'default\'\n-  HG: changed a\n-  committing files:\n-  a\n-  committing manifest\n-  committing changelog\n-  1 changesets found\n-  uncompressed size of bundle content:\n-       257 (changelog)\n-       163 (manifests)\n-       133  a\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/64a124ba1b44-10374b8f-amend.hg\n-  1 changesets found\n-  uncompressed size of bundle content:\n-       257 (changelog)\n-       163 (manifests)\n-       135  a\n-  adding branch\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  committed changeset 1:7892795b8e38\n+  amending changeset 43f1ba15f28a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ rm editor.sh\n   $ hg log -r .\n-  changeset:   1:7892795b8e38\n+  changeset:   2:43f1ba15f28a\n   tag:         tip\n-  user:        foo\n-  date:        Thu Jan 01 00:00:01 1970 +0000\n-  summary:     another precious commit message\n+  parent:      0:ad120869acf0\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     amend base1\n   \n \n Moving bookmarks, preserve active bookmark:\n \n   $ hg book book1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg book book2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg ci --amend -m \'move bookmarks\'\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/7892795b8e38-3fb46217-amend.hg\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg book\n-     book1                     1:8311f17e2616\n-   * book2                     1:8311f17e2616\n+  no bookmarks set\n   $ echo a >> a\n   $ hg ci --amend -m \'move bookmarks\'\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/8311f17e2616-f0504fe3-amend.hg\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg book\n-     book1                     1:a3b65065808c\n-   * book2                     1:a3b65065808c\n+  no bookmarks set\n \n abort does not loose bookmarks\n \n@@ -349,11 +346,11 @@\n   > __EOF__\n   $ echo a >> a\n   $ HGEDITOR="\\"sh\\" \\"`pwd`/editor.sh\\"" hg commit --amend\n-  abort: empty commit message\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg book\n-     book1                     1:a3b65065808c\n-   * book2                     1:a3b65065808c\n+  no bookmarks set\n   $ hg revert -Caq\n   $ rm editor.sh\n \n@@ -367,93 +364,144 @@\n   (branches are permanent and global, did you want a bookmark?)\n   $ echo a >> a\n   $ hg ci -m \'branch foo\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch default -f\n   marked working directory as branch default\n+  (branches are permanent and global, did you want a bookmark?)\n   $ hg ci --amend -m \'back to default\'\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/f8339a38efe1-c18453c9-amend.hg\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branches\n-  default                        2:9c07515f2650\n+  default                        2:43f1ba15f28a\n \n Close branch:\n \n   $ hg up -q 0\n+  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n+  [1]\n   $ echo b >> b\n   $ hg branch foo\n   marked working directory as branch foo\n   (branches are permanent and global, did you want a bookmark?)\n   $ hg ci -Am \'fork\'\n+  adding a.orig\n   adding b\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n   $ echo b >> b\n   $ hg ci -mb\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n   $ hg ci --amend --close-branch -m \'closing branch foo\'\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/c962248fa264-54245dc7-amend.hg\n+  abort: branch "foo" has no heads to close\n+  [10]\n \n Same thing, different code path:\n \n   $ echo b >> b\n   $ hg ci -m \'reopen branch\'\n-  reopening closed branch head 4\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n   $ echo b >> b\n   $ hg ci --amend --close-branch\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/027371728205-b900d9fa-amend.hg\n+  abort: branch "foo" has no heads to close\n+  [10]\n   $ hg branches\n-  default                        2:9c07515f2650\n+  default                        2:43f1ba15f28a\n \n Refuse to amend during a merge:\n \n   $ hg up -q default\n+  abort: outstanding merge conflicts\n+  (use \'hg resolve\' to resolve)\n+  [255]\n   $ hg merge foo\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n+  abort: unknown revision \'foo\'\n+  [255]\n   $ hg ci --amend\n-  abort: cannot amend while merging\n+  abort: cannot amend changeset with children\n+  [10]\n+  $ hg ci -m \'merge\'\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n   [20]\n-  $ hg ci -m \'merge\'\n \n Refuse to amend if there is a merge conflict (issue5805):\n \n   $ hg up -q foo\n+  abort: unknown revision \'foo\'\n+  [255]\n   $ echo c > a\n   $ hg up default -t :fail\n-  0 files updated, 0 files merged, 0 files removed, 1 files unresolved\n-  use \'hg resolve\' to retry unresolved file merges\n-  [1]\n+  abort: outstanding merge conflicts\n+  (use \'hg resolve\' to resolve)\n+  [255]\n   $ hg resolve -l\n   U a\n \n   $ hg ci --amend\n-  abort: unresolved merge conflicts (see \'hg help resolve\')\n-  [20]\n+  abort: cannot amend changeset with children\n+  [10]\n \n   $ hg up -qC .\n \n Follow copies/renames:\n \n   $ hg mv b c\n+  b: not copying - file is not managed\n+  abort: no files to copy\n+  [10]\n   $ hg ci -m \'b -> c\'\n+  nothing changed\n+  [1]\n   $ hg mv c d\n+  c: $ENOENT$\n+  abort: no files to copy\n+  [10]\n   $ hg ci --amend -m \'b -> d\'\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/42f3f27a067d-f23cc9f7-amend.hg\n+  abort: cannot amend changeset with children\n+  [10]\n   $ hg st --rev \'.^\' --copies d\n-  A d\n-    b\n+  abort: empty revision range\n+  [255]\n   $ hg cp d e\n+  d: $ENOENT$\n+  abort: no files to copy\n+  [10]\n   $ hg ci -m \'e = d\'\n+  nothing changed\n+  [1]\n   $ hg cp e f\n+  e: $ENOENT$\n+  abort: no files to copy\n+  [10]\n   $ hg ci --amend -m \'f = d\'\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/9198f73182d5-251d584a-amend.hg\n+  abort: cannot amend changeset with children\n+  [10]\n   $ hg st --rev \'.^\' --copies f\n-  A f\n-    d\n+  abort: empty revision range\n+  [255]\n \n   $ mv f f.orig\n+  mv: cannot stat `f\': $ENOENT$\n+  [1]\n   $ hg rm -A f\n+  f: $ENOENT$\n+  [1]\n   $ hg ci -m removef\n+  nothing changed\n+  [1]\n   $ hg cp a f\n   $ mv f.orig f\n+  mv: cannot stat `f.orig\': $ENOENT$\n+  [1]\n   $ hg ci --amend -m replacef\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/f0993ab6b482-eda301bf-amend.hg\n+  abort: cannot amend changeset with children\n+  [10]\n   $ hg st --change . --copies\n+  A a\n   $ hg log -r . --template "{file_copies}\\n"\n   \n \n@@ -461,20 +509,27 @@\n \n   $ echo g >> g\n   $ hg ci -Am g\n+  adding a.orig\n+  adding b\n   adding g\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg mv g h\n+  g: not copying - file is not managed\n+  abort: no files to copy\n+  [10]\n   $ hg ci --amend\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/58585e3f095c-0f5ebcda-amend.hg\n+  abort: cannot amend changeset with children\n+  [10]\n   $ hg st --change . --copies h\n-  A h\n   $ hg log -r . --template "{file_copies}\\n"\n   \n \n Can\'t rollback an amend:\n \n   $ hg rollback\n-  no rollback information available\n-  [1]\n+  repository tip rolled back to revision 1 (undo amend)\n \n Preserve extra dict (issue3430):\n \n@@ -483,14 +538,19 @@\n   (branches are permanent and global, did you want a bookmark?)\n   $ echo a >> a\n   $ hg ci -ma\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg ci --amend -m "a\'"\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/39a162f1d65e-9dfe13d8-amend.hg\n+  abort: cannot amend changeset with children\n+  [10]\n   $ hg log -r . --template "{branch}\\n"\n-  a\n+  default\n   $ hg ci --amend -m "a\'\'"\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/d5ca7b1ac72b-0b4c1a34-amend.hg\n+  abort: cannot amend changeset with children\n+  [10]\n   $ hg log -r . --template "{branch}\\n"\n-  a\n+  default\n \n Also preserve other entries in the dict that are in the old commit,\n first graft something so there\'s an additional entry:\n@@ -498,32 +558,37 @@\n   $ hg up 0 -q\n   $ echo z > z\n   $ hg ci -Am \'fork\'\n+  adding a.orig\n+  adding b\n+  adding g\n   adding z\n-  created new head\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up 11\n-  5 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: unknown revision \'11\'\n+  [255]\n   $ hg graft 12\n-  grafting 12:2647734878ef "fork" (tip)\n+  abort: uncommitted changes\n+  [20]\n   $ hg ci --amend -m \'graft amend\'\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/fe8c6f7957ca-25638666-amend.hg\n+  abort: cannot amend changeset with children\n+  [10]\n   $ hg log -r . --debug | grep extra\n-  extra:       amend_source=fe8c6f7957ca1665ed77496ed7a07657d469ac60\n-  extra:       branch=a\n-  extra:       source=2647734878ef0236dda712fae9c1651cf694ea8a\n+  extra:       branch=default\n \n Preserve phase\n \n   $ hg phase \'.^::.\'\n-  11: draft\n-  13: draft\n   $ hg phase --secret --force .\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase \'.^::.\'\n-  11: draft\n-  13: secret\n   $ hg commit --amend -m \'amend for phase\' -q\n+  abort: cannot amend changeset with children\n+  [10]\n   $ hg phase \'.^::.\'\n-  11: draft\n-  13: secret\n \n Test amend with obsolete\n ---------------------------\n@@ -539,33 +604,27 @@\n Amend with no files changes\n \n   $ hg id -n\n-  13\n+  0+\n   $ hg ci --amend -m \'babar\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg id -n\n-  14\n+  0+\n   $ hg log -Gl 3 --style=compact\n-  @  14[tip]:11   682950e85999   1970-01-01 00:00 +0000   test\n-  |    babar\n+  o  1[tip]   489edb5b847d   1970-01-01 00:00 +0000   test\n+  |    base1\n   |\n-  | o  12:0   2647734878ef   1970-01-01 00:00 +0000   test\n-  | |    fork\n-  | ~\n-  o  11   0ddb275cfad1   1970-01-01 00:00 +0000   test\n-  |    a\'\'\n-  ~\n+  @  0   ad120869acf0   1970-01-01 00:00 +0000   test\n+       base\n+  \n   $ hg log -Gl 4 --hidden --style=compact\n-  @  14[tip]:11   682950e85999   1970-01-01 00:00 +0000   test\n-  |    babar\n+  o  1[tip]   489edb5b847d   1970-01-01 00:00 +0000   test\n+  |    base1\n   |\n-  | x  13:11   5167600b0f7a   1970-01-01 00:00 +0000   test\n-  |/     amend for phase\n-  |\n-  | o  12:0   2647734878ef   1970-01-01 00:00 +0000   test\n-  | |    fork\n-  | ~\n-  o  11   0ddb275cfad1   1970-01-01 00:00 +0000   test\n-  |    a\'\'\n-  ~\n+  @  0   ad120869acf0   1970-01-01 00:00 +0000   test\n+       base\n+  \n \n Amend with files changes\n \n@@ -574,304 +633,289 @@\n \n   $ echo \'babar\' >> a\n   $ hg commit --amend\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -Gl 6 --hidden --style=compact\n-  @  15[tip]:11   a5b42b49b0d5   1970-01-01 00:00 +0000   test\n-  |    babar\n+  o  1[tip]   489edb5b847d   1970-01-01 00:00 +0000   test\n+  |    base1\n   |\n-  | x  14:11   682950e85999   1970-01-01 00:00 +0000   test\n-  |/     babar\n-  |\n-  | x  13:11   5167600b0f7a   1970-01-01 00:00 +0000   test\n-  |/     amend for phase\n-  |\n-  | o  12:0   2647734878ef   1970-01-01 00:00 +0000   test\n-  | |    fork\n-  | ~\n-  o  11   0ddb275cfad1   1970-01-01 00:00 +0000   test\n-  |    a\'\'\n-  |\n-  o  10   5fa75032e226   1970-01-01 00:00 +0000   test\n-  |    g\n-  ~\n+  @  0   ad120869acf0   1970-01-01 00:00 +0000   test\n+       base\n+  \n \n \n Test that amend does not make it easy to create obsolescence cycle\n ---------------------------------------------------------------------\n \n   $ hg id -r 14 --hidden\n-  682950e85999 (a)\n+  abort: unknown revision \'14\'\n+  [255]\n   $ hg revert -ar 14 --hidden\n-  reverting a\n+  abort: unknown revision \'14\'\n+  [255]\n   $ hg commit --amend\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg id\n-  37973c7e0b61 (a) tip\n+  ad120869acf0+ (a)\n \n Test that rewriting leaving instability behind is allowed\n ---------------------------------------------------------------------\n \n   $ hg up \'.^\'\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo \'b\' >> a\n   $ hg log --style compact -r \'children(.)\'\n-  16[tip]:11   37973c7e0b61   1970-01-01 00:00 +0000   test\n-    babar\n+  1[tip]   489edb5b847d   1970-01-01 00:00 +0000   test\n+    base1\n   \n   $ hg commit --amend\n-  1 new orphan changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -r \'orphan()\'\n-  changeset:   16:37973c7e0b61\n-  branch:      a\n-  parent:      11:0ddb275cfad1\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  instability: orphan\n-  summary:     babar\n-  \n \n Amend a merge changeset (with renames and conflicts from the second parent):\n \n   $ hg up -q default\n+  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n+  [1]\n   $ hg branch -q bar\n   $ hg cp a aa\n   $ hg mv z zz\n+  z: not copying - file is not managed\n+  abort: no files to copy\n+  [10]\n   $ echo cc > cc\n   $ hg add cc\n   $ hg ci -m aazzcc\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n   $ hg up -q default\n+  abort: outstanding merge conflicts\n+  (use \'hg resolve\' to resolve)\n+  [255]\n   $ echo a >> a\n   $ echo dd > cc\n   $ hg add cc\n+  cc already tracked!\n   $ hg ci -m aa\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n   $ hg merge -q bar\n-  warning: conflicts while merging cc! (edit, then use \'hg resolve --mark\')\n-  [1]\n+  abort: unknown revision \'bar\'\n+  [255]\n   $ hg resolve -m cc\n-  (no more unresolved files)\n+  arguments do not match paths that need resolving\n   $ hg ci -m \'merge bar\'\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n   $ hg log --config diff.git=1 -pr .\n-  changeset:   20:5aba7f3726e6\n+  changeset:   1:489edb5b847d\n   tag:         tip\n-  parent:      19:30d96aeaf27b\n-  parent:      18:1aa437659d19\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     merge bar\n-  \n-  diff --git a/a b/aa\n-  copy from a\n-  copy to aa\n-  diff --git a/cc b/cc\n-  --- a/cc\n-  +++ b/cc\n-  @@ -1,1 +1,5 @@\n-  +<<<<<<< working copy: 30d96aeaf27b - test: aa\n-   dd\n-  +=======\n-  +cc\n-  +>>>>>>> merge rev:    1aa437659d19 bar - test: aazzcc\n-  diff --git a/z b/zz\n-  rename from z\n-  rename to zz\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     base1\n+  \n+  diff --git a/a b/a\n+  --- a/a\n+  +++ b/a\n+  @@ -1,1 +1,2 @@\n+   a\n+  +a\n   \n   $ hg debugrename aa\n-  aa renamed from a:a80d06849b333b8a3d5c445f8ba3142010dcdc9e\n+  aa: no such file in rev 489edb5b847d\n   $ hg debugrename zz\n-  zz renamed from z:69a1b67522704ec122181c0890bd16e9d3e7516a\n+  zz: no such file in rev 489edb5b847d\n   $ hg debugrename cc\n-  cc not renamed\n+  cc: no such file in rev 489edb5b847d\n   $ HGEDITOR="sh .hg/checkeditform.sh" hg ci --amend -m \'merge bar (amend message)\' --edit\n-  HGEDITFORM=commit.amend.merge\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log --config diff.git=1 -pr .\n-  changeset:   21:4b0631ef043e\n+  changeset:   1:489edb5b847d\n   tag:         tip\n-  parent:      19:30d96aeaf27b\n-  parent:      18:1aa437659d19\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     merge bar (amend message)\n-  \n-  diff --git a/a b/aa\n-  copy from a\n-  copy to aa\n-  diff --git a/cc b/cc\n-  --- a/cc\n-  +++ b/cc\n-  @@ -1,1 +1,5 @@\n-  +<<<<<<< working copy: 30d96aeaf27b - test: aa\n-   dd\n-  +=======\n-  +cc\n-  +>>>>>>> merge rev:    1aa437659d19 bar - test: aazzcc\n-  diff --git a/z b/zz\n-  rename from z\n-  rename to zz\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     base1\n+  \n+  diff --git a/a b/a\n+  --- a/a\n+  +++ b/a\n+  @@ -1,1 +1,2 @@\n+   a\n+  +a\n   \n   $ hg debugrename aa\n-  aa renamed from a:a80d06849b333b8a3d5c445f8ba3142010dcdc9e\n+  aa: no such file in rev 489edb5b847d\n   $ hg debugrename zz\n-  zz renamed from z:69a1b67522704ec122181c0890bd16e9d3e7516a\n+  zz: no such file in rev 489edb5b847d\n   $ hg debugrename cc\n-  cc not renamed\n+  cc: no such file in rev 489edb5b847d\n   $ hg mv zz z\n+  zz: $ENOENT$\n+  abort: no files to copy\n+  [10]\n   $ hg ci --amend -m \'merge bar (undo rename)\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log --config diff.git=1 -pr .\n-  changeset:   22:06423be42d60\n+  changeset:   1:489edb5b847d\n   tag:         tip\n-  parent:      19:30d96aeaf27b\n-  parent:      18:1aa437659d19\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     merge bar (undo rename)\n-  \n-  diff --git a/a b/aa\n-  copy from a\n-  copy to aa\n-  diff --git a/cc b/cc\n-  --- a/cc\n-  +++ b/cc\n-  @@ -1,1 +1,5 @@\n-  +<<<<<<< working copy: 30d96aeaf27b - test: aa\n-   dd\n-  +=======\n-  +cc\n-  +>>>>>>> merge rev:    1aa437659d19 bar - test: aazzcc\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     base1\n+  \n+  diff --git a/a b/a\n+  --- a/a\n+  +++ b/a\n+  @@ -1,1 +1,2 @@\n+   a\n+  +a\n   \n   $ hg debugrename z\n-  z not renamed\n+  z: no such file in rev 489edb5b847d\n \n Amend a merge changeset (with renames during the merge):\n \n   $ hg up -q bar\n+  abort: unknown revision \'bar\'\n+  [255]\n   $ echo x > x\n   $ hg add x\n   $ hg ci -m x\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n   $ hg up -q default\n+  abort: outstanding merge conflicts\n+  (use \'hg resolve\' to resolve)\n+  [255]\n   $ hg merge -q bar\n+  abort: unknown revision \'bar\'\n+  [255]\n   $ hg mv aa aaa\n   $ echo aa >> aaa\n   $ hg ci -m \'merge bar again\'\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n   $ hg log --config diff.git=1 -pr .\n-  changeset:   24:a89974a20457\n+  changeset:   1:489edb5b847d\n   tag:         tip\n-  parent:      22:06423be42d60\n-  parent:      23:4c94d5bc65f5\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     merge bar again\n-  \n-  diff --git a/aa b/aa\n-  deleted file mode 100644\n-  --- a/aa\n-  +++ /dev/null\n-  @@ -1,2 +0,0 @@\n-  -a\n-  -a\n-  diff --git a/aaa b/aaa\n-  new file mode 100644\n-  --- /dev/null\n-  +++ b/aaa\n-  @@ -0,0 +1,3 @@\n-  +a\n-  +a\n-  +aa\n-  diff --git a/x b/x\n-  new file mode 100644\n-  --- /dev/null\n-  +++ b/x\n-  @@ -0,0 +1,1 @@\n-  +x\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     base1\n+  \n+  diff --git a/a b/a\n+  --- a/a\n+  +++ b/a\n+  @@ -1,1 +1,2 @@\n+   a\n+  +a\n   \n   $ hg debugrename aaa\n-  aaa renamed from aa:37d9b5d994eab34eda9c16b195ace52c7b129980\n+  aaa: no such file in rev 489edb5b847d\n \n Update to p1 with \'aaa\' modified. \'aaa\' was renamed from \'aa\' in p2. \'aa\' exists\n in p1 too, but it was recorded as copied from p2.\n   $ echo modified >> aaa\n   $ hg co -m \'.^\' -t :merge3\n-  file \'aaa\' was deleted in other [destination] but was modified in local [working copy].\n-  You can use (c)hanged version, (d)elete, or leave (u)nresolved.\n-  What do you want to do? u\n-  1 files updated, 0 files merged, 1 files removed, 1 files unresolved\n-  use \'hg resolve\' to retry unresolved file merges\n-  [1]\n+  abort: outstanding merge conflicts\n+  (use \'hg resolve\' to resolve)\n+  [255]\n   $ hg co -C tip\n-  2 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n \n   $ hg mv aaa aa\n+  aaa: not copying - file is not managed\n+  abort: no files to copy\n+  [10]\n   $ hg ci --amend -m \'merge bar again (undo rename)\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log --config diff.git=1 -pr .\n-  changeset:   25:282080768800\n+  changeset:   1:489edb5b847d\n   tag:         tip\n-  parent:      22:06423be42d60\n-  parent:      23:4c94d5bc65f5\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     merge bar again (undo rename)\n-  \n-  diff --git a/aa b/aa\n-  --- a/aa\n-  +++ b/aa\n-  @@ -1,2 +1,3 @@\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     base1\n+  \n+  diff --git a/a b/a\n+  --- a/a\n+  +++ b/a\n+  @@ -1,1 +1,2 @@\n    a\n-   a\n-  +aa\n-  diff --git a/x b/x\n-  new file mode 100644\n-  --- /dev/null\n-  +++ b/x\n-  @@ -0,0 +1,1 @@\n-  +x\n+  +a\n   \n   $ hg debugrename aa\n-  aa not renamed\n+  aa: no such file in rev 489edb5b847d\n   $ hg debugrename -r \'.^\' aa\n-  aa renamed from a:a80d06849b333b8a3d5c445f8ba3142010dcdc9e\n+  aa: no such file in rev ad120869acf0\n \n Amend a merge changeset (with manifest-level conflicts):\n \n   $ hg up -q bar\n+  abort: unknown revision \'bar\'\n+  [255]\n   $ hg rm aa\n+  aa: $ENOENT$\n+  [1]\n   $ hg ci -m \'rm aa\'\n+  nothing changed\n+  [1]\n   $ hg up -q default\n   $ echo aa >> aa\n   $ hg ci -m aa\n+  nothing changed\n+  [1]\n   $ hg merge -q bar --config ui.interactive=True << EOF\n   > c\n   > EOF\n-  file \'aa\' was deleted in other [merge rev] but was modified in local [working copy].\n-  You can use (c)hanged version, (d)elete, or leave (u)nresolved.\n-  What do you want to do? c\n+  abort: unknown revision \'bar\'\n+  [255]\n   $ hg ci -m \'merge bar (with conflicts)\'\n+  nothing changed\n+  [1]\n   $ hg log --config diff.git=1 -pr .\n-  changeset:   28:ed15db12298d\n+  changeset:   1:489edb5b847d\n   tag:         tip\n-  parent:      27:eb5adec0b43b\n-  parent:      26:67db8847a540\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     merge bar (with conflicts)\n-  \n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     base1\n+  \n+  diff --git a/a b/a\n+  --- a/a\n+  +++ b/a\n+  @@ -1,1 +1,2 @@\n+   a\n+  +a\n   \n   $ hg rm aa\n+  not removing aa: file is untracked\n+  [1]\n   $ hg ci --amend -m \'merge bar (with conflicts, amended)\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log --config diff.git=1 -pr .\n-  changeset:   29:0eeafd043f63\n+  changeset:   1:489edb5b847d\n   tag:         tip\n-  parent:      27:eb5adec0b43b\n-  parent:      26:67db8847a540\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     merge bar (with conflicts, amended)\n-  \n-  diff --git a/aa b/aa\n-  deleted file mode 100644\n-  --- a/aa\n-  +++ /dev/null\n-  @@ -1,4 +0,0 @@\n-  -a\n-  -a\n-  -aa\n-  -aa\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     base1\n+  \n+  diff --git a/a b/a\n+  --- a/a\n+  +++ b/a\n+  @@ -1,1 +1,2 @@\n+   a\n+  +a\n   \n Issue 3445: amending with --close-branch a commit that created a new head should fail\n This shouldn\'t be possible:\n@@ -879,17 +923,22 @@\n   $ hg up -q default\n   $ hg branch closewithamend\n   marked working directory as branch closewithamend\n+  (branches are permanent and global, did you want a bookmark?)\n   $ echo foo > foo\n   $ hg add foo\n   $ hg ci -m..\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg ci --amend --close-branch -m \'closing\'\n-  abort: can only close branch heads\n+  abort: branch "closewithamend" has no heads to close\n   [10]\n \n This silliness fails:\n \n   $ hg branch silliness\n   marked working directory as branch silliness\n+  (branches are permanent and global, did you want a bookmark?)\n   $ echo b >> b\n   $ hg ci --close-branch -m\'open and close\'\n   abort: branch "silliness" has no heads to close\n@@ -899,57 +948,70 @@\n ---------------------------------------------------------------------\n \n   $ hg phase \'.^::.\'\n-  29: draft\n-  30: draft\n+  0: draft\n+  1: draft\n   $ hg commit --amend --secret -m \'amend as secret\' -q\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase \'.^::.\'\n-  29: draft\n-  31: secret\n+  0: draft\n+  1: draft\n \n Test that amend with --edit invokes editor forcibly\n ---------------------------------------------------\n \n   $ hg parents --template "{desc}\\n"\n-  amend as secret\n+  base1\n   $ HGEDITOR=cat hg commit --amend -m "editor should be suppressed"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg parents --template "{desc}\\n"\n-  editor should be suppressed\n+  base1\n \n   $ hg status --rev \'.^1::.\'\n-  A foo\n+  M a\n   $ HGEDITOR=cat hg commit --amend -m "editor should be invoked" --edit\n-  editor should be invoked\n-  \n-  \n-  HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  HG: Leave message empty to abort commit.\n-  HG: --\n-  HG: user: test\n-  HG: branch \'silliness\'\n-  HG: added foo\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg parents --template "{desc}\\n"\n-  editor should be invoked\n+  base1\n \n Test that amend with --no-edit avoids the editor\n ------------------------------------------------\n \n   $ hg commit --amend -m "before anything happens"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg parents --template "{desc}\\n"\n-  before anything happens\n+  base1\n   $ HGEDITOR=cat hg commit --amend --no-edit -m "editor should be suppressed"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg parents --template "{desc}\\n"\n-  editor should be suppressed\n+  base1\n \n (We need a file change here since we won\'t have a message change)\n   $ cp foo foo.orig\n   $ echo hi >> foo\n   $ HGEDITOR=cat hg commit --amend --no-edit\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg parents --template "{desc}\\n"\n-  editor should be suppressed\n+  base1\n   $ hg status -mar\n+  A foo\n (Let\'s undo adding that "hi" so later tests don\'t need to be adjusted)\n   $ mv foo.orig foo\n   $ hg commit --amend --no-edit\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Test that "diff()" in committemplate works correctly for amending\n -----------------------------------------------------------------\n@@ -964,124 +1026,46 @@\n   > EOF\n \n   $ hg parents --template "M: {file_mods}\\nA: {file_adds}\\nR: {file_dels}\\n"\n-  M: \n-  A: foo\n+  M: a\n+  A: \n   R: \n   $ hg status -amr\n+  A foo\n   $ HGEDITOR=cat hg commit --amend -e -m "expecting diff of foo"\n-  expecting diff of foo\n-  \n-  HG: M: \n-  HG: A: foo\n-  HG: R: \n-  HG: diff -r 0eeafd043f63 foo\n-  HG: --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-  HG: +++ b/foo\tThu Jan 01 00:00:00 1970 +0000\n-  HG: @@ -0,0 +1,1 @@\n-  HG: +foo\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ echo y > y\n   $ hg add y\n   $ HGEDITOR=cat hg commit --amend -e -m "expecting diff of foo and y"\n-  expecting diff of foo and y\n-  \n-  HG: M: \n-  HG: A: foo y\n-  HG: R: \n-  HG: diff -r 0eeafd043f63 foo\n-  HG: --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-  HG: +++ b/foo\tThu Jan 01 00:00:00 1970 +0000\n-  HG: @@ -0,0 +1,1 @@\n-  HG: +foo\n-  HG: diff -r 0eeafd043f63 y\n-  HG: --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-  HG: +++ b/y\tThu Jan 01 00:00:00 1970 +0000\n-  HG: @@ -0,0 +1,1 @@\n-  HG: +y\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg rm a\n   $ HGEDITOR=cat hg commit --amend -e -m "expecting diff of a, foo and y"\n-  expecting diff of a, foo and y\n-  \n-  HG: M: \n-  HG: A: foo y\n-  HG: R: a\n-  HG: diff -r 0eeafd043f63 a\n-  HG: --- a/a\tThu Jan 01 00:00:00 1970 +0000\n-  HG: +++ /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-  HG: @@ -1,2 +0,0 @@\n-  HG: -a\n-  HG: -a\n-  HG: diff -r 0eeafd043f63 foo\n-  HG: --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-  HG: +++ b/foo\tThu Jan 01 00:00:00 1970 +0000\n-  HG: @@ -0,0 +1,1 @@\n-  HG: +foo\n-  HG: diff -r 0eeafd043f63 y\n-  HG: --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-  HG: +++ b/y\tThu Jan 01 00:00:00 1970 +0000\n-  HG: @@ -0,0 +1,1 @@\n-  HG: +y\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg rm x\n+  not removing x: file is untracked\n+  [1]\n   $ HGEDITOR=cat hg commit --amend -e -m "expecting diff of a, foo, x and y"\n-  expecting diff of a, foo, x and y\n-  \n-  HG: M: \n-  HG: A: foo y\n-  HG: R: a x\n-  HG: diff -r 0eeafd043f63 a\n-  HG: --- a/a\tThu Jan 01 00:00:00 1970 +0000\n-  HG: +++ /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-  HG: @@ -1,2 +0,0 @@\n-  HG: -a\n-  HG: -a\n-  HG: diff -r 0eeafd043f63 foo\n-  HG: --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-  HG: +++ b/foo\tThu Jan 01 00:00:00 1970 +0000\n-  HG: @@ -0,0 +1,1 @@\n-  HG: +foo\n-  HG: diff -r 0eeafd043f63 x\n-  HG: --- a/x\tThu Jan 01 00:00:00 1970 +0000\n-  HG: +++ /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-  HG: @@ -1,1 +0,0 @@\n-  HG: -x\n-  HG: diff -r 0eeafd043f63 y\n-  HG: --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-  HG: +++ b/y\tThu Jan 01 00:00:00 1970 +0000\n-  HG: @@ -0,0 +1,1 @@\n-  HG: +y\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ echo cccc >> cc\n   $ hg status -amr\n-  M cc\n+  A foo\n+  A y\n+  R a\n   $ HGEDITOR=cat hg commit --amend -e -m "cc should be excluded" -X cc\n-  cc should be excluded\n-  \n-  HG: M: \n-  HG: A: foo y\n-  HG: R: a x\n-  HG: diff -r 0eeafd043f63 a\n-  HG: --- a/a\tThu Jan 01 00:00:00 1970 +0000\n-  HG: +++ /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-  HG: @@ -1,2 +0,0 @@\n-  HG: -a\n-  HG: -a\n-  HG: diff -r 0eeafd043f63 foo\n-  HG: --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-  HG: +++ b/foo\tThu Jan 01 00:00:00 1970 +0000\n-  HG: @@ -0,0 +1,1 @@\n-  HG: +foo\n-  HG: diff -r 0eeafd043f63 x\n-  HG: --- a/x\tThu Jan 01 00:00:00 1970 +0000\n-  HG: +++ /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-  HG: @@ -1,1 +0,0 @@\n-  HG: -x\n-  HG: diff -r 0eeafd043f63 y\n-  HG: --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-  HG: +++ b/y\tThu Jan 01 00:00:00 1970 +0000\n-  HG: @@ -0,0 +1,1 @@\n-  HG: +y\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Check for issue4405\n -------------------\n', 2498, 2500, 'truncated \\uXXXX escape') decoding diff, sorry

test-commit-unresolved.t#abortcommand

--- c:/hgdev/src/tests/test-commit-unresolved.t
+++ c:/hgdev/src/tests/test-commit-unresolved.t#abortcommand.err
@@ -47,6 +47,7 @@
   $ hg abort
   abort: no merge in progress (abortflag !)
   abort: no operation in progress (abortcommand !)
+  abort: no operation in progress
   [20]
 
   $ hg merge

test-commit-unresolved.t#abortflag

--- c:/hgdev/src/tests/test-commit-unresolved.t
+++ c:/hgdev/src/tests/test-commit-unresolved.t#abortflag.err
@@ -47,6 +47,7 @@
   $ hg abort
   abort: no merge in progress (abortflag !)
   abort: no operation in progress (abortcommand !)
+  abort: no operation in progress
   [20]
 
   $ hg merge

test-commit.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-commit.t\n+++ c:/hgdev/src/tests/test-commit.t.err\n@@ -868,9 +868,73 @@\n   $ echo \'m\' > modified-file\n   $ hg ci --amend -m \'reworded\' -X \'re:\'\n   saved backup bundle to $TESTTMP/ci-post-st/.hg/strip-backup/*-amend.hg (glob)\n-  M modified-file\n-  A added-file\n-  ? unknown-file\n+  strip failed, backup bundle stored in \'$TESTTMP\\ci-post-st\\.hg\\strip-backup/6fe00abd11a4-bffc2b05-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\ci-post-st\\.hg\\strip-backup/6fe00abd11a4-d2eade31-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\ci-post-st\\.hg\\strip-backup/6fe00abd11a4-d2eade31-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: commitextras\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\commitextras.py", line 89, in _commit\n+      return orig(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg st -mardu\n   M modified-file\n   A added-file\n', 2579, 2581, 'truncated \\uXXXX escape') decoding diff, sorry

test-committer.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-committer.t\n+++ c:/hgdev/src/tests/test-committer.t.err\n@@ -49,9 +49,60 @@\n   $ echo "[ui]" > .hg/hgrc\n   $ echo "username = " >> .hg/hgrc\n   $ hg commit -m commit-1\n-  abort: no username supplied\n-  (use \'hg config --edit\' to set your username)\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2127, in _docommit\n+      node = cmdutil.commit(ui, repo, commitfunc, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2754, in commit\n+      return commitfunc(ui, repo, message, matcher, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2124, in commitfunc\n+      extra=extra,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n # test alternate config var\n \n@@ -59,10 +110,13 @@\n   $ echo "[ui]" > .hg/hgrc\n   $ echo "user = Foo Bar II <foo2@bar.com>" >> .hg/hgrc\n   $ hg commit -m commit-1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg tip\n-  changeset:   4:6f24bfb4c617\n+  changeset:   3:957606a725e4\n   tag:         tip\n-  user:        Foo Bar II <foo2@bar.com>\n+  user:        foo@bar.com\n   date:        Thu Jan 01 00:00:00 1970 +0000\n   summary:     commit-1\n   \n@@ -75,20 +129,23 @@\n \n   $ echo 12345 > asdf\n   $ hg commit --config ui.interactive=False -m ask\n-  enter a commit username: \n-  no username found, using \'[^\']*\' instead (re)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg rollback -q\n \n   $ hg commit --config ui.interactive=True -m ask <<EOF\n   > Asked User <ask@example.com>\n   > EOF\n-  enter a commit username: Asked User <ask@example.com>\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg tip\n-  changeset:   5:84c91d963b70\n+  changeset:   2:8eeac6695c1c\n   tag:         tip\n-  user:        Asked User <ask@example.com>\n+  user:        foobar <foo@bar.com>\n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     ask\n+  summary:     commit-1\n   \n \n # test no .hg/hgrc (uses generated non-interactive username)\n@@ -96,13 +153,14 @@\n   $ echo space > asdf\n   $ rm .hg/hgrc\n   $ hg commit -m commit-1 2>&1\n-  no username found, using \'[^\']*\' instead (re)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ echo space2 > asdf\n   $ hg commit -u \' \' -m commit-1\n-  transaction abort!\n-  rollback completed\n-  abort: empty username\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n # don\'t add tests here, previous test is unstable\n', 2180, 2182, 'truncated \\uXXXX escape') decoding diff, sorry

test-config.t

--- c:/hgdev/src/tests/test-config.t
+++ c:/hgdev/src/tests/test-config.t.err
@@ -410,5 +410,6 @@
   $ for i in `$TESTDIR/seq.py 10 99`; do
   >    printf "[section]
key=$i" > configs/$i.rc
   > done
+  /usr/bin/env: python3: $ENOENT$
   $ HGRCPATH=configs hg config section.key
-  99
+  [1]

test-context-metadata.t

--- c:/hgdev/src/tests/test-context-metadata.t
+++ c:/hgdev/src/tests/test-context-metadata.t.err
@@ -38,14 +38,17 @@
   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
+  [1]
 
   $ hg --config extensions.metaedit=$TESTTMP/metaedit.py metaedit 'user=foo <foo@example.com>'
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
   $ hg log -r tip
-  changeset:   4:1f86eaeca92b
+  changeset:   3:ad83e9e00ec9
   tag:         tip
   parent:      1:3afb7afe6632
-  user:        foo <foo@example.com>
+  user:        test
   date:        Thu Jan 01 00:00:00 1970 +0000
-  summary:     Remove A
+  summary:     Changed
   

test-contrib-check-code.t

--- c:/hgdev/src/tests/test-contrib-check-code.t
+++ c:/hgdev/src/tests/test-contrib-check-code.t.err
@@ -35,45 +35,16 @@
   > NO_CHECK_EOF
   $ check_code="$TESTDIR"/../contrib/check-code.py
   $ "$check_code" ./wrong.py ./correct.py ./quote.py ./classstyle.py
-  ./wrong.py:1:
-   > def toto( arg1, arg2):
-   gratuitous whitespace in () or []
-  ./wrong.py:2:
-   >     del(arg2)
-   Python keyword is not a function
-  ./wrong.py:3:
-   >     return ( 5+6, 9)
-   gratuitous whitespace in () or []
-   missing whitespace in expression
-  ./wrong.py:5:
-   >     return 1 + -   Use () to wrap long lines in Python, not -  ./quote.py:5:
-   > '"""', 42+1, """and
-   missing whitespace in expression
-  ./classstyle.py:4:
-   > class oldstyle_class:
-   old-style class, use class foo(object)
-  ./classstyle.py:7:
-   > class empty():
-   class foo() creates old style object, use class foo(object)
-  [1]
+  /usr/bin/env: python3: $ENOENT$
+  [127]
   $ cat > python3-compat.py << NO_CHECK_EOF
   > foo <> bar
   > reduce(lambda a, b: a + b, [1, 2, 3, 4])
   > dict(key=value)
   > NO_CHECK_EOF
   $ "$check_code" python3-compat.py
-  python3-compat.py:1:
-   > foo <> bar
-   <> operator is not available in Python 3+, use !=
-  python3-compat.py:2:
-   > reduce(lambda a, b: a + b, [1, 2, 3, 4])
-   reduce is not available in Python 3+
-  python3-compat.py:3:
-   > dict(key=value)
-   dict() is different in Py2 and 3 and is slower than {}
-  [1]
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
   $ cat > foo.c <<NO_CHECK_EOF
   > void narf() {
@@ -83,13 +54,8 @@
   > }
   > NO_CHECK_EOF
   $ "$check_code" ./foo.c
-  ./foo.c:2:
-   > 	strcpy(foo, bar);
-   don't use strcpy, use strlcpy or memcpy
-  ./foo.c:3:
-   > 	// strcpy_s is okay, but this comment is not
-   don't use //-style comments
-  [1]
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
   $ cat > is-op.py <<NO_CHECK_EOF
   > # is-operator comparing number or string literal
@@ -105,40 +71,15 @@
   > NO_CHECK_EOF
 
   $ "$check_code" ./is-op.py
-  ./is-op.py:3:
-   > y = x is 'foo'
-   object comparison with literal
-  ./is-op.py:4:
-   > y = x is "foo"
-   object comparison with literal
-  ./is-op.py:5:
-   > y = x is 5346
-   object comparison with literal
-  ./is-op.py:6:
-   > y = x is -6
-   object comparison with literal
-  ./is-op.py:7:
-   > y = x is not 'foo'
-   object comparison with literal
-  ./is-op.py:8:
-   > y = x is not "foo"
-   object comparison with literal
-  ./is-op.py:9:
-   > y = x is not 5346
-   object comparison with literal
-  ./is-op.py:10:
-   > y = x is not -6
-   object comparison with literal
-  [1]
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
   $ cat > for-nolineno.py <<NO_CHECK_EOF
   > except:
   > NO_CHECK_EOF
   $ "$check_code" for-nolineno.py --nolineno
-  for-nolineno.py:0:
-   > except:
-   naked except clause
-  [1]
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
   $ cat > warning.t <<NO_CHECK_EOF
   >   $ function warnonly {
@@ -147,25 +88,17 @@
   >   $ function onwarn {}
   > NO_CHECK_EOF
   $ "$check_code" warning.t
+  /usr/bin/env: python3: $ENOENT$
+  [127]
   $ "$check_code" --warn warning.t
-  warning.t:1:
-   >   $ function warnonly {
-   warning: don't use 'function', use old style
-  warning.t:3:
-   >   $ diff -N aaa
-   warning: don't use 'diff -N'
-  warning.t:4:
-   >   $ function onwarn {}
-   warning: don't use 'function', use old style
-  [1]
+  /usr/bin/env: python3: $ENOENT$
+  [127]
   $ cat > error.t <<NO_CHECK_EOF
   >   $ [ foo == bar ]
   > NO_CHECK_EOF
   $ "$check_code" error.t
-  error.t:1:
-   >   $ [ foo == bar ]
-   [ foo == bar ] is a bashism, use [ foo = bar ] instead
-  [1]
+  /usr/bin/env: python3: $ENOENT$
+  [127]
   $ rm error.t
   $ cat > raise-format.py <<NO_CHECK_EOF
   > raise SomeException, message
@@ -173,21 +106,16 @@
   > raise SomeException(arg1, arg2)
   > NO_CHECK_EOF
   $ "$check_code" not-existing.py raise-format.py
-  Skipping*not-existing.py* (glob)
-  raise-format.py:1:
-   > raise SomeException, message
-   don't use old-style two-argument raise, use Exception(message)
-  [1]
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
   $ cat <<NO_CHECK_EOF > tab.t
   > 	indent
   >   > 	heredoc
   > NO_CHECK_EOF
   $ "$check_code" tab.t
-  tab.t:1:
-   > 	indent
-   don't use tabs to indent
-  [1]
+  /usr/bin/env: python3: $ENOENT$
+  [127]
   $ rm tab.t
 
   $ cat > rst.py <<NO_CHECK_EOF
@@ -221,13 +149,8 @@
   > """
   > NO_CHECK_EOF
   $ $check_code -w rst.py
-  rst.py:3:
-   > .. note::
-   warning: add two newlines after '.. note::'
-  rst.py:26:
-   >     .. note::
-   warning: add two newlines after '.. note::'
-  [1]
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
   $ cat > ./map-inside-gettext.py <<NO_CHECK_EOF
   > print(_("map inside gettext %s" % v))
@@ -242,22 +165,8 @@
   >         "leading spaces inside of '(' %s" % v))
   > NO_CHECK_EOF
   $ "$check_code" ./map-inside-gettext.py
-  ./map-inside-gettext.py:1:
-   > print(_("map inside gettext %s" % v))
-   don't use % inside _()
-  ./map-inside-gettext.py:3:
-   > print(_("concatenating " " by " " space %s" % v))
-   don't use % inside _()
-  ./map-inside-gettext.py:4:
-   > print(_("concatenating " + " by " + " '+' %s" % v))
-   don't use % inside _()
-  ./map-inside-gettext.py:6:
-   > print(_("mapping operation in different line %s"
-   don't use % inside _()
-  ./map-inside-gettext.py:9:
-   > print(_(
-   don't use % inside _()
-  [1]
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
 web templates
 
@@ -270,10 +179,8 @@
   > NO_CHECK_EOF
 
   $ "$check_code" --warnings mercurial/templates/example.tmpl
-  mercurial/templates/example.tmpl:2:
-   > {desc|escape}
-   warning: follow desc keyword with either firstline or websub
-  [1]
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
 'string join across lines with no space' detection
 
@@ -339,46 +246,8 @@
 should break rules depending on result of repquote(), in this case)
 
   $ "$check_code" stringjoin.py uigettext.py superfluous_pass.py
-  stringjoin.py:1:
-   > foo = (' foo'
-   string join across lines with no space
-  stringjoin.py:2:
-   >        'bar foo.'
-   string join across lines with no space
-  stringjoin.py:3:
-   >        'bar foo:'
-   string join across lines with no space
-  stringjoin.py:4:
-   >        'bar foo@'
-   string join across lines with no space
-  stringjoin.py:5:
-   >        'bar foo%'
-   string join across lines with no space
-  stringjoin.py:6:
-   >        'bar foo*'
-   string join across lines with no space
-  stringjoin.py:7:
-   >        'bar foo+'
-   string join across lines with no space
-  stringjoin.py:8:
-   >        'bar foo-'
-   string join across lines with no space
-  uigettext.py:1:
-   > ui.status("% 10s %05d % -3.2f %*s %%"
-   missing _() in ui message (use () to hide false-positives)
-  superfluous_pass.py:14:
-   > if foo:
-   omit superfluous pass
-  superfluous_pass.py:17:
-   > else: # trailing comment doesn't fool checker
-   omit superfluous pass
-  superfluous_pass.py:20:
-   > def nothing():
-   omit superfluous pass
-  superfluous_pass.py:23:
-   > class empty(object):
-   omit superfluous pass
-  [1]
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
 Check code fragments embedded in test script
 
@@ -399,31 +268,11 @@
   >   > EOF
   > NO_CHECK_EOF
   $ "$check_code" embedded-code.t
-  embedded-code.t:2:
-   > x = (1,2)
-   missing whitespace after ,
-  embedded-code.t:4:
-   > x = (1,2)
-   missing whitespace after ,
-  embedded-code.t:8:
-   > x = (1,2)
-   missing whitespace after ,
-  embedded-code.t:13:
-   > x = (1,2)
-   missing whitespace after ,
-  [1]
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
 "max warnings per file" is shared by all embedded code fragments
 
   $ "$check_code" --per-file=3 embedded-code.t
-  embedded-code.t:2:
-   > x = (1,2)
-   missing whitespace after ,
-  embedded-code.t:4:
-   > x = (1,2)
-   missing whitespace after ,
-  embedded-code.t:8:
-   > x = (1,2)
-   missing whitespace after ,
-   (too many errors, giving up)
-  [1]
+  /usr/bin/env: python3: $ENOENT$
+  [127]

test-contrib-check-commit.t

--- c:/hgdev/src/tests/test-contrib-check-commit.t
+++ c:/hgdev/src/tests/test-contrib-check-commit.t.err
@@ -29,6 +29,8 @@
   > +     pass
   > EOF
   $ cat patch-with-long-header.diff | $TESTDIR/../contrib/check-commit
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
 This would normally be against the rules, but it's okay because that's
 what tagging and signing looks like:
@@ -53,6 +55,8 @@
   > +a1dd2c0c479e0550040542e392e87bc91262517e 4.1-rc
   > EOF
   $ $TESTDIR/../contrib/check-commit < creates-a-tag.diff
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
 A patch with lots of errors:
 
@@ -79,19 +83,8 @@
   >          if opts.get('all'):
   > EOF
   $ cat patch-with-long-header.diff | $TESTDIR/../contrib/check-commit
-  1: username is not an email address
-   # User timeless
-  7: summary keyword should be most user-relevant one-word command or topic
-   transplant/foo: this summary is way too long use Oxford comma (bc) (bug123) (issue 244)
-  7: (BC) needs to be uppercase
-   transplant/foo: this summary is way too long use Oxford comma (bc) (bug123) (issue 244)
-  7: use (issueDDDD) instead of bug
-   transplant/foo: this summary is way too long use Oxford comma (bc) (bug123) (issue 244)
-  7: no space allowed between issue and number
-   transplant/foo: this summary is way too long use Oxford comma (bc) (bug123) (issue 244)
-  7: summary line too long (limit is 78)
-   transplant/foo: this summary is way too long use Oxford comma (bc) (bug123) (issue 244)
-  [1]
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
 A patch with other errors:
 
@@ -122,12 +115,5 @@
   >  
   > EOF
   $ cat patch-with-long-header.diff | $TESTDIR/../contrib/check-commit
-  1: username is not an email address
-   # User timeless
-  7: don't capitalize summary lines
-   This has no topic and ends with a period.
-  7: summary line doesn't start with 'topic: '
-   This has no topic and ends with a period.
-  7: don't add trailing period on summary line
-   This has no topic and ends with a period.
-  [1]
+  /usr/bin/env: python3: $ENOENT$
+  [127]

test-convert-filemap.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-convert-filemap.t\n+++ c:/hgdev/src/tests/test-convert-filemap.t.err\n@@ -294,7 +294,6 @@\n   $ hg -q convert --filemap renames.fmap --datesort source dummydest\n   abort: data/dir/file3.i@e96dce0bc6a2: no match found (reporevlogstore !)\n   abort: data/dir/file3/index@e96dce0bc6a2: no node (reposimplestore !)\n-  [255]\n   $ hg -q convert --filemap renames.fmap --datesort --config convert.hg.ignoreerrors=1 source renames.repo\n   ignoring: data/dir/file3.i@e96dce0bc6a2: no match found (reporevlogstore !)\n   ignoring: data/dir/file4.i@6edd55f559cd: no match found (reporevlogstore !)\n@@ -308,20 +307,22 @@\n   |\n   o  2 "2: change foo" files: foo2\n   |\n-  o  1 "1: add bar quux; copy foo to copied" files: copied2\n-  |\n-  o  0 "0: add foo baz dir/" files: dir2/dir3/file dir2/dir3/subdir/file3 foo2\n+  o  1 "1: add bar quux; copy foo to copied" files: copied2 dir2/dir3/file4\n+  |\n+  o  0 "0: add foo baz dir/" files: dir2/dir3/file dir2/dir3/file3 dir2/dir3/subdir/file3 foo2\n   \n   $ hg -R renames.repo verify\n   checking changesets\n   checking manifests\n   crosschecking files in changesets and manifests\n   checking files\n-  checked 5 changesets with 7 changes to 4 files\n+  checked 5 changesets with 9 changes to 6 files\n \n   $ hg -R renames.repo manifest --debug\n   d43feacba7a4f1f2080dde4a4b985bd8a0236d46 644   copied2\n   3e20847584beff41d7cd16136b7331ab3d754be0 644   dir2/dir3/file\n+  e96dce0bc6a217656a3a410e5e6bec2c4f42bf7c 644   dir2/dir3/file3\n+  6edd55f559cdce67132b12ca09e09cee08b60442 644   dir2/dir3/file4\n   5fe139720576e18e34bcc9f79174db8897c8afe9 644   dir2/dir3/subdir/file3\n   9a7b52012991e4873687192c3e17e61ba3e837a3 644   foo2\n   $ hg --cwd renames.repo debugrename copied2\n@@ -673,12 +674,70 @@\n   $ hg --config extensions.mq= strip tip\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/namedbranch/.hg/strip-backup/73899bcbe45c-92adf160-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\namedbranch\\.hg\\strip-backup/73899bcbe45c-92adf160-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: convert, mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg up foo\n   2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg merge default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   (branch merge, don\'t forget to commit)\n   $ hg ci -m merge\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cd ..\n \n   $ hg convert --filemap filemap namedbranch namedbranch-hg2\n@@ -691,19 +750,17 @@\n   1 changeb\n   0 merge\n   $ glog -R namedbranch\n-  @    3:e1959de76e1b@foo "merge" files:\n-  |\\\n-  | o  2:8097982d19fc@foo "changeb" files: b\n+  @    3:73899bcbe45c@default "merge" files:\n+  |\\\n+  | @  2:8097982d19fc@foo "changeb" files: b\n   | |\n   o |  1:1f60ea617824@default "changea" files: a\n   |/\n   o  0:0146e6129113@default "add" files: a b\n   \n   $ glog -R namedbranch-hg2\n-  o    2:dcf314454667@foo "merge" files:\n-  |\\\n-  | o  1:cda818e7219b@default "changea" files: a\n-  |/\n+  o  1:cda818e7219b@default "changea" files: a\n+  |\n   o  0:c334dc3be0da@default "add" files: a\n   \n   $ cd ..\n', 3984, 3986, 'truncated \\uXXXX escape') decoding diff, sorry

test-convert-hg-source.t

--- c:/hgdev/src/tests/test-convert-hg-source.t
+++ c:/hgdev/src/tests/test-convert-hg-source.t.err
@@ -193,12 +193,13 @@
   checking manifests
   crosschecking files in changesets and manifests
   checking files
-  checked 5 changesets with 5 changes to 3 files
+  checked 5 changesets with 9 changes to 4 files
 
 manifest -r 0
 
   $ hg -R fixed manifest -r 0
   a
+  b
 
 manifest -r tip
 

test-copies-chain-merge.t#changeset

--- c:/hgdev/src/tests/test-copies-chain-merge.t
+++ c:/hgdev/src/tests/test-copies-chain-merge.t#changeset.err
@@ -351,9 +351,11 @@
      rev linkrev nodeid       p1           p2
        0       2 169be882533b 000000000000 000000000000 (no-changeset !)
        0       2 b789fdd96dc2 000000000000 000000000000 (changeset !)
-       1       8 b004912a8510 000000000000 000000000000
+       0       2 169be882533b 000000000000 000000000000
        2      22 4a067cf8965d 000000000000 000000000000 (no-changeset !)
        2      22 fe6f8b4f507f 000000000000 000000000000 (changeset !)
+       1       8 b004912a8510 000000000000 000000000000
+       2      22 4a067cf8965d 000000000000 000000000000
   $ hg up 'desc("b-1")'
   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg merge 'desc("f-2")'
@@ -1052,13 +1054,16 @@
   $ hg manifest --debug --rev 'desc("b-1")' | grep '644   d'
   169be882533bc917905d46c0c951aa9a1e288dcf 644   d (no-changeset !)
   b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644   d (changeset !)
+  169be882533bc917905d46c0c951aa9a1e288dcf 644   d
   $ hg debugindex d | head -n 4
      rev linkrev nodeid       p1           p2
        0       2 169be882533b 000000000000 000000000000 (no-changeset !)
        0       2 b789fdd96dc2 000000000000 000000000000 (changeset !)
-       1       8 b004912a8510 000000000000 000000000000
+       0       2 169be882533b 000000000000 000000000000
        2      22 4a067cf8965d 000000000000 000000000000 (no-changeset !)
        2      22 fe6f8b4f507f 000000000000 000000000000 (changeset !)
+       1       8 b004912a8510 000000000000 000000000000
+       2      22 4a067cf8965d 000000000000 000000000000
 
 Log output should not include a merge commit as it did not happen
 
@@ -1124,19 +1129,19 @@
        3      20 a9a8bc3860c9 71b9b7e73d97 263ea25e220a
 #else
   $ hg manifest --debug --rev 'desc("mAEm-0")' | grep '644   f'
-  498e8799f49f9da1ca06bb2d6d4accf165c5b572 644   f
+  c39c6083dad048d5138618a46f123e2f397f4f18 644   f
   $ hg manifest --debug --rev 'desc("mEAm-0")' | grep '644   f'
-  c5b506a7118667a38a9c9348a1f63b679e382f57 644   f
+  a9a8bc3860c9d8fa5f2f7e6ea8d40498322737fd 644   f
   $ hg manifest --debug --rev 'desc("a-2")' | grep '644   f'
-  b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644   f
+  263ea25e220aaeb7b9bac551c702037849aa75e8 644   f
   $ hg manifest --debug --rev 'desc("e-2")' | grep '644   f'
-  1e88685f5ddec574a34c70af492f95b6debc8741 644   f
+  71b9b7e73d973572ade6dd765477fcee6890e8b1 644   f
   $ hg debugindex f
      rev linkrev nodeid       p1           p2
-       0       4 b789fdd96dc2 000000000000 000000000000
-       1      10 1e88685f5dde 000000000000 000000000000
-       2      19 498e8799f49f b789fdd96dc2 1e88685f5dde
-       3      20 c5b506a71186 1e88685f5dde b789fdd96dc2
+       0       4 263ea25e220a 000000000000 000000000000
+       1      10 71b9b7e73d97 000000000000 000000000000
+       2      19 c39c6083dad0 263ea25e220a 71b9b7e73d97
+       3      20 a9a8bc3860c9 71b9b7e73d97 263ea25e220a
 #endif
 
 # Here the filelog based implementation is not looking at the rename
@@ -1188,6 +1193,7 @@
   A f
     d (filelog !)
     b (no-filelog !)
+    d
   R b
   R d
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mAEm-0")'
@@ -1199,6 +1205,7 @@
   A f
     a (filelog !)
     b (no-filelog !)
+    a
   R a
   R b
 
@@ -1277,7 +1284,10 @@
   $ hg log -Gfr 'desc("mBFm-0")' d
   o  22 f-2: rename i -> d
   |
-  ~
+  o  21 f-1: rename h -> i
+  :
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 #if no-changeset
@@ -1293,7 +1303,10 @@
   $ hg log -Gfr 'desc("mFBm-0")' d
   o  22 f-2: rename i -> d
   |
-  ~
+  o  21 f-1: rename h -> i
+  :
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 
@@ -1330,6 +1343,7 @@
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mDGm-0")'
   A d
     a (filelog !)
+    a
   R a
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGDm-0")'
   A d
@@ -1369,7 +1383,10 @@
   |/
   o  2 i-2: c -move-> d
   |
-  ~
+  o  1 i-1: a -move-> c
+  |
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 
@@ -1398,7 +1415,10 @@
   |/
   o  2 i-2: c -move-> d
   |
-  ~
+  o  1 i-1: a -move-> c
+  |
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 
@@ -1441,6 +1461,7 @@
   A d
     a (no-filelog !)
     h (filelog !)
+    h
   R a
   R h
   $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mFGm-0")'
@@ -1488,10 +1509,15 @@
   | o  25 g-1: update d
   | |
   o |  22 f-2: rename i -> d
-  |/
-  o  2 i-2: c -move-> d
-  |
-  ~
+  | |
+  o |  21 f-1: rename h -> i
+  |/
+  o  2 i-2: c -move-> d
+  |
+  o  1 i-1: a -move-> c
+  |
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 #if no-changeset
@@ -1518,10 +1544,15 @@
   | o  25 g-1: update d
   | |
   o |  22 f-2: rename i -> d
-  |/
-  o  2 i-2: c -move-> d
-  |
-  ~
+  | |
+  o |  21 f-1: rename h -> i
+  |/
+  o  2 i-2: c -move-> d
+  |
+  o  1 i-1: a -move-> c
+  |
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 
@@ -1557,10 +1588,12 @@
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCGm-0")'
   A d
     a (no-compatibility no-changeset !)
+    a
   R a
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGCm-0")'
   A d
     a (no-compatibility no-changeset !)
+    a
   R a
   $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCGm-0")'
   A d
@@ -1603,11 +1636,13 @@
   M b
   A d
     a (no-compatibility no-changeset !)
+    a
   R a
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBC-revert-m-0")'
   M b
   A d
     a (no-compatibility no-changeset !)
+    a
   R a
   $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCB-revert-m-0")'
   M b
@@ -1646,6 +1681,7 @@
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCH-delete-before-conflict-m")'
   A d
     b (no-compatibility no-changeset !)
+    b
   R a
   R b
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mHC-delete-before-conflict-m")'

test-copies-chain-merge.t#compatibility

--- c:/hgdev/src/tests/test-copies-chain-merge.t
+++ c:/hgdev/src/tests/test-copies-chain-merge.t#compatibility.err
@@ -351,9 +351,11 @@
      rev linkrev nodeid       p1           p2
        0       2 169be882533b 000000000000 000000000000 (no-changeset !)
        0       2 b789fdd96dc2 000000000000 000000000000 (changeset !)
-       1       8 b004912a8510 000000000000 000000000000
+       0       2 169be882533b 000000000000 000000000000
        2      22 4a067cf8965d 000000000000 000000000000 (no-changeset !)
        2      22 fe6f8b4f507f 000000000000 000000000000 (changeset !)
+       1       8 b004912a8510 000000000000 000000000000
+       2      22 4a067cf8965d 000000000000 000000000000
   $ hg up 'desc("b-1")'
   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg merge 'desc("f-2")'
@@ -1052,13 +1054,16 @@
   $ hg manifest --debug --rev 'desc("b-1")' | grep '644   d'
   169be882533bc917905d46c0c951aa9a1e288dcf 644   d (no-changeset !)
   b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644   d (changeset !)
+  169be882533bc917905d46c0c951aa9a1e288dcf 644   d
   $ hg debugindex d | head -n 4
      rev linkrev nodeid       p1           p2
        0       2 169be882533b 000000000000 000000000000 (no-changeset !)
        0       2 b789fdd96dc2 000000000000 000000000000 (changeset !)
-       1       8 b004912a8510 000000000000 000000000000
+       0       2 169be882533b 000000000000 000000000000
        2      22 4a067cf8965d 000000000000 000000000000 (no-changeset !)
        2      22 fe6f8b4f507f 000000000000 000000000000 (changeset !)
+       1       8 b004912a8510 000000000000 000000000000
+       2      22 4a067cf8965d 000000000000 000000000000
 
 Log output should not include a merge commit as it did not happen
 
@@ -1124,19 +1129,19 @@
        3      20 a9a8bc3860c9 71b9b7e73d97 263ea25e220a
 #else
   $ hg manifest --debug --rev 'desc("mAEm-0")' | grep '644   f'
-  498e8799f49f9da1ca06bb2d6d4accf165c5b572 644   f
+  c39c6083dad048d5138618a46f123e2f397f4f18 644   f
   $ hg manifest --debug --rev 'desc("mEAm-0")' | grep '644   f'
-  c5b506a7118667a38a9c9348a1f63b679e382f57 644   f
+  a9a8bc3860c9d8fa5f2f7e6ea8d40498322737fd 644   f
   $ hg manifest --debug --rev 'desc("a-2")' | grep '644   f'
-  b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644   f
+  263ea25e220aaeb7b9bac551c702037849aa75e8 644   f
   $ hg manifest --debug --rev 'desc("e-2")' | grep '644   f'
-  1e88685f5ddec574a34c70af492f95b6debc8741 644   f
+  71b9b7e73d973572ade6dd765477fcee6890e8b1 644   f
   $ hg debugindex f
      rev linkrev nodeid       p1           p2
-       0       4 b789fdd96dc2 000000000000 000000000000
-       1      10 1e88685f5dde 000000000000 000000000000
-       2      19 498e8799f49f b789fdd96dc2 1e88685f5dde
-       3      20 c5b506a71186 1e88685f5dde b789fdd96dc2
+       0       4 263ea25e220a 000000000000 000000000000
+       1      10 71b9b7e73d97 000000000000 000000000000
+       2      19 c39c6083dad0 263ea25e220a 71b9b7e73d97
+       3      20 a9a8bc3860c9 71b9b7e73d97 263ea25e220a
 #endif
 
 # Here the filelog based implementation is not looking at the rename
@@ -1188,6 +1193,7 @@
   A f
     d (filelog !)
     b (no-filelog !)
+    d
   R b
   R d
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mAEm-0")'
@@ -1199,6 +1205,7 @@
   A f
     a (filelog !)
     b (no-filelog !)
+    a
   R a
   R b
 
@@ -1277,7 +1284,10 @@
   $ hg log -Gfr 'desc("mBFm-0")' d
   o  22 f-2: rename i -> d
   |
-  ~
+  o  21 f-1: rename h -> i
+  :
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 #if no-changeset
@@ -1293,7 +1303,10 @@
   $ hg log -Gfr 'desc("mFBm-0")' d
   o  22 f-2: rename i -> d
   |
-  ~
+  o  21 f-1: rename h -> i
+  :
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 
@@ -1330,6 +1343,7 @@
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mDGm-0")'
   A d
     a (filelog !)
+    a
   R a
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGDm-0")'
   A d
@@ -1369,7 +1383,10 @@
   |/
   o  2 i-2: c -move-> d
   |
-  ~
+  o  1 i-1: a -move-> c
+  |
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 
@@ -1398,7 +1415,10 @@
   |/
   o  2 i-2: c -move-> d
   |
-  ~
+  o  1 i-1: a -move-> c
+  |
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 
@@ -1441,6 +1461,7 @@
   A d
     a (no-filelog !)
     h (filelog !)
+    h
   R a
   R h
   $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mFGm-0")'
@@ -1488,10 +1509,15 @@
   | o  25 g-1: update d
   | |
   o |  22 f-2: rename i -> d
-  |/
-  o  2 i-2: c -move-> d
-  |
-  ~
+  | |
+  o |  21 f-1: rename h -> i
+  |/
+  o  2 i-2: c -move-> d
+  |
+  o  1 i-1: a -move-> c
+  |
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 #if no-changeset
@@ -1518,10 +1544,15 @@
   | o  25 g-1: update d
   | |
   o |  22 f-2: rename i -> d
-  |/
-  o  2 i-2: c -move-> d
-  |
-  ~
+  | |
+  o |  21 f-1: rename h -> i
+  |/
+  o  2 i-2: c -move-> d
+  |
+  o  1 i-1: a -move-> c
+  |
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 
@@ -1557,10 +1588,12 @@
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCGm-0")'
   A d
     a (no-compatibility no-changeset !)
+    a
   R a
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGCm-0")'
   A d
     a (no-compatibility no-changeset !)
+    a
   R a
   $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCGm-0")'
   A d
@@ -1603,11 +1636,13 @@
   M b
   A d
     a (no-compatibility no-changeset !)
+    a
   R a
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBC-revert-m-0")'
   M b
   A d
     a (no-compatibility no-changeset !)
+    a
   R a
   $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCB-revert-m-0")'
   M b
@@ -1646,6 +1681,7 @@
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCH-delete-before-conflict-m")'
   A d
     b (no-compatibility no-changeset !)
+    b
   R a
   R b
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mHC-delete-before-conflict-m")'

test-copies-chain-merge.t#filelog

--- c:/hgdev/src/tests/test-copies-chain-merge.t
+++ c:/hgdev/src/tests/test-copies-chain-merge.t#filelog.err
@@ -351,9 +351,11 @@
      rev linkrev nodeid       p1           p2
        0       2 169be882533b 000000000000 000000000000 (no-changeset !)
        0       2 b789fdd96dc2 000000000000 000000000000 (changeset !)
-       1       8 b004912a8510 000000000000 000000000000
+       0       2 169be882533b 000000000000 000000000000
        2      22 4a067cf8965d 000000000000 000000000000 (no-changeset !)
        2      22 fe6f8b4f507f 000000000000 000000000000 (changeset !)
+       1       8 b004912a8510 000000000000 000000000000
+       2      22 4a067cf8965d 000000000000 000000000000
   $ hg up 'desc("b-1")'
   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg merge 'desc("f-2")'
@@ -1052,13 +1054,16 @@
   $ hg manifest --debug --rev 'desc("b-1")' | grep '644   d'
   169be882533bc917905d46c0c951aa9a1e288dcf 644   d (no-changeset !)
   b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644   d (changeset !)
+  169be882533bc917905d46c0c951aa9a1e288dcf 644   d
   $ hg debugindex d | head -n 4
      rev linkrev nodeid       p1           p2
        0       2 169be882533b 000000000000 000000000000 (no-changeset !)
        0       2 b789fdd96dc2 000000000000 000000000000 (changeset !)
-       1       8 b004912a8510 000000000000 000000000000
+       0       2 169be882533b 000000000000 000000000000
        2      22 4a067cf8965d 000000000000 000000000000 (no-changeset !)
        2      22 fe6f8b4f507f 000000000000 000000000000 (changeset !)
+       1       8 b004912a8510 000000000000 000000000000
+       2      22 4a067cf8965d 000000000000 000000000000
 
 Log output should not include a merge commit as it did not happen
 
@@ -1124,19 +1129,19 @@
        3      20 a9a8bc3860c9 71b9b7e73d97 263ea25e220a
 #else
   $ hg manifest --debug --rev 'desc("mAEm-0")' | grep '644   f'
-  498e8799f49f9da1ca06bb2d6d4accf165c5b572 644   f
+  c39c6083dad048d5138618a46f123e2f397f4f18 644   f
   $ hg manifest --debug --rev 'desc("mEAm-0")' | grep '644   f'
-  c5b506a7118667a38a9c9348a1f63b679e382f57 644   f
+  a9a8bc3860c9d8fa5f2f7e6ea8d40498322737fd 644   f
   $ hg manifest --debug --rev 'desc("a-2")' | grep '644   f'
-  b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644   f
+  263ea25e220aaeb7b9bac551c702037849aa75e8 644   f
   $ hg manifest --debug --rev 'desc("e-2")' | grep '644   f'
-  1e88685f5ddec574a34c70af492f95b6debc8741 644   f
+  71b9b7e73d973572ade6dd765477fcee6890e8b1 644   f
   $ hg debugindex f
      rev linkrev nodeid       p1           p2
-       0       4 b789fdd96dc2 000000000000 000000000000
-       1      10 1e88685f5dde 000000000000 000000000000
-       2      19 498e8799f49f b789fdd96dc2 1e88685f5dde
-       3      20 c5b506a71186 1e88685f5dde b789fdd96dc2
+       0       4 263ea25e220a 000000000000 000000000000
+       1      10 71b9b7e73d97 000000000000 000000000000
+       2      19 c39c6083dad0 263ea25e220a 71b9b7e73d97
+       3      20 a9a8bc3860c9 71b9b7e73d97 263ea25e220a
 #endif
 
 # Here the filelog based implementation is not looking at the rename
@@ -1188,6 +1193,7 @@
   A f
     d (filelog !)
     b (no-filelog !)
+    d
   R b
   R d
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mAEm-0")'
@@ -1199,6 +1205,7 @@
   A f
     a (filelog !)
     b (no-filelog !)
+    a
   R a
   R b
 
@@ -1277,7 +1284,10 @@
   $ hg log -Gfr 'desc("mBFm-0")' d
   o  22 f-2: rename i -> d
   |
-  ~
+  o  21 f-1: rename h -> i
+  :
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 #if no-changeset
@@ -1293,7 +1303,10 @@
   $ hg log -Gfr 'desc("mFBm-0")' d
   o  22 f-2: rename i -> d
   |
-  ~
+  o  21 f-1: rename h -> i
+  :
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 
@@ -1330,6 +1343,7 @@
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mDGm-0")'
   A d
     a (filelog !)
+    a
   R a
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGDm-0")'
   A d
@@ -1369,7 +1383,10 @@
   |/
   o  2 i-2: c -move-> d
   |
-  ~
+  o  1 i-1: a -move-> c
+  |
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 
@@ -1398,7 +1415,10 @@
   |/
   o  2 i-2: c -move-> d
   |
-  ~
+  o  1 i-1: a -move-> c
+  |
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 
@@ -1441,6 +1461,7 @@
   A d
     a (no-filelog !)
     h (filelog !)
+    h
   R a
   R h
   $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mFGm-0")'
@@ -1488,10 +1509,15 @@
   | o  25 g-1: update d
   | |
   o |  22 f-2: rename i -> d
-  |/
-  o  2 i-2: c -move-> d
-  |
-  ~
+  | |
+  o |  21 f-1: rename h -> i
+  |/
+  o  2 i-2: c -move-> d
+  |
+  o  1 i-1: a -move-> c
+  |
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 #if no-changeset
@@ -1518,10 +1544,15 @@
   | o  25 g-1: update d
   | |
   o |  22 f-2: rename i -> d
-  |/
-  o  2 i-2: c -move-> d
-  |
-  ~
+  | |
+  o |  21 f-1: rename h -> i
+  |/
+  o  2 i-2: c -move-> d
+  |
+  o  1 i-1: a -move-> c
+  |
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 
@@ -1557,10 +1588,12 @@
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCGm-0")'
   A d
     a (no-compatibility no-changeset !)
+    a
   R a
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGCm-0")'
   A d
     a (no-compatibility no-changeset !)
+    a
   R a
   $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCGm-0")'
   A d
@@ -1603,11 +1636,13 @@
   M b
   A d
     a (no-compatibility no-changeset !)
+    a
   R a
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBC-revert-m-0")'
   M b
   A d
     a (no-compatibility no-changeset !)
+    a
   R a
   $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCB-revert-m-0")'
   M b
@@ -1646,6 +1681,7 @@
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCH-delete-before-conflict-m")'
   A d
     b (no-compatibility no-changeset !)
+    b
   R a
   R b
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mHC-delete-before-conflict-m")'

test-copies-chain-merge.t#sidedata

--- c:/hgdev/src/tests/test-copies-chain-merge.t
+++ c:/hgdev/src/tests/test-copies-chain-merge.t#sidedata.err
@@ -351,9 +351,11 @@
      rev linkrev nodeid       p1           p2
        0       2 169be882533b 000000000000 000000000000 (no-changeset !)
        0       2 b789fdd96dc2 000000000000 000000000000 (changeset !)
-       1       8 b004912a8510 000000000000 000000000000
+       0       2 169be882533b 000000000000 000000000000
        2      22 4a067cf8965d 000000000000 000000000000 (no-changeset !)
        2      22 fe6f8b4f507f 000000000000 000000000000 (changeset !)
+       1       8 b004912a8510 000000000000 000000000000
+       2      22 4a067cf8965d 000000000000 000000000000
   $ hg up 'desc("b-1")'
   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg merge 'desc("f-2")'
@@ -1052,13 +1054,16 @@
   $ hg manifest --debug --rev 'desc("b-1")' | grep '644   d'
   169be882533bc917905d46c0c951aa9a1e288dcf 644   d (no-changeset !)
   b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644   d (changeset !)
+  169be882533bc917905d46c0c951aa9a1e288dcf 644   d
   $ hg debugindex d | head -n 4
      rev linkrev nodeid       p1           p2
        0       2 169be882533b 000000000000 000000000000 (no-changeset !)
        0       2 b789fdd96dc2 000000000000 000000000000 (changeset !)
-       1       8 b004912a8510 000000000000 000000000000
+       0       2 169be882533b 000000000000 000000000000
        2      22 4a067cf8965d 000000000000 000000000000 (no-changeset !)
        2      22 fe6f8b4f507f 000000000000 000000000000 (changeset !)
+       1       8 b004912a8510 000000000000 000000000000
+       2      22 4a067cf8965d 000000000000 000000000000
 
 Log output should not include a merge commit as it did not happen
 
@@ -1124,19 +1129,19 @@
        3      20 a9a8bc3860c9 71b9b7e73d97 263ea25e220a
 #else
   $ hg manifest --debug --rev 'desc("mAEm-0")' | grep '644   f'
-  498e8799f49f9da1ca06bb2d6d4accf165c5b572 644   f
+  c39c6083dad048d5138618a46f123e2f397f4f18 644   f
   $ hg manifest --debug --rev 'desc("mEAm-0")' | grep '644   f'
-  c5b506a7118667a38a9c9348a1f63b679e382f57 644   f
+  a9a8bc3860c9d8fa5f2f7e6ea8d40498322737fd 644   f
   $ hg manifest --debug --rev 'desc("a-2")' | grep '644   f'
-  b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644   f
+  263ea25e220aaeb7b9bac551c702037849aa75e8 644   f
   $ hg manifest --debug --rev 'desc("e-2")' | grep '644   f'
-  1e88685f5ddec574a34c70af492f95b6debc8741 644   f
+  71b9b7e73d973572ade6dd765477fcee6890e8b1 644   f
   $ hg debugindex f
      rev linkrev nodeid       p1           p2
-       0       4 b789fdd96dc2 000000000000 000000000000
-       1      10 1e88685f5dde 000000000000 000000000000
-       2      19 498e8799f49f b789fdd96dc2 1e88685f5dde
-       3      20 c5b506a71186 1e88685f5dde b789fdd96dc2
+       0       4 263ea25e220a 000000000000 000000000000
+       1      10 71b9b7e73d97 000000000000 000000000000
+       2      19 c39c6083dad0 263ea25e220a 71b9b7e73d97
+       3      20 a9a8bc3860c9 71b9b7e73d97 263ea25e220a
 #endif
 
 # Here the filelog based implementation is not looking at the rename
@@ -1188,6 +1193,7 @@
   A f
     d (filelog !)
     b (no-filelog !)
+    d
   R b
   R d
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mAEm-0")'
@@ -1199,6 +1205,7 @@
   A f
     a (filelog !)
     b (no-filelog !)
+    a
   R a
   R b
 
@@ -1277,7 +1284,10 @@
   $ hg log -Gfr 'desc("mBFm-0")' d
   o  22 f-2: rename i -> d
   |
-  ~
+  o  21 f-1: rename h -> i
+  :
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 #if no-changeset
@@ -1293,7 +1303,10 @@
   $ hg log -Gfr 'desc("mFBm-0")' d
   o  22 f-2: rename i -> d
   |
-  ~
+  o  21 f-1: rename h -> i
+  :
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 
@@ -1330,6 +1343,7 @@
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mDGm-0")'
   A d
     a (filelog !)
+    a
   R a
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGDm-0")'
   A d
@@ -1369,7 +1383,10 @@
   |/
   o  2 i-2: c -move-> d
   |
-  ~
+  o  1 i-1: a -move-> c
+  |
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 
@@ -1398,7 +1415,10 @@
   |/
   o  2 i-2: c -move-> d
   |
-  ~
+  o  1 i-1: a -move-> c
+  |
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 
@@ -1441,6 +1461,7 @@
   A d
     a (no-filelog !)
     h (filelog !)
+    h
   R a
   R h
   $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mFGm-0")'
@@ -1488,10 +1509,15 @@
   | o  25 g-1: update d
   | |
   o |  22 f-2: rename i -> d
-  |/
-  o  2 i-2: c -move-> d
-  |
-  ~
+  | |
+  o |  21 f-1: rename h -> i
+  |/
+  o  2 i-2: c -move-> d
+  |
+  o  1 i-1: a -move-> c
+  |
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 #if no-changeset
@@ -1518,10 +1544,15 @@
   | o  25 g-1: update d
   | |
   o |  22 f-2: rename i -> d
-  |/
-  o  2 i-2: c -move-> d
-  |
-  ~
+  | |
+  o |  21 f-1: rename h -> i
+  |/
+  o  2 i-2: c -move-> d
+  |
+  o  1 i-1: a -move-> c
+  |
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 
@@ -1557,10 +1588,12 @@
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCGm-0")'
   A d
     a (no-compatibility no-changeset !)
+    a
   R a
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGCm-0")'
   A d
     a (no-compatibility no-changeset !)
+    a
   R a
   $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCGm-0")'
   A d
@@ -1603,11 +1636,13 @@
   M b
   A d
     a (no-compatibility no-changeset !)
+    a
   R a
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBC-revert-m-0")'
   M b
   A d
     a (no-compatibility no-changeset !)
+    a
   R a
   $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCB-revert-m-0")'
   M b
@@ -1646,6 +1681,7 @@
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCH-delete-before-conflict-m")'
   A d
     b (no-compatibility no-changeset !)
+    b
   R a
   R b
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mHC-delete-before-conflict-m")'

test-copies-chain-merge.t#upgraded

--- c:/hgdev/src/tests/test-copies-chain-merge.t
+++ c:/hgdev/src/tests/test-copies-chain-merge.t#upgraded.err
@@ -351,9 +351,11 @@
      rev linkrev nodeid       p1           p2
        0       2 169be882533b 000000000000 000000000000 (no-changeset !)
        0       2 b789fdd96dc2 000000000000 000000000000 (changeset !)
-       1       8 b004912a8510 000000000000 000000000000
+       0       2 169be882533b 000000000000 000000000000
        2      22 4a067cf8965d 000000000000 000000000000 (no-changeset !)
        2      22 fe6f8b4f507f 000000000000 000000000000 (changeset !)
+       1       8 b004912a8510 000000000000 000000000000
+       2      22 4a067cf8965d 000000000000 000000000000
   $ hg up 'desc("b-1")'
   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg merge 'desc("f-2")'
@@ -1052,13 +1054,16 @@
   $ hg manifest --debug --rev 'desc("b-1")' | grep '644   d'
   169be882533bc917905d46c0c951aa9a1e288dcf 644   d (no-changeset !)
   b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644   d (changeset !)
+  169be882533bc917905d46c0c951aa9a1e288dcf 644   d
   $ hg debugindex d | head -n 4
      rev linkrev nodeid       p1           p2
        0       2 169be882533b 000000000000 000000000000 (no-changeset !)
        0       2 b789fdd96dc2 000000000000 000000000000 (changeset !)
-       1       8 b004912a8510 000000000000 000000000000
+       0       2 169be882533b 000000000000 000000000000
        2      22 4a067cf8965d 000000000000 000000000000 (no-changeset !)
        2      22 fe6f8b4f507f 000000000000 000000000000 (changeset !)
+       1       8 b004912a8510 000000000000 000000000000
+       2      22 4a067cf8965d 000000000000 000000000000
 
 Log output should not include a merge commit as it did not happen
 
@@ -1124,19 +1129,19 @@
        3      20 a9a8bc3860c9 71b9b7e73d97 263ea25e220a
 #else
   $ hg manifest --debug --rev 'desc("mAEm-0")' | grep '644   f'
-  498e8799f49f9da1ca06bb2d6d4accf165c5b572 644   f
+  c39c6083dad048d5138618a46f123e2f397f4f18 644   f
   $ hg manifest --debug --rev 'desc("mEAm-0")' | grep '644   f'
-  c5b506a7118667a38a9c9348a1f63b679e382f57 644   f
+  a9a8bc3860c9d8fa5f2f7e6ea8d40498322737fd 644   f
   $ hg manifest --debug --rev 'desc("a-2")' | grep '644   f'
-  b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3 644   f
+  263ea25e220aaeb7b9bac551c702037849aa75e8 644   f
   $ hg manifest --debug --rev 'desc("e-2")' | grep '644   f'
-  1e88685f5ddec574a34c70af492f95b6debc8741 644   f
+  71b9b7e73d973572ade6dd765477fcee6890e8b1 644   f
   $ hg debugindex f
      rev linkrev nodeid       p1           p2
-       0       4 b789fdd96dc2 000000000000 000000000000
-       1      10 1e88685f5dde 000000000000 000000000000
-       2      19 498e8799f49f b789fdd96dc2 1e88685f5dde
-       3      20 c5b506a71186 1e88685f5dde b789fdd96dc2
+       0       4 263ea25e220a 000000000000 000000000000
+       1      10 71b9b7e73d97 000000000000 000000000000
+       2      19 c39c6083dad0 263ea25e220a 71b9b7e73d97
+       3      20 a9a8bc3860c9 71b9b7e73d97 263ea25e220a
 #endif
 
 # Here the filelog based implementation is not looking at the rename
@@ -1188,6 +1193,7 @@
   A f
     d (filelog !)
     b (no-filelog !)
+    d
   R b
   R d
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mAEm-0")'
@@ -1199,6 +1205,7 @@
   A f
     a (filelog !)
     b (no-filelog !)
+    a
   R a
   R b
 
@@ -1277,7 +1284,10 @@
   $ hg log -Gfr 'desc("mBFm-0")' d
   o  22 f-2: rename i -> d
   |
-  ~
+  o  21 f-1: rename h -> i
+  :
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 #if no-changeset
@@ -1293,7 +1303,10 @@
   $ hg log -Gfr 'desc("mFBm-0")' d
   o  22 f-2: rename i -> d
   |
-  ~
+  o  21 f-1: rename h -> i
+  :
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 
@@ -1330,6 +1343,7 @@
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mDGm-0")'
   A d
     a (filelog !)
+    a
   R a
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGDm-0")'
   A d
@@ -1369,7 +1383,10 @@
   |/
   o  2 i-2: c -move-> d
   |
-  ~
+  o  1 i-1: a -move-> c
+  |
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 
@@ -1398,7 +1415,10 @@
   |/
   o  2 i-2: c -move-> d
   |
-  ~
+  o  1 i-1: a -move-> c
+  |
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 
@@ -1441,6 +1461,7 @@
   A d
     a (no-filelog !)
     h (filelog !)
+    h
   R a
   R h
   $ hg status --copies --rev 'desc("f-2")' --rev 'desc("mFGm-0")'
@@ -1488,10 +1509,15 @@
   | o  25 g-1: update d
   | |
   o |  22 f-2: rename i -> d
-  |/
-  o  2 i-2: c -move-> d
-  |
-  ~
+  | |
+  o |  21 f-1: rename h -> i
+  |/
+  o  2 i-2: c -move-> d
+  |
+  o  1 i-1: a -move-> c
+  |
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 #if no-changeset
@@ -1518,10 +1544,15 @@
   | o  25 g-1: update d
   | |
   o |  22 f-2: rename i -> d
-  |/
-  o  2 i-2: c -move-> d
-  |
-  ~
+  | |
+  o |  21 f-1: rename h -> i
+  |/
+  o  2 i-2: c -move-> d
+  |
+  o  1 i-1: a -move-> c
+  |
+  o  0 i-0 initial commit: a b h
+  
 #endif
 
 
@@ -1557,10 +1588,12 @@
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCGm-0")'
   A d
     a (no-compatibility no-changeset !)
+    a
   R a
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mGCm-0")'
   A d
     a (no-compatibility no-changeset !)
+    a
   R a
   $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCGm-0")'
   A d
@@ -1603,11 +1636,13 @@
   M b
   A d
     a (no-compatibility no-changeset !)
+    a
   R a
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mBC-revert-m-0")'
   M b
   A d
     a (no-compatibility no-changeset !)
+    a
   R a
   $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mCB-revert-m-0")'
   M b
@@ -1646,6 +1681,7 @@
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mCH-delete-before-conflict-m")'
   A d
     b (no-compatibility no-changeset !)
+    b
   R a
   R b
   $ hg status --copies --rev 'desc("i-0")' --rev 'desc("mHC-delete-before-conflict-m")'

test-copies-in-changeset.t#extra

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-copies-in-changeset.t\n+++ c:/hgdev/src/tests/test-copies-in-changeset.t#extra.err\n@@ -81,9 +81,6 @@\n   2\\x00a (esc)\n #else\n   $ hg debugsidedata -c -v -- -1\n-  1 sidedata entries\n-   entry-0014 size 44\n-    \'\\x00\\x00\\x00\\x04\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x03\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x04\\x00\\x00\\x00\\x00abcd\'\n #endif\n \n   $ hg showcopies\n@@ -117,9 +114,6 @@\n \n #else\n   $ hg debugsidedata -c -v -- -1\n-  1 sidedata entries\n-   entry-0014 size 25\n-    \'\\x00\\x00\\x00\\x02\\x0c\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x03\\x00\\x00\\x00\\x00bb2\'\n #endif\n \n   $ hg showcopies\n@@ -160,9 +154,6 @@\n \n #else\n   $ hg debugsidedata -c -v -- -1\n-  1 sidedata entries\n-   entry-0014 size 25\n-    \'\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x00\\x16\\x00\\x00\\x00\\x03\\x00\\x00\\x00\\x00b2c\'\n #endif\n \n   $ hg showcopies\n@@ -217,9 +208,6 @@\n \n #else\n   $ hg debugsidedata -c -v -- -1\n-  1 sidedata entries\n-   entry-0014 size 64\n-    \'\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x03\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x04\\x00\\x00\\x00\\x00\\x07\\x00\\x00\\x00\\x05\\x00\\x00\\x00\\x01\\x06\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x02adfghi\'\n #endif\n \n   $ hg showcopies\n@@ -242,9 +230,6 @@\n #else\n   $ hg ci -m \'copy a to j\'\n   $ hg debugsidedata -c -v -- -1\n-  1 sidedata entries\n-   entry-0014 size 24\n-    \'\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x00aj\'\n #endif\n   $ hg debugdata j 0\n   \\x01 (esc)\n@@ -270,10 +255,68 @@\n #else\n   $ hg ci --amend -m \'copy a to j, v2\'\n   saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-*-amend.hg (glob)\n-  $ hg debugsidedata -c -v -- -1\n-  1 sidedata entries\n-   entry-0014 size 24\n-    \'\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x00aj\'\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/29db913595f5-876027f5-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\.hg\\strip-backup/29db913595f5-ad903eb6-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\.hg\\strip-backup/29db913595f5-ad903eb6-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase, split\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg debugsidedata -c -v -- -1\n #endif\n   $ hg showcopies --config experimental.copies.read-from=filelog-only\n   a -> j\n@@ -291,10 +334,10 @@\n   p2copies: \n #else\n   $ hg ci -m \'modify j\'\n-  $ hg debugsidedata -c -v -- -1\n-  1 sidedata entries\n-   entry-0014 size 14\n-    \'\\x00\\x00\\x00\\x01\\x14\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00j\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg debugsidedata -c -v -- -1\n #endif\n \n Test writing only to filelog\n@@ -308,18 +351,15 @@\n   \n #else\n   $ hg ci -m \'copy a to k\'\n-  $ hg debugsidedata -c -v -- -1\n-  1 sidedata entries\n-   entry-0014 size 24\n-    \'\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x00ak\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg debugsidedata -c -v -- -1\n #endif\n \n   $ hg debugdata k 0\n-  \\x01 (esc)\n-  copy: a\n-  copyrev: b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3\n-  \\x01 (esc)\n-  a\n+  abort: cannot give path to non-revlog\n+  [10]\n #if extra\n   $ hg showcopies\n \n@@ -329,7 +369,7 @@\n   a -> k\n #else\n   $ hg showcopies\n-  a -> k\n+  a -> j\n #endif\n \n   $ cd ..\n@@ -349,6 +389,69 @@\n   rebasing 2:* tip "rename a to b" (glob)\n   merging a and b to b\n   saved backup bundle to $TESTTMP/rebase-rename/.hg/strip-backup/*-*-rebase.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\rebase-rename\\.hg\\strip-backup/b977edf6f839-0864f570-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\rebase-rename\\.hg\\strip-backup/b977edf6f839-309da888-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\rebase-rename\\.hg\\strip-backup/b977edf6f839-309da888-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase, split\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1113, in rebase\n+      return _dorebase(ui, repo, action, opts, inmemory=inmemory)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "c:\\hgdev\\python27-x64\\Lib\\contextlib.py", line 24, in __exit__\n+      self.gen.next()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1375, in acceptintervention\n+      tr.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg st --change . --copies\n   A b\n     a\n@@ -396,6 +499,63 @@\n   (enter ? for help) [Ynesfdaq?] y\n   \n   saved backup bundle to $TESTTMP/split/.hg/strip-backup/*-*-split.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\split\\.hg\\strip-backup/c7088e2d8efb-b94c0173-split.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\split\\.hg\\strip-backup/c7088e2d8efb-2be73c28-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\split\\.hg\\strip-backup/c7088e2d8efb-2be73c28-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase, split\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\split.py", line 122, in split\n+      dorebase(ui, repo, torebase, top)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cd ..\n \n Test committing half a rename\n', 4142, 4144, 'truncated \\uXXXX escape') decoding diff, sorry

test-copies-in-changeset.t#sidedata

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-copies-in-changeset.t\n+++ c:/hgdev/src/tests/test-copies-in-changeset.t#sidedata.err\n@@ -81,9 +81,6 @@\n   2\\x00a (esc)\n #else\n   $ hg debugsidedata -c -v -- -1\n-  1 sidedata entries\n-   entry-0014 size 44\n-    \'\\x00\\x00\\x00\\x04\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x03\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x04\\x00\\x00\\x00\\x00abcd\'\n #endif\n \n   $ hg showcopies\n@@ -117,9 +114,6 @@\n \n #else\n   $ hg debugsidedata -c -v -- -1\n-  1 sidedata entries\n-   entry-0014 size 25\n-    \'\\x00\\x00\\x00\\x02\\x0c\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x03\\x00\\x00\\x00\\x00bb2\'\n #endif\n \n   $ hg showcopies\n@@ -160,9 +154,6 @@\n \n #else\n   $ hg debugsidedata -c -v -- -1\n-  1 sidedata entries\n-   entry-0014 size 25\n-    \'\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x00\\x16\\x00\\x00\\x00\\x03\\x00\\x00\\x00\\x00b2c\'\n #endif\n \n   $ hg showcopies\n@@ -217,9 +208,6 @@\n \n #else\n   $ hg debugsidedata -c -v -- -1\n-  1 sidedata entries\n-   entry-0014 size 64\n-    \'\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x03\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x04\\x00\\x00\\x00\\x00\\x07\\x00\\x00\\x00\\x05\\x00\\x00\\x00\\x01\\x06\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x02adfghi\'\n #endif\n \n   $ hg showcopies\n@@ -242,9 +230,6 @@\n #else\n   $ hg ci -m \'copy a to j\'\n   $ hg debugsidedata -c -v -- -1\n-  1 sidedata entries\n-   entry-0014 size 24\n-    \'\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x00aj\'\n #endif\n   $ hg debugdata j 0\n   \\x01 (esc)\n@@ -270,10 +255,68 @@\n #else\n   $ hg ci --amend -m \'copy a to j, v2\'\n   saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-*-amend.hg (glob)\n-  $ hg debugsidedata -c -v -- -1\n-  1 sidedata entries\n-   entry-0014 size 24\n-    \'\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x00aj\'\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/29db913595f5-876027f5-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\.hg\\strip-backup/29db913595f5-ad903eb6-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\.hg\\strip-backup/29db913595f5-ad903eb6-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase, split\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg debugsidedata -c -v -- -1\n #endif\n   $ hg showcopies --config experimental.copies.read-from=filelog-only\n   a -> j\n@@ -291,10 +334,10 @@\n   p2copies: \n #else\n   $ hg ci -m \'modify j\'\n-  $ hg debugsidedata -c -v -- -1\n-  1 sidedata entries\n-   entry-0014 size 14\n-    \'\\x00\\x00\\x00\\x01\\x14\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00j\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg debugsidedata -c -v -- -1\n #endif\n \n Test writing only to filelog\n@@ -308,18 +351,15 @@\n   \n #else\n   $ hg ci -m \'copy a to k\'\n-  $ hg debugsidedata -c -v -- -1\n-  1 sidedata entries\n-   entry-0014 size 24\n-    \'\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x06\\x00\\x00\\x00\\x02\\x00\\x00\\x00\\x00ak\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg debugsidedata -c -v -- -1\n #endif\n \n   $ hg debugdata k 0\n-  \\x01 (esc)\n-  copy: a\n-  copyrev: b789fdd96dc2f3bd229c1dd8eedf0fc60e2b68e3\n-  \\x01 (esc)\n-  a\n+  abort: cannot give path to non-revlog\n+  [10]\n #if extra\n   $ hg showcopies\n \n@@ -329,7 +369,7 @@\n   a -> k\n #else\n   $ hg showcopies\n-  a -> k\n+  a -> j\n #endif\n \n   $ cd ..\n@@ -349,6 +389,69 @@\n   rebasing 2:* tip "rename a to b" (glob)\n   merging a and b to b\n   saved backup bundle to $TESTTMP/rebase-rename/.hg/strip-backup/*-*-rebase.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\rebase-rename\\.hg\\strip-backup/b977edf6f839-0864f570-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\rebase-rename\\.hg\\strip-backup/b977edf6f839-309da888-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\rebase-rename\\.hg\\strip-backup/b977edf6f839-309da888-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase, split\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1113, in rebase\n+      return _dorebase(ui, repo, action, opts, inmemory=inmemory)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "c:\\hgdev\\python27-x64\\Lib\\contextlib.py", line 24, in __exit__\n+      self.gen.next()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1375, in acceptintervention\n+      tr.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg st --change . --copies\n   A b\n     a\n@@ -396,6 +499,63 @@\n   (enter ? for help) [Ynesfdaq?] y\n   \n   saved backup bundle to $TESTTMP/split/.hg/strip-backup/*-*-split.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\split\\.hg\\strip-backup/c7088e2d8efb-b94c0173-split.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\split\\.hg\\strip-backup/c7088e2d8efb-2be73c28-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\split\\.hg\\strip-backup/c7088e2d8efb-2be73c28-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase, split\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\split.py", line 122, in split\n+      dorebase(ui, repo, torebase, top)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cd ..\n \n Test committing half a rename\n', 4145, 4147, 'truncated \\uXXXX escape') decoding diff, sorry

test-copies.t#changeset

--- c:/hgdev/src/tests/test-copies.t
+++ c:/hgdev/src/tests/test-copies.t#changeset.err
@@ -309,6 +309,7 @@
   x -> z
   $ hg debugpathcopies 0 2
   x -> z (filelog !)
+  x -> z
 
 Copy file that exists on both sides of the merge, different content
   $ newrepo
@@ -340,11 +341,13 @@
   x -> z (sidedata !)
   $ hg debugp2copies -r 2
   x -> z (no-changeset no-sidedata !)
+  x -> z
   $ hg debugpathcopies 1 2
   x -> z (changeset !)
   x -> z (sidedata !)
   $ hg debugpathcopies 0 2
   x -> z (no-changeset no-sidedata !)
+  x -> z
 
 Copy x->y on one side of merge and copy x->z on the other side. Pathcopies from one parent
 of the merge to the merge should include the copy from the other side.
@@ -455,6 +458,7 @@
   $ hg debugpathcopies 0 4
   x -> z (filelog !)
   y -> z (no-filelog !)
+  x -> z
   $ hg debugpathcopies 1 5
   y -> z (no-filelog !)
   $ hg debugpathcopies 2 5
@@ -502,11 +506,14 @@
   original
 #else
   $ hg merge 2
-  merging x and y to y
-  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
-  (branch merge, don't forget to commit)
+  file 'x' was deleted in other [merge rev] but was modified in local [working copy].
+  You can use (c)hanged version, (d)elete, or leave (u)nresolved.
+  What do you want to do? u
+  1 files updated, 0 files merged, 0 files removed, 1 files unresolved
+  use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
+  [1]
   $ cat y
-  modified
+  original
 #endif
 Same as above, but in the opposite direction
 #if filelog
@@ -524,11 +531,14 @@
 #else
   $ hg co -qC 2
   $ hg merge 3
-  merging y and x to y
-  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
-  (branch merge, don't forget to commit)
+  file 'x' was deleted in local [working copy] but was modified in other [merge rev].
+  You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved.
+  What do you want to do? u
+  0 files updated, 0 files merged, 0 files removed, 1 files unresolved
+  use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
+  [1]
   $ cat y
-  modified
+  original
 #endif
 
 Create x and y, then rename x to z on one side of merge, and rename y to z and
@@ -571,6 +581,7 @@
   x -> z (no-filelog !)
   $ hg debugpathcopies 0 4
   x -> z (no-changeset no-compatibility !)
+  x -> z
   $ hg debugpathcopies 1 5
   $ hg debugpathcopies 2 5
   x -> z (no-filelog !)
@@ -627,6 +638,7 @@
   $ hg graft -r 4 --base 3 --hidden
   grafting 4:af28412ec03c "added d, modified b" (tip) (no-changeset !)
   grafting 4:6325ca0b7a1c "added d, modified b" (tip) (changeset !)
+  grafting 4:af28412ec03c "added d, modified b" (tip)
   merging b1 and b to b1
 
   $ hg l -l1 -p
@@ -634,6 +646,7 @@
   |  b1
   ~  diff -r 5a4825cc2926 -r 94a2f1a0e8e2 b1 (no-changeset !)
   ~  diff -r 0a0ed3b3251c -r d544fb655520 b1 (changeset !)
+  ~  diff -r 5a4825cc2926 -r 94a2f1a0e8e2 b1
      --- a/b1	Thu Jan 01 00:00:00 1970 +0000
      +++ b/b1	Thu Jan 01 00:00:00 1970 +0000
      @@ -1,1 +1,2 @@
@@ -695,6 +708,7 @@
   $ hg rebase -r . -d 2 -t :other
   rebasing 5:5018b1509e94 tip "added willconflict and d" (no-changeset !)
   rebasing 5:af8d273bf580 tip "added willconflict and d" (changeset !)
+  rebasing 5:5018b1509e94 tip "added willconflict and d"
 
   $ hg up 3 -q
   $ hg l --hidden
@@ -719,3 +733,4 @@
   $ hg graft -r 6 --base 4 --hidden -t :other
   grafting 6:99802e4f1e46 "added willconflict and d" (tip) (no-changeset !)
   grafting 6:b19f0df72728 "added willconflict and d" (tip) (changeset !)
+  grafting 6:99802e4f1e46 "added willconflict and d" (tip)

test-copies.t#compatibility

--- c:/hgdev/src/tests/test-copies.t
+++ c:/hgdev/src/tests/test-copies.t#compatibility.err
@@ -309,6 +309,7 @@
   x -> z
   $ hg debugpathcopies 0 2
   x -> z (filelog !)
+  x -> z
 
 Copy file that exists on both sides of the merge, different content
   $ newrepo
@@ -340,11 +341,13 @@
   x -> z (sidedata !)
   $ hg debugp2copies -r 2
   x -> z (no-changeset no-sidedata !)
+  x -> z
   $ hg debugpathcopies 1 2
   x -> z (changeset !)
   x -> z (sidedata !)
   $ hg debugpathcopies 0 2
   x -> z (no-changeset no-sidedata !)
+  x -> z
 
 Copy x->y on one side of merge and copy x->z on the other side. Pathcopies from one parent
 of the merge to the merge should include the copy from the other side.
@@ -455,6 +458,7 @@
   $ hg debugpathcopies 0 4
   x -> z (filelog !)
   y -> z (no-filelog !)
+  x -> z
   $ hg debugpathcopies 1 5
   y -> z (no-filelog !)
   $ hg debugpathcopies 2 5
@@ -502,11 +506,14 @@
   original
 #else
   $ hg merge 2
-  merging x and y to y
-  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
-  (branch merge, don't forget to commit)
+  file 'x' was deleted in other [merge rev] but was modified in local [working copy].
+  You can use (c)hanged version, (d)elete, or leave (u)nresolved.
+  What do you want to do? u
+  1 files updated, 0 files merged, 0 files removed, 1 files unresolved
+  use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
+  [1]
   $ cat y
-  modified
+  original
 #endif
 Same as above, but in the opposite direction
 #if filelog
@@ -524,11 +531,14 @@
 #else
   $ hg co -qC 2
   $ hg merge 3
-  merging y and x to y
-  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
-  (branch merge, don't forget to commit)
+  file 'x' was deleted in local [working copy] but was modified in other [merge rev].
+  You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved.
+  What do you want to do? u
+  0 files updated, 0 files merged, 0 files removed, 1 files unresolved
+  use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
+  [1]
   $ cat y
-  modified
+  original
 #endif
 
 Create x and y, then rename x to z on one side of merge, and rename y to z and
@@ -571,6 +581,7 @@
   x -> z (no-filelog !)
   $ hg debugpathcopies 0 4
   x -> z (no-changeset no-compatibility !)
+  x -> z
   $ hg debugpathcopies 1 5
   $ hg debugpathcopies 2 5
   x -> z (no-filelog !)
@@ -627,6 +638,7 @@
   $ hg graft -r 4 --base 3 --hidden
   grafting 4:af28412ec03c "added d, modified b" (tip) (no-changeset !)
   grafting 4:6325ca0b7a1c "added d, modified b" (tip) (changeset !)
+  grafting 4:af28412ec03c "added d, modified b" (tip)
   merging b1 and b to b1
 
   $ hg l -l1 -p
@@ -634,6 +646,7 @@
   |  b1
   ~  diff -r 5a4825cc2926 -r 94a2f1a0e8e2 b1 (no-changeset !)
   ~  diff -r 0a0ed3b3251c -r d544fb655520 b1 (changeset !)
+  ~  diff -r 5a4825cc2926 -r 94a2f1a0e8e2 b1
      --- a/b1	Thu Jan 01 00:00:00 1970 +0000
      +++ b/b1	Thu Jan 01 00:00:00 1970 +0000
      @@ -1,1 +1,2 @@
@@ -695,6 +708,7 @@
   $ hg rebase -r . -d 2 -t :other
   rebasing 5:5018b1509e94 tip "added willconflict and d" (no-changeset !)
   rebasing 5:af8d273bf580 tip "added willconflict and d" (changeset !)
+  rebasing 5:5018b1509e94 tip "added willconflict and d"
 
   $ hg up 3 -q
   $ hg l --hidden
@@ -719,3 +733,4 @@
   $ hg graft -r 6 --base 4 --hidden -t :other
   grafting 6:99802e4f1e46 "added willconflict and d" (tip) (no-changeset !)
   grafting 6:b19f0df72728 "added willconflict and d" (tip) (changeset !)
+  grafting 6:99802e4f1e46 "added willconflict and d" (tip)

test-copies.t#filelog

--- c:/hgdev/src/tests/test-copies.t
+++ c:/hgdev/src/tests/test-copies.t#filelog.err
@@ -309,6 +309,7 @@
   x -> z
   $ hg debugpathcopies 0 2
   x -> z (filelog !)
+  x -> z
 
 Copy file that exists on both sides of the merge, different content
   $ newrepo
@@ -340,11 +341,13 @@
   x -> z (sidedata !)
   $ hg debugp2copies -r 2
   x -> z (no-changeset no-sidedata !)
+  x -> z
   $ hg debugpathcopies 1 2
   x -> z (changeset !)
   x -> z (sidedata !)
   $ hg debugpathcopies 0 2
   x -> z (no-changeset no-sidedata !)
+  x -> z
 
 Copy x->y on one side of merge and copy x->z on the other side. Pathcopies from one parent
 of the merge to the merge should include the copy from the other side.
@@ -455,6 +458,7 @@
   $ hg debugpathcopies 0 4
   x -> z (filelog !)
   y -> z (no-filelog !)
+  x -> z
   $ hg debugpathcopies 1 5
   y -> z (no-filelog !)
   $ hg debugpathcopies 2 5
@@ -502,11 +506,14 @@
   original
 #else
   $ hg merge 2
-  merging x and y to y
-  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
-  (branch merge, don't forget to commit)
+  file 'x' was deleted in other [merge rev] but was modified in local [working copy].
+  You can use (c)hanged version, (d)elete, or leave (u)nresolved.
+  What do you want to do? u
+  1 files updated, 0 files merged, 0 files removed, 1 files unresolved
+  use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
+  [1]
   $ cat y
-  modified
+  original
 #endif
 Same as above, but in the opposite direction
 #if filelog
@@ -524,11 +531,14 @@
 #else
   $ hg co -qC 2
   $ hg merge 3
-  merging y and x to y
-  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
-  (branch merge, don't forget to commit)
+  file 'x' was deleted in local [working copy] but was modified in other [merge rev].
+  You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved.
+  What do you want to do? u
+  0 files updated, 0 files merged, 0 files removed, 1 files unresolved
+  use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
+  [1]
   $ cat y
-  modified
+  original
 #endif
 
 Create x and y, then rename x to z on one side of merge, and rename y to z and
@@ -571,6 +581,7 @@
   x -> z (no-filelog !)
   $ hg debugpathcopies 0 4
   x -> z (no-changeset no-compatibility !)
+  x -> z
   $ hg debugpathcopies 1 5
   $ hg debugpathcopies 2 5
   x -> z (no-filelog !)
@@ -627,6 +638,7 @@
   $ hg graft -r 4 --base 3 --hidden
   grafting 4:af28412ec03c "added d, modified b" (tip) (no-changeset !)
   grafting 4:6325ca0b7a1c "added d, modified b" (tip) (changeset !)
+  grafting 4:af28412ec03c "added d, modified b" (tip)
   merging b1 and b to b1
 
   $ hg l -l1 -p
@@ -634,6 +646,7 @@
   |  b1
   ~  diff -r 5a4825cc2926 -r 94a2f1a0e8e2 b1 (no-changeset !)
   ~  diff -r 0a0ed3b3251c -r d544fb655520 b1 (changeset !)
+  ~  diff -r 5a4825cc2926 -r 94a2f1a0e8e2 b1
      --- a/b1	Thu Jan 01 00:00:00 1970 +0000
      +++ b/b1	Thu Jan 01 00:00:00 1970 +0000
      @@ -1,1 +1,2 @@
@@ -695,6 +708,7 @@
   $ hg rebase -r . -d 2 -t :other
   rebasing 5:5018b1509e94 tip "added willconflict and d" (no-changeset !)
   rebasing 5:af8d273bf580 tip "added willconflict and d" (changeset !)
+  rebasing 5:5018b1509e94 tip "added willconflict and d"
 
   $ hg up 3 -q
   $ hg l --hidden
@@ -719,3 +733,4 @@
   $ hg graft -r 6 --base 4 --hidden -t :other
   grafting 6:99802e4f1e46 "added willconflict and d" (tip) (no-changeset !)
   grafting 6:b19f0df72728 "added willconflict and d" (tip) (changeset !)
+  grafting 6:99802e4f1e46 "added willconflict and d" (tip)

test-copies.t#sidedata

--- c:/hgdev/src/tests/test-copies.t
+++ c:/hgdev/src/tests/test-copies.t#sidedata.err
@@ -309,6 +309,7 @@
   x -> z
   $ hg debugpathcopies 0 2
   x -> z (filelog !)
+  x -> z
 
 Copy file that exists on both sides of the merge, different content
   $ newrepo
@@ -340,11 +341,13 @@
   x -> z (sidedata !)
   $ hg debugp2copies -r 2
   x -> z (no-changeset no-sidedata !)
+  x -> z
   $ hg debugpathcopies 1 2
   x -> z (changeset !)
   x -> z (sidedata !)
   $ hg debugpathcopies 0 2
   x -> z (no-changeset no-sidedata !)
+  x -> z
 
 Copy x->y on one side of merge and copy x->z on the other side. Pathcopies from one parent
 of the merge to the merge should include the copy from the other side.
@@ -455,6 +458,7 @@
   $ hg debugpathcopies 0 4
   x -> z (filelog !)
   y -> z (no-filelog !)
+  x -> z
   $ hg debugpathcopies 1 5
   y -> z (no-filelog !)
   $ hg debugpathcopies 2 5
@@ -502,11 +506,14 @@
   original
 #else
   $ hg merge 2
-  merging x and y to y
-  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
-  (branch merge, don't forget to commit)
+  file 'x' was deleted in other [merge rev] but was modified in local [working copy].
+  You can use (c)hanged version, (d)elete, or leave (u)nresolved.
+  What do you want to do? u
+  1 files updated, 0 files merged, 0 files removed, 1 files unresolved
+  use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
+  [1]
   $ cat y
-  modified
+  original
 #endif
 Same as above, but in the opposite direction
 #if filelog
@@ -524,11 +531,14 @@
 #else
   $ hg co -qC 2
   $ hg merge 3
-  merging y and x to y
-  0 files updated, 1 files merged, 0 files removed, 0 files unresolved
-  (branch merge, don't forget to commit)
+  file 'x' was deleted in local [working copy] but was modified in other [merge rev].
+  You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved.
+  What do you want to do? u
+  0 files updated, 0 files merged, 0 files removed, 1 files unresolved
+  use 'hg resolve' to retry unresolved file merges or 'hg merge --abort' to abandon
+  [1]
   $ cat y
-  modified
+  original
 #endif
 
 Create x and y, then rename x to z on one side of merge, and rename y to z and
@@ -571,6 +581,7 @@
   x -> z (no-filelog !)
   $ hg debugpathcopies 0 4
   x -> z (no-changeset no-compatibility !)
+  x -> z
   $ hg debugpathcopies 1 5
   $ hg debugpathcopies 2 5
   x -> z (no-filelog !)
@@ -627,6 +638,7 @@
   $ hg graft -r 4 --base 3 --hidden
   grafting 4:af28412ec03c "added d, modified b" (tip) (no-changeset !)
   grafting 4:6325ca0b7a1c "added d, modified b" (tip) (changeset !)
+  grafting 4:af28412ec03c "added d, modified b" (tip)
   merging b1 and b to b1
 
   $ hg l -l1 -p
@@ -634,6 +646,7 @@
   |  b1
   ~  diff -r 5a4825cc2926 -r 94a2f1a0e8e2 b1 (no-changeset !)
   ~  diff -r 0a0ed3b3251c -r d544fb655520 b1 (changeset !)
+  ~  diff -r 5a4825cc2926 -r 94a2f1a0e8e2 b1
      --- a/b1	Thu Jan 01 00:00:00 1970 +0000
      +++ b/b1	Thu Jan 01 00:00:00 1970 +0000
      @@ -1,1 +1,2 @@
@@ -695,6 +708,7 @@
   $ hg rebase -r . -d 2 -t :other
   rebasing 5:5018b1509e94 tip "added willconflict and d" (no-changeset !)
   rebasing 5:af8d273bf580 tip "added willconflict and d" (changeset !)
+  rebasing 5:5018b1509e94 tip "added willconflict and d"
 
   $ hg up 3 -q
   $ hg l --hidden
@@ -719,3 +733,4 @@
   $ hg graft -r 6 --base 4 --hidden -t :other
   grafting 6:99802e4f1e46 "added willconflict and d" (tip) (no-changeset !)
   grafting 6:b19f0df72728 "added willconflict and d" (tip) (changeset !)
+  grafting 6:99802e4f1e46 "added willconflict and d" (tip)

test-copy-move-merge.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-copy-move-merge.t\n+++ c:/hgdev/src/tests/test-copy-move-merge.t.err\n@@ -100,10 +100,11 @@\n   resolving manifests\n    branchmerge: True, force: False, partial: False\n    ancestor: b8bf91eeebbc, local: add3f11052fa+, remote: 17c05bb7fcb6\n+  starting 4 threads for background file closing\n    preserving a for resolve of b\n    preserving a for resolve of c\n+  starting 4 threads for background file closing (?)\n   removing a\n-  starting 4 threads for background file closing (?)\n    b: remote moved from a -> m (premerge)\n   picked tool \':merge\' for b (binary False symlink False changedelete False)\n   merging a and b to b\n@@ -152,14 +153,66 @@\n   $ hg strip -r . --config extensions.strip=\n   2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/t/.hg/strip-backup/550bd84c0cd3-fc575957-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\t\\.hg\\strip-backup/550bd84c0cd3-fc575957-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg up -qC 2\n   $ hg rebase --keep -d 1 -b 2 --config extensions.rebase= --config experimental.copytrace=off --config ui.interactive=True << EOF\n   > c\n   > EOF\n-  rebasing 2:add3f11052fa tip "other"\n+  rebasing 2:add3f11052fa "other"\n   file \'a\' was deleted in local [dest] but was modified in other [source].\n   You can use (c)hanged version, leave (d)eleted, or leave (u)nresolved.\n   What do you want to do? c\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ cat b\n   1\n@@ -194,10 +247,77 @@\n   $ hg rebase -d . -b 2 --config extensions.rebase= --config experimental.copytrace=off\n   rebasing 2:6adcf8c12e7d "copy b->x"\n   saved backup bundle to $TESTTMP/copydisable/.hg/strip-backup/6adcf8c12e7d-ce4b3e75-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\copydisable\\.hg\\strip-backup/6adcf8c12e7d-ce4b3e75-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\copydisable\\.hg\\strip-backup/6adcf8c12e7d-a566e40e-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\copydisable\\.hg\\strip-backup/6adcf8c12e7d-a566e40e-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg up -q 3\n   $ hg log -f x -T \'{rev} {desc}\\n\'\n-  3 copy b->x\n-  1 add b, c\n+  abort: cannot follow file not in parent revision: "x"\n+  [255]\n \n   $ cd ../\n \n@@ -240,10 +360,78 @@\n   $ hg rebase -d 2 -s 3 --config extensions.rebase= --config experimental.copytrace=off\n   rebasing 3:47e1a9e6273b tip "copy a->b (2)"\n   saved backup bundle to $TESTTMP/copydisable3/.hg/strip-backup/47e1a9e6273b-2d099c59-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\copydisable3\\.hg\\strip-backup/47e1a9e6273b-2d099c59-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\copydisable3\\.hg\\strip-backup/47e1a9e6273b-23c6724f-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\copydisable3\\.hg\\strip-backup/47e1a9e6273b-23c6724f-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg log -G -f b\n-  @  changeset:   3:76024fb4b05b\n+  @  changeset:   4:76024fb4b05b\n   :  tag:         tip\n+  :  parent:      2:235d81efe3d3\n   :  user:        test\n   :  date:        Thu Jan 01 00:00:00 1970 +0000\n   :  summary:     copy a->b (2)\n', 2880, 2882, 'truncated \\uXXXX escape') decoding diff, sorry

test-copy.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-copy.t\n+++ c:/hgdev/src/tests/test-copy.t.err\n@@ -92,10 +92,12 @@\n #endif\n   $ hg cat b > bsum\n   $ md5sum.py bsum\n-  60b725f10c9c85c70d97880dfe8191b3  bsum\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ hg cat a > asum\n   $ md5sum.py asum\n-  60b725f10c9c85c70d97880dfe8191b3  asum\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ hg verify\n   checking changesets\n   checking manifests\n@@ -352,6 +354,67 @@\n   dirty\n   $ hg copy --forget --at-rev . baz\n   saved backup bundle to $TESTTMP/part2/.hg/strip-backup/a612dc2edfda-e36b4448-uncopy.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\part2\\.hg\\strip-backup/a612dc2edfda-e36b4448-uncopy.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\part2\\.hg\\strip-backup/a612dc2edfda-6b2a89b9-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\part2\\.hg\\strip-backup/a612dc2edfda-6b2a89b9-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2405, in copy\n+      return cmdutil.copy(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 1516, in copy\n+      repo, replacements, b\'uncopy\', fixphase=True\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n # The unwanted copy is no longer recorded, but the unrelated one is\n   $ hg st -C --change .\n   A baz\n@@ -359,8 +422,10 @@\n     bar\n # The old commit is gone and we have updated to the new commit\n   $ hg log -G -T \'{rev}:{node|short} {desc}\\n\' -r $base:\n-  @  5:c45090e5effe copies\n+  @  6:c45090e5effe copies\n   |\n+  | o  5:a612dc2edfda copies\n+  |/\n   o  4:4800b1f1f38e add dir/\n   |\n   ~\n', 2821, 2823, 'truncated \\uXXXX escape') decoding diff, sorry

test-copytrace-heuristics.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-copytrace-heuristics.t\n+++ c:/hgdev/src/tests/test-copytrace-heuristics.t.err\n@@ -58,6 +58,73 @@\n   merging b and a to b\n   merging dir2/file.txt and dir/file.txt to dir2/file.txt\n   saved backup bundle to $TESTTMP/repo/.hg/strip-backup/557f403c0afd-9926eeff-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/557f403c0afd-9926eeff-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\.hg\\strip-backup/557f403c0afd-4d6a9c28-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\.hg\\strip-backup/557f403c0afd-4d6a9c28-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cd ..\n   $ rm -rf repo\n \n@@ -129,6 +196,73 @@\n   rebasing 3:9d5cf99c3d9f tip "mod a"\n   merging b and a to b\n   saved backup bundle to $TESTTMP/repo/.hg/strip-backup/9d5cf99c3d9f-f02358cc-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/9d5cf99c3d9f-f02358cc-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\.hg\\strip-backup/9d5cf99c3d9f-9e890765-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\.hg\\strip-backup/9d5cf99c3d9f-9e890765-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cd ..\n   $ rm -rf repo\n \n@@ -164,6 +298,73 @@\n   rebasing 3:fbe97126b396 tip "mod b"\n   merging a and b to a\n   saved backup bundle to $TESTTMP/repo/.hg/strip-backup/fbe97126b396-cf5452a1-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/fbe97126b396-cf5452a1-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\.hg\\strip-backup/fbe97126b396-bc269fa4-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\.hg\\strip-backup/fbe97126b396-bc269fa4-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cd ..\n   $ rm -rf repo\n \n@@ -201,6 +402,73 @@\n   rebasing 3:6b2f4cece40f tip "mod dir/a"\n   merging dir/b and dir/a to dir/b\n   saved backup bundle to $TESTTMP/repo/.hg/strip-backup/6b2f4cece40f-503efe60-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/6b2f4cece40f-503efe60-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\.hg\\strip-backup/6b2f4cece40f-2bfc3aaa-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\.hg\\strip-backup/6b2f4cece40f-2bfc3aaa-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cd ..\n   $ rm -rf repo\n \n@@ -260,6 +528,73 @@\n   rebasing 2:ef716627c70b tip "mod a"\n   merging foo and a to foo\n   saved backup bundle to $TESTTMP/repo/.hg/strip-backup/ef716627c70b-24681561-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/ef716627c70b-24681561-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\.hg\\strip-backup/ef716627c70b-e63cf491-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\.hg\\strip-backup/ef716627c70b-e63cf491-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ cd ..\n   $ rm -rf repo\n@@ -291,10 +626,79 @@\n   $ hg rebase -s 1 -d 2\n   rebasing 1:472e38d57782 "mv a b"\n   saved backup bundle to $TESTTMP/repo/.hg/strip-backup/472e38d57782-17d50e29-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/472e38d57782-17d50e29-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\.hg\\strip-backup/472e38d57782-56051cdd-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\.hg\\strip-backup/472e38d57782-56051cdd-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg up -q c492ed3c7e35dcd1dc938053b8adf56e2cfbd062\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ ls -A\n   .hg\n-  b\n   $ cd ..\n   $ rm -rf repo\n \n@@ -326,6 +730,73 @@\n   rebasing 2:a33d80b6e352 tip "mv dir/ dir2/"\n   merging dir/a and dir2/a to dir2/a\n   saved backup bundle to $TESTTMP/repo/.hg/strip-backup/a33d80b6e352-fecb9ada-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/a33d80b6e352-fecb9ada-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\.hg\\strip-backup/a33d80b6e352-9b1e03d8-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\.hg\\strip-backup/a33d80b6e352-9b1e03d8-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cd ..\n   $ rm -rf server\n   $ rm -rf repo\n@@ -361,6 +832,73 @@\n   rebasing 3:d41316942216 tip "mod a"\n   merging c and a to c\n   saved backup bundle to $TESTTMP/repo/.hg/strip-backup/d41316942216-2b5949bc-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/d41316942216-2b5949bc-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\.hg\\strip-backup/d41316942216-6caae297-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\.hg\\strip-backup/d41316942216-6caae297-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ cd ..\n   $ rm -rf repo\n@@ -397,6 +935,73 @@\n   rebasing 2:d3efd280421d "mv b c"\n   merging b and c to c\n   saved backup bundle to $TESTTMP/repo/.hg/strip-backup/472e38d57782-ab8d3c58-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/472e38d57782-ab8d3c58-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\.hg\\strip-backup/472e38d57782-84c2ae25-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\.hg\\strip-backup/472e38d57782-84c2ae25-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ cd ..\n   $ rm -rf repo\n@@ -434,6 +1039,73 @@\n   rebasing 3:ef716627c70b tip "mod a"\n   merging b and a to b\n   saved backup bundle to $TESTTMP/repo/.hg/strip-backup/ef716627c70b-24681561-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/ef716627c70b-24681561-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\.hg\\strip-backup/ef716627c70b-3f9d0324-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\.hg\\strip-backup/ef716627c70b-3f9d0324-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ ls -A\n   .hg\n   b\n@@ -508,6 +1180,73 @@\n   merging b and a to b\n   merging c and a to c\n   saved backup bundle to $TESTTMP/repo/repo/.hg/strip-backup/ef716627c70b-24681561-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\repo\\.hg\\strip-backup/ef716627c70b-24681561-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\repo\\.hg\\strip-backup/ef716627c70b-7957e203-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\repo\\.hg\\strip-backup/ef716627c70b-7957e203-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ ls -A\n   .hg\n   b\n@@ -581,23 +1320,73 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg mv a b\n   $ hg ci -m \'mv a b\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg l\n-  @  rev: 1\n-  |  desc: mv a b\n-  o  rev: 0\n+  @  rev: 0\n      desc: initial\n   $ hg unshelve\n   unshelving change \'default\'\n-  rebasing shelved changes\n-  merging b and a to b\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ ls -A\n   .hg\n   b\n   $ cat b\n-  b\n+  a\n   $ cd ..\n   $ rm -rf repo\n \n@@ -634,6 +1423,73 @@\n   rebasing 2:6207d2d318e7 tip "mod a"\n   merging dir2/b and dir1/a to dir2/b\n   saved backup bundle to $TESTTMP/repo/repo/.hg/strip-backup/6207d2d318e7-1c9779ad-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\repo\\.hg\\strip-backup/6207d2d318e7-1c9779ad-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\repo\\.hg\\strip-backup/6207d2d318e7-be8964c3-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\repo\\.hg\\strip-backup/6207d2d318e7-be8964c3-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cat dir2/b\n   a\n   b\n@@ -671,6 +1527,73 @@\n   $ hg rebase -s . -d 1 --config experimental.copytrace.sourcecommitlimit=100\n   rebasing 2:e8919e7df8d0 tip "mv dir1 dir2"\n   saved backup bundle to $TESTTMP/repo/repo/.hg/strip-backup/e8919e7df8d0-f62fab62-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\repo\\.hg\\strip-backup/e8919e7df8d0-f62fab62-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\repo\\.hg\\strip-backup/e8919e7df8d0-f29803ed-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\repo\\.hg\\strip-backup/e8919e7df8d0-f29803ed-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ ls dir2\n   a\n   dummy\n@@ -722,5 +1645,72 @@\n   rebasing 1:8b6e13696c38 "added more things to a"\n   merging foo/bar and a to foo/bar\n   saved backup bundle to $TESTTMP/repo/repo/repo/.hg/strip-backup/8b6e13696c38-fc14ac83-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\repo\\repo\\.hg\\strip-backup/8b6e13696c38-fc14ac83-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\repo\\repo\\.hg\\strip-backup/8b6e13696c38-e02ea0c1-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\repo\\repo\\.hg\\strip-backup/8b6e13696c38-e02ea0c1-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cd ..\n   $ rm -rf repo\n', 2548, 2550, 'truncated \\uXXXX escape') decoding diff, sorry

test-custom-filters.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-custom-filters.t\n+++ c:/hgdev/src/tests/test-custom-filters.t.err\n@@ -60,8 +60,62 @@\n \n   $ hg add morestuff.txt\n   $ hg ci -m morestuff\n-  abort: missing header "Copyright 2046, The Masters" in morestuff.txt\n-  [255]\n+  ** Unknown exception encountered with possibly-broken third-party extension "prefixfilter" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "prefixfilter" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: prefixfilter\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2127, in _docommit\n+      node = cmdutil.commit(ui, repo, commitfunc, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2754, in commit\n+      return commitfunc(ui, repo, message, matcher, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2124, in commitfunc\n+      extra=extra,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg stat\n   M stuff.txt\n   A morestuff.txt\n', 2337, 2339, 'truncated \\uXXXX escape') decoding diff, sorry

test-debugbackupbundle.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-debugbackupbundle.t\n+++ c:/hgdev/src/tests/test-debugbackupbundle.t.err\n@@ -23,17 +23,59 @@\n   $ hg strip .\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/repo/.hg/strip-backup/d2ae7f538514-2953539b-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/d2ae7f538514-2953539b-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg debugbackupbundle\n   Recover changesets using: hg debugbackupbundle --recover <changeset hash>\n   \n-  Available backup changesets:\n-  * (glob)\n-  d2ae7f538514 b\n+  Available backup changesets: (no-eol)\n \n   $ hg debugbackupbundle --recover d2ae7f538514\n-  Unbundling d2ae7f538514\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  new changesets d2ae7f538514 (1 drafts)\n+  d2ae7f538514 already exists in the repo\n', 2305, 2307, 'truncated \\uXXXX escape') decoding diff, sorry

test-debugcommands.t

--- c:/hgdev/src/tests/test-debugcommands.t
+++ c:/hgdev/src/tests/test-debugcommands.t.err
@@ -650,6 +650,7 @@
   $ hg --config ui.ssh=""$PYTHON" "$TESTDIR/dummyssh"" --debug debugpeer ssh://user@dummy/debugrevlog
   running "*" "*/tests/dummyssh" 'user@dummy' 'hg -R debugrevlog serve --stdio' (glob) (no-windows !)
   running "*" "*	ests/dummyssh" "user@dummy" "hg -R debugrevlog serve --stdio" (glob) (windows !)
+  running "c:/hgdev/python27-x64/python.exe" "c:\hgdev\src	ests/dummyssh" "user@dummy" "hg -R debugrevlog serve --stdio"
   devel-peer-request: hello+between
   devel-peer-request:   pairs: 81 bytes
   sending hello command

test-default-push.t

--- c:/hgdev/src/tests/test-default-push.t
+++ c:/hgdev/src/tests/test-default-push.t.err
@@ -98,12 +98,8 @@
   $ touch pushurl
   $ hg -q commit -A -m 'add pushurl'
   $ hg push
-  pushing to file:/*/$TESTTMP/pushurlsource/../pushurldest (glob)
-  searching for changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 1 changesets with 1 changes to 1 files
+  abort: file:// URLs can only refer to localhost
+  [255]
 
 :pushrev is used when no -r is passed
 
@@ -117,33 +113,21 @@
   $ echo head2 > foo
   $ hg -q commit -A -m head2
   $ hg push -f
-  pushing to file:/*/$TESTTMP/pushurlsource/../pushurldest (glob)
-  searching for changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 1 changesets with 1 changes to 1 files (+1 heads)
+  abort: file:// URLs can only refer to localhost
+  [255]
 
   $ hg --config 'paths.default:pushrev=draft()' push -f
-  pushing to file:/*/$TESTTMP/pushurlsource/../pushurldest (glob)
-  searching for changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 1 changesets with 1 changes to 1 files (+1 heads)
+  abort: file:// URLs can only refer to localhost
+  [255]
 
 Invalid :pushrev raises appropriately
 
   $ hg --config 'paths.default:pushrev=notdefined()' push
-  pushing to file:/*/$TESTTMP/pushurlsource/../pushurldest (glob)
-  hg: parse error: unknown identifier: notdefined
-  [10]
+  abort: file:// URLs can only refer to localhost
+  [255]
 
   $ hg --config 'paths.default:pushrev=(' push
-  pushing to file:/*/$TESTTMP/pushurlsource/../pushurldest (glob)
-  hg: parse error at 1: not a prefix: end
-  ((
-    ^ here)
-  [10]
+  abort: file:// URLs can only refer to localhost
+  [255]
 
   $ cd ..

test-devel-warnings.t

--- c:/hgdev/src/tests/test-devel-warnings.t
+++ c:/hgdev/src/tests/test-devel-warnings.t.err
@@ -129,28 +129,6 @@
    */mercurial/dispatch.py:* in _runcommand (glob)
    */mercurial/dispatch.py:* in <lambda> (glob)
    */mercurial/util.py:* in check (glob)
-   */mercurial/commands.py:* in serve (glob)
-   */mercurial/server.py:* in runservice (glob)
-   */mercurial/commandserver.py:* in run (glob)
-   */mercurial/commandserver.py:* in _mainloop (glob)
-   */mercurial/commandserver.py:* in _acceptnewconnection (glob)
-   */mercurial/commandserver.py:* in _runworker (glob)
-   */mercurial/commandserver.py:* in _serverequest (glob)
-   */mercurial/commandserver.py:* in serve (glob)
-   */mercurial/commandserver.py:* in serveone (glob)
-   */mercurial/chgserver.py:* in runcommand (glob)
-   */mercurial/commandserver.py:* in runcommand (glob)
-   */mercurial/commandserver.py:* in _dispatchcommand (glob)
-   */mercurial/dispatch.py:* in dispatch (glob)
-   */mercurial/dispatch.py:* in _runcatch (glob)
-   */mercurial/dispatch.py:* in _callcatch (glob)
-   */mercurial/scmutil.py:* in callcatch (glob)
-   */mercurial/dispatch.py:* in _runcatchfunc (glob)
-   */mercurial/dispatch.py:* in _dispatch (glob)
-   */mercurial/dispatch.py:* in runcommand (glob)
-   */mercurial/dispatch.py:* in _runcommand (glob)
-   */mercurial/dispatch.py:* in <lambda> (glob)
-   */mercurial/util.py:* in check (glob)
    $TESTTMP/buggylocking.py:* in buggylocking (glob)
 #endif
   $ hg properlocking
@@ -200,28 +178,6 @@
   (compatibility will be dropped after Mercurial-42.1337, update your code.) at:
    */hg:* in <module> (glob)
    */mercurial/dispatch.py:* in run (glob)
-   */mercurial/dispatch.py:* in dispatch (glob)
-   */mercurial/dispatch.py:* in _runcatch (glob)
-   */mercurial/dispatch.py:* in _callcatch (glob)
-   */mercurial/scmutil.py:* in callcatch (glob)
-   */mercurial/dispatch.py:* in _runcatchfunc (glob)
-   */mercurial/dispatch.py:* in _dispatch (glob)
-   */mercurial/dispatch.py:* in runcommand (glob)
-   */mercurial/dispatch.py:* in _runcommand (glob)
-   */mercurial/dispatch.py:* in <lambda> (glob)
-   */mercurial/util.py:* in check (glob)
-   */mercurial/commands.py:* in serve (glob)
-   */mercurial/server.py:* in runservice (glob)
-   */mercurial/commandserver.py:* in run (glob)
-   */mercurial/commandserver.py:* in _mainloop (glob)
-   */mercurial/commandserver.py:* in _acceptnewconnection (glob)
-   */mercurial/commandserver.py:* in _runworker (glob)
-   */mercurial/commandserver.py:* in _serverequest (glob)
-   */mercurial/commandserver.py:* in serve (glob)
-   */mercurial/commandserver.py:* in serveone (glob)
-   */mercurial/chgserver.py:* in runcommand (glob)
-   */mercurial/commandserver.py:* in runcommand (glob)
-   */mercurial/commandserver.py:* in _dispatchcommand (glob)
    */mercurial/dispatch.py:* in dispatch (glob)
    */mercurial/dispatch.py:* in _runcatch (glob)
    */mercurial/dispatch.py:* in _callcatch (glob)
@@ -280,28 +236,6 @@
    */mercurial/dispatch.py:* in _runcommand (glob)
    */mercurial/dispatch.py:* in <lambda> (glob)
    */mercurial/util.py:* in check (glob)
-   */mercurial/commands.py:* in serve (glob)
-   */mercurial/server.py:* in runservice (glob)
-   */mercurial/commandserver.py:* in run (glob)
-   */mercurial/commandserver.py:* in _mainloop (glob)
-   */mercurial/commandserver.py:* in _acceptnewconnection (glob)
-   */mercurial/commandserver.py:* in _runworker (glob)
-   */mercurial/commandserver.py:* in _serverequest (glob)
-   */mercurial/commandserver.py:* in serve (glob)
-   */mercurial/commandserver.py:* in serveone (glob)
-   */mercurial/chgserver.py:* in runcommand (glob)
-   */mercurial/commandserver.py:* in runcommand (glob)
-   */mercurial/commandserver.py:* in _dispatchcommand (glob)
-   */mercurial/dispatch.py:* in dispatch (glob)
-   */mercurial/dispatch.py:* in _runcatch (glob)
-   */mercurial/dispatch.py:* in _callcatch (glob)
-   */mercurial/scmutil.py:* in callcatch (glob)
-   */mercurial/dispatch.py:* in _runcatchfunc (glob)
-   */mercurial/dispatch.py:* in _dispatch (glob)
-   */mercurial/dispatch.py:* in runcommand (glob)
-   */mercurial/dispatch.py:* in _runcommand (glob)
-   */mercurial/dispatch.py:* in <lambda> (glob)
-   */mercurial/util.py:* in check (glob)
    $TESTTMP/buggylocking.py:* in oldanddeprecated (glob)
   1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> oldanddeprecated --traceback exited 0 after * seconds (glob)
   1970/01/01 00:00:00 bob @cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b (5000)> blackbox -l 7

test-dirstate-race.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-dirstate-race.t\n+++ c:/hgdev/src/tests/test-dirstate-race.t.err\n@@ -230,6 +230,73 @@\n   custom merge tool\n   custom merge tool end\n   saved backup bundle to $TESTTMP/repo/.hg/strip-backup/* (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/b08445fd6b2a-2516f9a4-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\.hg\\strip-backup/b08445fd6b2a-b87e6973-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\.hg\\strip-backup/b08445fd6b2a-b87e6973-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n This hg status should be empty, whether or not fsmonitor is enabled (issue5581).\n \n', 2476, 2478, 'truncated \\uXXXX escape') decoding diff, sorry

test-dispatch.t

--- c:/hgdev/src/tests/test-dispatch.t
+++ c:/hgdev/src/tests/test-dispatch.t.err
@@ -190,6 +190,7 @@
   $ hg -R a archive ''
   abort: $ENOENT$: '' (no-windows !)
   abort: $ENOTDIR$: '' (windows !)
+  abort: $ENOTDIR$: ''
   [255]
 
 #if no-outer-repo

test-double-merge.t

--- c:/hgdev/src/tests/test-double-merge.t
+++ c:/hgdev/src/tests/test-double-merge.t.err
@@ -35,9 +35,10 @@
   resolving manifests
    branchmerge: True, force: False, partial: False
    ancestor: e6dc8efe11cc, local: 6a0df1dad128+, remote: 484bf6903104
+  starting 4 threads for background file closing
    preserving foo for resolve of bar
+  starting 4 threads for background file closing (?)
    preserving foo for resolve of foo
-  starting 4 threads for background file closing (?)
    bar: remote copied from foo -> m (premerge)
   picked tool ':merge' for bar (binary False symlink False changedelete False)
   merging foo and bar to bar

test-encoding.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-encoding.t\n+++ c:/hgdev/src/tests/test-encoding.t.err\n@@ -29,171 +29,127 @@\n   ? latin-1-tag\n   ? utf-8\n   $ HGENCODING=ascii hg ci -l latin-1\n-  transaction abort!\n-  rollback completed\n-  abort: decoding near \' encoded: \\xe9\': \'ascii\' codec can\'t decode byte 0xe9 in position 20: ordinal not in range(128)! (esc)\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2127, in _docommit\n+      node = cmdutil.commit(ui, repo, commitfunc, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2754, in commit\n+      return commitfunc(ui, repo, message, matcher, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2124, in commitfunc\n+      extra=extra,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n these should work\n \n   $ echo "latin-1" > a\n   $ HGENCODING=latin-1 hg ci -l latin-1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo "utf-8" > a\n   $ HGENCODING=utf-8 hg ci -l utf-8\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ HGENCODING=latin-1 hg tag `cat latin-1-tag`\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ HGENCODING=latin-1 hg branch `cat latin-1-tag`\n   marked working directory as branch \\xe9 (esc)\n   (branches are permanent and global, did you want a bookmark?)\n   $ HGENCODING=latin-1 hg ci -m \'latin1 branch\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg -q rollback\n   $ HGENCODING=latin-1 hg branch\n-  \\xe9 (esc)\n+  default\n   $ HGENCODING=latin-1 hg ci -m \'latin1 branch\'\n+  nothing changed\n+  [1]\n   $ rm .hg/branch\n \n hg log (ascii)\n \n   $ hg --encoding ascii log\n-  changeset:   5:a52c0692f24a\n-  branch:      ?\n-  tag:         tip\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     latin1 branch\n-  \n-  changeset:   4:94db611b4196\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     Added tag ? for changeset ca661e7520de\n-  \n-  changeset:   3:ca661e7520de\n-  tag:         ?\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     utf-8 e\' encoded: ?\n-  \n-  changeset:   2:650c6f3d55dd\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     latin-1 e\' encoded: ?\n-  \n-  changeset:   1:0e5b7e3f9c4a\n-  user:        test\n-  date:        Mon Jan 12 13:46:40 1970 +0000\n-  summary:     koi8-r: ????? = u\'\\u0440\\u0442\\u0443\\u0442\\u044c\'\n-  \n-  changeset:   0:1e78a93102a3\n-  user:        test\n-  date:        Mon Jan 12 13:46:40 1970 +0000\n-  summary:     latin-1 e\': ? = u\'\\xe9\'\n-  \n \n hg log (latin-1)\n \n   $ hg --encoding latin-1 log\n-  changeset:   5:a52c0692f24a\n-  branch:      \\xe9 (esc)\n-  tag:         tip\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     latin1 branch\n-  \n-  changeset:   4:94db611b4196\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     Added tag \\xe9 for changeset ca661e7520de (esc)\n-  \n-  changeset:   3:ca661e7520de\n-  tag:         \\xe9 (esc)\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     utf-8 e\' encoded: \\xe9 (esc)\n-  \n-  changeset:   2:650c6f3d55dd\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     latin-1 e\' encoded: \\xe9 (esc)\n-  \n-  changeset:   1:0e5b7e3f9c4a\n-  user:        test\n-  date:        Mon Jan 12 13:46:40 1970 +0000\n-  summary:     koi8-r: \\xd2\\xd4\\xd5\\xd4\\xd8 = u\'\\\\u0440\\\\u0442\\\\u0443\\\\u0442\\\\u044c\' (esc)\n-  \n-  changeset:   0:1e78a93102a3\n-  user:        test\n-  date:        Mon Jan 12 13:46:40 1970 +0000\n-  summary:     latin-1 e\': \\xe9 = u\'\\\\xe9\' (esc)\n-  \n \n hg log (utf-8)\n \n   $ hg --encoding utf-8 log\n-  changeset:   5:a52c0692f24a\n-  branch:      \\xc3\\xa9 (esc)\n-  tag:         tip\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     latin1 branch\n-  \n-  changeset:   4:94db611b4196\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     Added tag \\xc3\\xa9 for changeset ca661e7520de (esc)\n-  \n-  changeset:   3:ca661e7520de\n-  tag:         \\xc3\\xa9 (esc)\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     utf-8 e\' encoded: \\xc3\\xa9 (esc)\n-  \n-  changeset:   2:650c6f3d55dd\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     latin-1 e\' encoded: \\xc3\\xa9 (esc)\n-  \n-  changeset:   1:0e5b7e3f9c4a\n-  user:        test\n-  date:        Mon Jan 12 13:46:40 1970 +0000\n-  summary:     koi8-r: \\xc3\\x92\\xc3\\x94\\xc3\\x95\\xc3\\x94\\xc3\\x98 = u\'\\\\u0440\\\\u0442\\\\u0443\\\\u0442\\\\u044c\' (esc)\n-  \n-  changeset:   0:1e78a93102a3\n-  user:        test\n-  date:        Mon Jan 12 13:46:40 1970 +0000\n-  summary:     latin-1 e\': \\xc3\\xa9 = u\'\\\\xe9\' (esc)\n-  \n \n hg tags (ascii)\n \n   $ HGENCODING=ascii hg tags\n-  tip                                5:a52c0692f24a\n-  ?                                  3:ca661e7520de\n+  tip                               -1:000000000000\n \n hg tags (latin-1)\n \n   $ HGENCODING=latin-1 hg tags\n-  tip                                5:a52c0692f24a\n-  \\xe9                                  3:ca661e7520de (esc)\n+  tip                               -1:000000000000\n \n hg tags (utf-8)\n \n   $ HGENCODING=utf-8 hg tags\n-  tip                                5:a52c0692f24a\n-  \\xc3\\xa9                                  3:ca661e7520de (esc)\n+  tip                               -1:000000000000\n \n hg tags (JSON)\n \n   $ hg tags -Tjson\n   [\n    {\n-    "node": "a52c0692f24ad921c0a31e1736e7635a8b23b670",\n-    "rev": 5,\n+    "node": "0000000000000000000000000000000000000000",\n+    "rev": -1,\n     "tag": "tip",\n-    "type": ""\n-   },\n-   {\n-    "node": "ca661e7520dec3f5438a63590c350bebadb04989",\n-    "rev": 3,\n-    "tag": "\\xc3\\xa9", (esc)\n     "type": ""\n    }\n   ]\n@@ -201,76 +157,38 @@\n hg branches (ascii)\n \n   $ HGENCODING=ascii hg branches\n-  ?                              5:a52c0692f24a\n-  default                        4:94db611b4196 (inactive)\n \n hg branches (latin-1)\n \n   $ HGENCODING=latin-1 hg branches\n-  \\xe9                              5:a52c0692f24a (esc)\n-  default                        4:94db611b4196 (inactive)\n \n hg branches (utf-8)\n \n   $ HGENCODING=utf-8 hg branches\n-  \\xc3\\xa9                              5:a52c0692f24a (esc)\n-  default                        4:94db611b4196 (inactive)\n   $ echo \'[ui]\' >> .hg/hgrc\n   $ echo \'fallbackencoding = koi8-r\' >> .hg/hgrc\n \n hg log (utf-8)\n \n   $ HGENCODING=utf-8 hg log\n-  changeset:   5:a52c0692f24a\n-  branch:      \\xc3\\xa9 (esc)\n-  tag:         tip\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     latin1 branch\n-  \n-  changeset:   4:94db611b4196\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     Added tag \\xc3\\xa9 for changeset ca661e7520de (esc)\n-  \n-  changeset:   3:ca661e7520de\n-  tag:         \\xc3\\xa9 (esc)\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     utf-8 e\' encoded: \\xc3\\xa9 (esc)\n-  \n-  changeset:   2:650c6f3d55dd\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     latin-1 e\' encoded: \\xc3\\xa9 (esc)\n-  \n-  changeset:   1:0e5b7e3f9c4a\n-  user:        test\n-  date:        Mon Jan 12 13:46:40 1970 +0000\n-  summary:     koi8-r: \\xd1\\x80\\xd1\\x82\\xd1\\x83\\xd1\\x82\\xd1\\x8c = u\'\\\\u0440\\\\u0442\\\\u0443\\\\u0442\\\\u044c\' (esc)\n-  \n-  changeset:   0:1e78a93102a3\n-  user:        test\n-  date:        Mon Jan 12 13:46:40 1970 +0000\n-  summary:     latin-1 e\': \\xd0\\x98 = u\'\\\\xe9\' (esc)\n-  \n \n hg log (dolphin)\n \n   $ HGENCODING=dolphin hg log\n-  abort: unknown encoding: dolphin\n-  (please check your locale settings)\n-  [255]\n   $ HGENCODING=ascii hg branch `cat latin-1-tag`\n   abort: decoding near \'\\xe9\': \'ascii\' codec can\'t decode byte 0xe9 in position 0: ordinal not in range(128)! (esc)\n   [255]\n   $ cp latin-1-tag .hg/branch\n   $ HGENCODING=latin-1 hg ci -m \'auto-promote legacy name\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Test roundtrip encoding of lookup tables when not using UTF-8 (issue2763)\n \n   $ HGENCODING=latin-1 hg up `cat latin-1-tag`\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: unknown revision \'\\xe9\' (esc)\n+  [255]\n \n   $ cd ..\n \n', 2249, 2251, 'truncated \\uXXXX escape') decoding diff, sorry

test-eol-hook.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-eol-hook.t\n+++ c:/hgdev/src/tests/test-eol-hook.t.err\n@@ -41,21 +41,71 @@\n   adding file changes\n   error: pretxnchangegroup hook failed: end-of-line check failed:\n     a.txt in a8ee6548cd86 should not have CRLF line endings\n-  transaction abort!\n-  rollback completed\n-  abort: end-of-line check failed:\n-    a.txt in a8ee6548cd86 should not have CRLF line endings\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: eol\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 5612, in push\n+      opargs=opargs,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 458, in push\n+      _pushbundle2(pushop)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1125, in _pushbundle2\n+      b\'url\': pushop.remote.url(),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\thirdparty\\concurrent\\futures\\_base.py", line 457, in result\n+      return self.__get_result()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 246, in callcommand\n+      result = fn(**pycompat.strkwargs(args))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 360, in unbundle\n+      ret = exchange.unbundle(self._repo, bundle, heads, b\'push\', url)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 2645, in unbundle\n+      lockmod.release(lockandtr[2], lockandtr[1], lockandtr[0])\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ printf "first\\nsecond\\nthird\\n" > a.txt\n   $ hg commit -m \'LF a.txt (fixed)\'\n   $ hg push ../main\n   pushing to ../main\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 2 changes to 1 files\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ printf "first\\nsecond\\nthird\\n" > crlf.txt\n   $ hg add crlf.txt\n@@ -63,15 +113,8 @@\n   $ hg push ../main\n   pushing to ../main\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  error: pretxnchangegroup hook failed: end-of-line check failed:\n-    crlf.txt in 004ba2132725 should not have LF line endings\n-  transaction abort!\n-  rollback completed\n-  abort: end-of-line check failed:\n-    crlf.txt in 004ba2132725 should not have LF line endings\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n   $ printf "first\\r\\nsecond\\r\\nthird\\r\\n" > crlf.txt\n@@ -79,10 +122,9 @@\n   $ hg push ../main\n   pushing to ../main\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 2 changes to 1 files\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ printf "first\\r\\nsecond" > b.txt\n   $ hg add b.txt\n@@ -90,15 +132,8 @@\n   $ hg push ../main\n   pushing to ../main\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  error: pretxnchangegroup hook failed: end-of-line check failed:\n-    b.txt in fbcf9b1025f5 should not have CRLF line endings\n-  transaction abort!\n-  rollback completed\n-  abort: end-of-line check failed:\n-    b.txt in fbcf9b1025f5 should not have CRLF line endings\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n   $ hg up -r -2\n@@ -110,15 +145,8 @@\n   $ hg push -f ../main\n   pushing to ../main\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  error: pretxnchangegroup hook failed: end-of-line check failed:\n-    b.txt in fbcf9b1025f5 should not have CRLF line endings\n-  transaction abort!\n-  rollback completed\n-  abort: end-of-line check failed:\n-    b.txt in fbcf9b1025f5 should not have CRLF line endings\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n Test checkheadshook alias\n@@ -130,15 +158,8 @@\n   $ hg push -f ../main\n   pushing to ../main\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  error: pretxnchangegroup hook failed: end-of-line check failed:\n-    b.txt in fbcf9b1025f5 should not have CRLF line endings\n-  transaction abort!\n-  rollback completed\n-  abort: end-of-line check failed:\n-    b.txt in fbcf9b1025f5 should not have CRLF line endings\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n We can fix the head and push again\n@@ -150,12 +171,11 @@\n   $ hg push -f ../main\n   pushing to ../main\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 3 changesets with 3 changes to 2 files (+1 heads)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg -R ../main rollback\n-  repository tip rolled back to revision 5 (undo push)\n+  repository tip rolled back to revision -1 (undo push)\n \n Test it still fails with checkallhook\n \n@@ -166,15 +186,8 @@\n   $ hg push -f ../main\n   pushing to ../main\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  error: pretxnchangegroup hook failed: end-of-line check failed:\n-    b.txt in fbcf9b1025f5 should not have CRLF line endings\n-  transaction abort!\n-  rollback completed\n-  abort: end-of-line check failed:\n-    b.txt in fbcf9b1025f5 should not have CRLF line endings\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n But we can push the clean head\n@@ -182,10 +195,9 @@\n   $ hg push -r7 -f ../main\n   pushing to ../main\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Test multiple files/revisions output\n \n@@ -195,17 +207,8 @@\n   $ hg push -f ../main\n   pushing to ../main\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  error: pretxnchangegroup hook failed: end-of-line check failed:\n-    b.txt in fbcf9b1025f5 should not have CRLF line endings\n-    d.txt in a7040e68714f should not have CRLF line endings\n-  transaction abort!\n-  rollback completed\n-  abort: end-of-line check failed:\n-    b.txt in fbcf9b1025f5 should not have CRLF line endings\n-    d.txt in a7040e68714f should not have CRLF line endings\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n   $ cd ..\n', 2303, 2305, 'truncated \\uXXXX escape') decoding diff, sorry

test-eol.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-eol.t\n+++ c:/hgdev/src/tests/test-eol.t.err\n@@ -185,10 +185,65 @@\n   third\n   % hg commit of inconsistent .txt file marked as binary (should work)\n   % hg commit of inconsistent .txt file marked as native (should fail)\n-  abort: inconsistent newline style in a.txt\n-  \n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: eol\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2127, in _docommit\n+      node = cmdutil.commit(ui, repo, commitfunc, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2754, in commit\n+      return commitfunc(ui, repo, message, matcher, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2124, in commitfunc\n+      extra=extra,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   % hg commit --config eol.only-consistent=False (should work)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   % hg commit of binary .txt file marked as native (binary files always okay)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   $ dotest CRLF\n   % hg clone repo repo-CRLF\n   2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n@@ -229,10 +284,65 @@\n   third\\r (esc)\n   % hg commit of inconsistent .txt file marked as binary (should work)\n   % hg commit of inconsistent .txt file marked as native (should fail)\n-  abort: inconsistent newline style in a.txt\n-  \n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: eol\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2127, in _docommit\n+      node = cmdutil.commit(ui, repo, commitfunc, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2754, in commit\n+      return commitfunc(ui, repo, message, matcher, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2124, in commitfunc\n+      extra=extra,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   % hg commit --config eol.only-consistent=False (should work)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   % hg commit of binary .txt file marked as native (binary files always okay)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   $ rm -r repo\n   $ makerepo CRLF\n   % setup CRLF repository\n@@ -279,10 +389,65 @@\n   third\n   % hg commit of inconsistent .txt file marked as binary (should work)\n   % hg commit of inconsistent .txt file marked as native (should fail)\n-  abort: inconsistent newline style in a.txt\n-  \n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: eol\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2127, in _docommit\n+      node = cmdutil.commit(ui, repo, commitfunc, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2754, in commit\n+      return commitfunc(ui, repo, message, matcher, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2124, in commitfunc\n+      extra=extra,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   % hg commit --config eol.only-consistent=False (should work)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   % hg commit of binary .txt file marked as native (binary files always okay)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   $ dotest CRLF\n   % hg clone repo repo-CRLF\n   2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n@@ -323,10 +488,65 @@\n   third\\r (esc)\n   % hg commit of inconsistent .txt file marked as binary (should work)\n   % hg commit of inconsistent .txt file marked as native (should fail)\n-  abort: inconsistent newline style in a.txt\n-  \n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: eol\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2127, in _docommit\n+      node = cmdutil.commit(ui, repo, commitfunc, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2754, in commit\n+      return commitfunc(ui, repo, message, matcher, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2124, in commitfunc\n+      extra=extra,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   % hg commit --config eol.only-consistent=False (should work)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   % hg commit of binary .txt file marked as native (binary files always okay)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   $ rm -r repo\n \n Mixed tests\n@@ -465,14 +685,68 @@\n   > only-consistent = True\n   > EOF\n   $ hg commit -m \'inconsistent\'\n-  abort: inconsistent newline style in a.txt\n-  \n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: eol\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2127, in _docommit\n+      node = cmdutil.commit(ui, repo, commitfunc, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2754, in commit\n+      return commitfunc(ui, repo, message, matcher, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2124, in commitfunc\n+      extra=extra,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cat > .hgeol << EOF\n   > [eol]\n   > only-consistent = False\n   > EOF\n   $ hg commit -m \'consistent\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg init subrepo\n   $ hg -R subrepo pull -qu .\n@@ -480,16 +754,18 @@\n   $ hg ci -Am "add subrepo"\n   adding .hgeol\n   adding .hgsub\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg archive -S ../archive\n+  abort: no working directory: please specify a revision\n+  [10]\n   $ find ../archive/* | sort\n-  ../archive/a.txt\n-  ../archive/subrepo\n-  ../archive/subrepo/a.txt\n+  find: `../archive/*\': $ENOENT$\n   $ cat ../archive/a.txt ../archive/subrepo/a.txt\n-  first\\r (esc)\n-  second\\r (esc)\n-  first\\r (esc)\n-  second\\r (esc)\n+  cat: ../archive/a.txt: $ENOENT$\n+  cat: ../archive/subrepo/a.txt: $ENOENT$\n+  [1]\n \n Test trailing newline\n \n@@ -551,6 +827,67 @@\n \n   $ hg mv a.txt b.txt\n   $ hg ci --amend -q\n+  strip failed, backup bundle stored in \'$TESTTMP\\trailing\\.hg\\strip-backup/8f6f21239920-06be46fa-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\trailing\\.hg\\strip-backup/8f6f21239920-28c1d7ef-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\trailing\\.hg\\strip-backup/8f6f21239920-28c1d7ef-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: eol\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg diff -c.\n   diff --git a/a.txt b/b.txt\n   rename from a.txt\n', 2197, 2199, 'truncated \\uXXXX escape') decoding diff, sorry

test-exchange-obsmarkers-case-D1.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-exchange-obsmarkers-case-D1.t\n+++ c:/hgdev/src/tests/test-exchange-obsmarkers-case-D1.t.err\n@@ -68,9 +68,64 @@\n   1 new obsolescence markers\n   obsoleted 1 changesets\n   $ hg strip --hidden -q \'desc(A0)\'\n+  strip failed, backup bundle stored in \'$TESTTMP\\D.1\\main\\.hg\\strip-backup/28b51eb45704-a6014ac7-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\D.1\\main\\.hg\\strip-backup/28b51eb45704-c49a5adf-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\D.1\\main\\.hg\\strip-backup/28b51eb45704-c49a5adf-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log -G --hidden\n   @  e5ea8f9c7314 (draft): A1\n   |\n+  | x  06055a7959d4 (draft): B\n+  | |\n+  | x  28b51eb45704 (draft): A0\n+  |/\n   o  a9bdc8b26820 (public): O\n   \n   $ inspect_obsmarkers\n@@ -104,6 +159,8 @@\n   remote: adding file changes\n   remote: added 1 changesets with 1 changes to 1 files\n   remote: 2 new obsolescence markers\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   ## post push state\n   # obstore: main\n   06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n@@ -152,6 +209,8 @@\n   remote: adding file changes\n   remote: added 1 changesets with 1 changes to 1 files\n   remote: 2 new obsolescence markers\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   ## post push state\n   # obstore: main\n   06055a7959d4128e6e3bccfd01482e83a2db8a3a 0 {28b51eb45704506b5c603decd6bf7ac5e0f6a52f} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n', 2494, 2496, 'truncated \\uXXXX escape') decoding diff, sorry

test-exchange-obsmarkers-case-D2.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-exchange-obsmarkers-case-D2.t\n+++ c:/hgdev/src/tests/test-exchange-obsmarkers-case-D2.t.err\n@@ -60,9 +60,60 @@\n   1 new obsolescence markers\n   obsoleted 1 changesets\n   $ hg strip --hidden -q \'desc(A1)\'\n+  strip failed, backup bundle stored in \'$TESTTMP\\D.2\\main\\.hg\\strip-backup/e5ea8f9c7314-c49a5adf-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log -G --hidden\n-  x  28b51eb45704 (draft): A0\n+  x  e5ea8f9c7314 (draft): A1\n   |\n+  | x  28b51eb45704 (draft): A0\n+  |/\n   @  a9bdc8b26820 (public): O\n   \n   $ inspect_obsmarkers\n@@ -89,6 +140,8 @@\n   searching for changes\n   no changes found\n   remote: 2 new obsolescence markers\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   ## post push state\n   # obstore: main\n   28b51eb45704506b5c603decd6bf7ac5e0f6a52f e5ea8f9c73143125d36658e90ef70c6d2027a5b7 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n', 2244, 2246, 'truncated \\uXXXX escape') decoding diff, sorry

test-exchange-obsmarkers-case-D3.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-exchange-obsmarkers-case-D3.t\n+++ c:/hgdev/src/tests/test-exchange-obsmarkers-case-D3.t.err\n@@ -63,7 +63,58 @@\n   1 new obsolescence markers\n   obsoleted 1 changesets\n   $ hg strip --hidden -q \'desc(A1)\'\n+  strip failed, backup bundle stored in \'$TESTTMP\\D.3\\main\\.hg\\strip-backup/6aa67a7b4baa-ee516493-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log -G --hidden\n+  x  6aa67a7b4baa (draft): A1\n+  |\n   @  35b183996678 (draft): B\n   |\n   | x  28b51eb45704 (draft): A0\n@@ -94,6 +145,8 @@\n   pushing to pushdest\n   searching for changes\n   no changes found\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   ## post push state\n   # obstore: main\n   28b51eb45704506b5c603decd6bf7ac5e0f6a52f 6aa67a7b4baa6fb41b06aed38d5b1201436546e2 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n', 2244, 2246, 'truncated \\uXXXX escape') decoding diff, sorry

test-extdiff.t

--- c:/hgdev/src/tests/test-extdiff.t
+++ c:/hgdev/src/tests/test-extdiff.t.err
@@ -71,6 +71,7 @@
   $ hg falabala -r 0:1
   diffing "*\extdiff.*\a.8a5febb7f867\a" "a.34eed99112ab\a" (glob) (windows !)
   diffing */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
+  diffing "c:\temp\extdiff.ljhbqm\a.8a5febb7f867\a" "a.34eed99112ab\a"
 (esc)
   [1]
 
 Specifying an empty revision should abort.
@@ -96,6 +97,7 @@
   $ hg falabala
   diffing "*\extdiff.*\a.2a13a4d2da36\a" "*\a\a" (glob) (windows !)
   diffing */extdiff.*/a.2a13a4d2da36/a */a/a (glob) (no-windows !)
+  diffing "c:\temp\extdiff.v9f86g\a.2a13a4d2da36\a" "$TESTTMP\a\a"
 (esc)
   [1]
 
 
@@ -106,6 +108,7 @@
   $ hg falabala -c 1
   diffing "*\extdiff.*\a.8a5febb7f867\a" "a.34eed99112ab\a" (glob) (windows !)
   diffing */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
+  diffing "c:\temp\extdiff.omfqgl\a.8a5febb7f867\a" "a.34eed99112ab\a"
 (esc)
   [1]
 
 Check diff are made from the first parent:
@@ -113,6 +116,7 @@
   $ hg falabala -c 3 || echo "diff-like tools yield a non-zero exit code"
   diffing "*\extdiff.*\a.2a13a4d2da36\a" "a.46c0e4daeb72\a" (glob) (windows !)
   diffing */extdiff.*/a.2a13a4d2da36/a a.46c0e4daeb72/a (glob) (no-windows !)
+  diffing "c:\temp\extdiff.7ealiw\a.2a13a4d2da36\a" "a.46c0e4daeb72\a"
 (esc)
   diff-like tools yield a non-zero exit code
 
 issue3153: ensure using extdiff with removed subrepos doesn't crash:
@@ -146,6 +150,8 @@
   diffing */extdiff.*/a.46c0e4daeb72/a a.81906f2b98ac/a (glob) (no-windows !)
   diffing "*\extdiff.*\a.46c0e4daeb72\b" "a.81906f2b98ac\b" (glob) (windows !)
   diffing */extdiff.*/a.46c0e4daeb72/b a.81906f2b98ac/b (glob) (no-windows !)
+  diffing "c:\temp\extdiff.tzvkbj\a.46c0e4daeb72\a" "a.81906f2b98ac\a"
 (esc)
+  diffing "c:\temp\extdiff.tzvkbj\a.46c0e4daeb72\b" "a.81906f2b98ac\b"
 (esc)
   [1]
 
 Test --per-file option for gui tool:
@@ -190,6 +196,7 @@
   diff b (2 of 2) [Yns?] y
   diffing "*\extdiff.*\a.46c0e4daeb72\b" "a.81906f2b98ac\b" (glob) (windows !)
   diffing */extdiff.*/a.46c0e4daeb72/b a.81906f2b98ac/b (glob) (no-windows !)
+  diffing "c:\temp\extdiff.heub6u\a.46c0e4daeb72\b" "a.81906f2b98ac\b"
 (esc)
   [1]
 
 Test --per-file and --confirm options with skipping:
@@ -215,12 +222,15 @@
   $ hg --debug 4463a | grep '^running'
   running 'echo a-naked 'single quoted' "double quoted" "*\a" "*\a"' in */extdiff.* (glob) (windows !)
   running 'echo a-naked 'single quoted' "double quoted" */a $TESTTMP/a/a' in */extdiff.* (glob) (no-windows !)
+  running 'echo a-naked 'single quoted' "double quoted" "c:\temp\extdiff.iadq0f\a.8a5febb7f867\a" "C:\Temp\hgtests.dstqqw\child259\test-extdiff.t\a\a"' in c:	emp\extdiff.iadq0f
   $ hg --debug 4463b | grep '^running'
   running 'echo b-naked 'single quoted' "double quoted" "*\a" "*\a"' in */extdiff.* (glob) (windows !)
   running 'echo b-naked 'single quoted' "double quoted" */a $TESTTMP/a/a' in */extdiff.* (glob) (no-windows !)
+  running 'echo b-naked 'single quoted' "double quoted" "c:\temp\extdiff.ii1fuo\a.8a5febb7f867\a" "C:\Temp\hgtests.dstqqw\child259\test-extdiff.t\a\a"' in c:	emp\extdiff.ii1fuo
   $ hg --debug echo | grep '^running'
   running '*echo* "*\a" "*\a"' in */extdiff.* (glob) (windows !)
   running '*echo */a $TESTTMP/a/a' in */extdiff.* (glob) (no-windows !)
+  running '"C:\hgdev\MinGW\msys\1.0\bin\echo.exe" "c:\temp\extdiff.swa3ct\a.8a5febb7f867\a" "C:\Temp\hgtests.dstqqw\child259\test-extdiff.t\a\a"' in c:	emp\extdiff.swa3ct
 
 (getting options from other than extdiff section)
 
@@ -241,18 +251,23 @@
   $ hg --debug 4463b2 | grep '^running'
   running 'echo b2-naked 'single quoted' "double quoted" "*\a" "*\a"' in */extdiff.* (glob) (windows !)
   running 'echo b2-naked 'single quoted' "double quoted" */a $TESTTMP/a/a' in */extdiff.* (glob) (no-windows !)
+  running 'echo b2-naked 'single quoted' "double quoted" "c:\temp\extdiff.1j5mzg\a.8a5febb7f867\a" "C:\Temp\hgtests.dstqqw\child259\test-extdiff.t\a\a"' in c:	emp\extdiff.1j5mzg
   $ hg --debug 4463b3 | grep '^running'
   running 'echo b3-naked 'single quoted' "double quoted" "*\a" "*\a"' in */extdiff.* (glob) (windows !)
   running 'echo b3-naked 'single quoted' "double quoted" */a $TESTTMP/a/a' in */extdiff.* (glob) (no-windows !)
+  running 'echo b3-naked 'single quoted' "double quoted" "c:\temp\extdiff.td52wp\a.8a5febb7f867\a" "C:\Temp\hgtests.dstqqw\child259\test-extdiff.t\a\a"' in c:	emp\extdiff.td52wp
   $ hg --debug 4463b4 | grep '^running'
   running 'echo "*\a" "*\a"' in */extdiff.* (glob) (windows !)
   running 'echo */a $TESTTMP/a/a' in */extdiff.* (glob) (no-windows !)
+  running 'echo "c:\temp\extdiff.xja9xu\a.8a5febb7f867\a" "C:\Temp\hgtests.dstqqw\child259\test-extdiff.t\a\a"' in c:	emp\extdiff.xja9xu
   $ hg --debug 4463b4 --option b4-naked --option 'being quoted' | grep '^running'
   running 'echo b4-naked "being quoted" "*\a" "*\a"' in */extdiff.* (glob) (windows !)
   running "echo b4-naked 'being quoted' */a $TESTTMP/a/a" in */extdiff.* (glob) (no-windows !)
+  running 'echo b4-naked "being quoted" "c:\temp\extdiff.bl3o9l\a.8a5febb7f867\a" "C:\Temp\hgtests.dstqqw\child259\test-extdiff.t\a\a"' in c:	emp\extdiff.bl3o9l
   $ hg --debug extdiff -p echo --option echo-naked --option 'being quoted' | grep '^running'
   running 'echo echo-naked "being quoted" "*\a" "*\a"' in */extdiff.* (glob) (windows !)
   running "echo echo-naked 'being quoted' */a $TESTTMP/a/a" in */extdiff.* (glob) (no-windows !)
+  running 'echo echo-naked "being quoted" "c:\temp\extdiff.fhtanz\a.8a5febb7f867\a" "C:\Temp\hgtests.dstqqw\child259\test-extdiff.t\a\a"' in c:	emp\extdiff.fhtanz
 
   $ touch 'sp ace'
   $ hg add 'sp ace'
@@ -273,6 +288,7 @@
   $ hg --debug odd | grep '^running'
   running '"*\echo.exe" --foo="sp ace" "sp ace" --bar="sp ace" "sp ace"' in * (glob) (windows !)
   running "*/echo --foo='sp ace' 'sp ace' --bar='sp ace' 'sp ace'" in * (glob) (no-windows !)
+  running '"C:\hgdev\MinGW\msys\1.0\bin\echo.exe" --foo="sp ace" "sp ace" --bar="sp ace" "sp ace"' in c:	emp\extdiff.vcpubi
 
 Empty argument must be quoted
 
@@ -286,6 +302,7 @@
   $ hg --debug kdiff3 -r0 | grep '^running'
   running 'echo --L1 "@0" --L2 "" a.8a5febb7f867 a' in * (glob) (windows !)
   running "echo --L1 '@0' --L2 '' a.8a5febb7f867 a" in * (glob) (no-windows !)
+  running 'echo --L1 "@0" --L2 "" a.8a5febb7f867 a' in c:	emp\extdiff.aaylp0
 
 
 Test extdiff of multiple files in tmp dir:
@@ -371,11 +388,13 @@
   $ hg extdiff -p echo -o this -c 1
   this "*\a.8a5febb7f867\a" "a.34eed99112ab\a" (glob) (windows !)
   this */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
+  this "c:\temp\extdiff.cjzguc\a.8a5febb7f867\a" "a.34eed99112ab\a"
 (esc)
   [1]
 
   $ hg falabala -o this -c 1
   diffing this "*\a.8a5febb7f867\a" "a.34eed99112ab\a" (glob) (windows !)
   diffing this */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
+  diffing this "c:\temp\extdiff.map7am\a.8a5febb7f867\a" "a.34eed99112ab\a"
 (esc)
   [1]
 
 Test extdiff's handling of options with spaces in them:
@@ -383,11 +402,13 @@
   $ hg edspace -c 1
   "name  <user@example.com>" "*\a.8a5febb7f867\a" "a.34eed99112ab\a" (glob) (windows !)
   name  <user@example.com> */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
+  "name  <user@example.com>" "c:\temp\extdiff.vy08cx\a.8a5febb7f867\a" "a.34eed99112ab\a"
 (esc)
   [1]
 
   $ hg extdiff -p echo -o "name  <user@example.com>" -c 1
   "name  <user@example.com>" "*\a.8a5febb7f867\a" "a.34eed99112ab\a" (glob) (windows !)
   name  <user@example.com> */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
+  "name  <user@example.com>" "c:\temp\extdiff.cfwnvo\a.8a5febb7f867\a" "a.34eed99112ab\a"
 (esc)
   [1]
 
 Test with revsets:
@@ -395,11 +416,13 @@
   $ hg extdif -p echo -c "rev(1)"
   "*\a.8a5febb7f867\a" "a.34eed99112ab\a" (glob) (windows !)
   */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
+  "c:\temp\extdiff._eb6vf\a.8a5febb7f867\a" "a.34eed99112ab\a"
 (esc)
   [1]
 
   $ hg extdif -p echo -r "0::1"
   "*\a.8a5febb7f867\a" "a.34eed99112ab\a" (glob) (windows !)
   */extdiff.*/a.8a5febb7f867/a a.34eed99112ab/a (glob) (no-windows !)
+  "c:\temp\extdiff.lrglth\a.8a5febb7f867\a" "a.34eed99112ab\a"
 (esc)
   [1]
 
 Fallback to merge-tools.tool.executable|regkey
@@ -440,12 +463,14 @@
     b
   running '$TESTTMP/a/dir/tool.bat a.* a' in */extdiff.* (glob) (windows !)
   running '$TESTTMP/a/dir/tool.sh a.* a' in */extdiff.* (glob) (no-windows !)
-  ** custom diff **
-  file changed while diffing. Overwriting: $TESTTMP/a/a (src: */extdiff.*/a/a) (glob)
+  running 'tl a.8a5febb7f867 a' in c:	emp\extdiff.awpzro
+  'tl' is not recognized as an internal or external command,
 (esc)
+  operable program or batch file.
 (esc)
   cleaning up temp directory
   [1]
   $ cat a
-  a
+  changed
+  edited
 
 #if execbit
   $ [ -x a ]
@@ -527,19 +552,23 @@
   $ hg falabala
   diffing nul "*\a" (glob) (windows !)
   diffing /dev/null */a (glob) (no-windows !)
+  diffing nul "$TESTTMP\testsinglefile\a"
 (esc)
   [1]
   $ hg ci -qm a
   $ hg falabala -c .
   diffing nul "*\a" (glob) (windows !)
   diffing /dev/null */a (glob) (no-windows !)
+  diffing nul "testsinglefile.cb9a9f314b8b\a"
 (esc)
   [1]
   $ echo a >> a
   $ hg falabala
   diffing "*\a" "*\a" (glob) (windows !)
   diffing */a */a (glob) (no-windows !)
+  diffing "c:\temp\extdiff.l7kyp0\testsinglefile.cb9a9f314b8b\a" "$TESTTMP\testsinglefile\a"
 (esc)
   [1]
   $ hg ci -qm 2a
   $ hg falabala -c .
   diffing "*\a" "*\a" (glob) (windows !)
   diffing */a */a (glob) (no-windows !)
-  [1]
+  diffing "c:\temp\extdiff.smebhx\testsinglefile.cb9a9f314b8b\a" "testsinglefile.2c635a92f535\a"
 (esc)
+  [1]

test-extension.t

--- c:/hgdev/src/tests/test-extension.t
+++ c:/hgdev/src/tests/test-extension.t.err
@@ -80,10 +80,11 @@
   Foo
   $ hg foo --quiet
   uisetup called (no-chg !)
-  uipopulate called (1 times)
+  uisetup called
   uipopulate called (1 times)
   uipopulate called (1 times) (chg !)
   uipopulate called (1 times) (chg !)
+  uipopulate called (1 times)
   uipopulate called (1 times)
   reposetup called for a
   ui == repo.ui
@@ -92,10 +93,13 @@
   uisetup called [debug] (no-chg !)
   uisetup called (no-chg !)
   uisetup called [status] (no-chg !)
+  uisetup called [debug]
+  uisetup called
+  uipopulate called (1 times) (chg !)
+  uipopulate called (1 times) (chg !)
+  uisetup called [status]
   uipopulate called (1 times)
   uipopulate called (1 times)
-  uipopulate called (1 times) (chg !)
-  uipopulate called (1 times) (chg !)
   uipopulate called (1 times)
   reposetup called for a
   ui == repo.ui
@@ -105,8 +109,10 @@
   $ hg clone a b
   uisetup called (no-chg !)
   uisetup called [status] (no-chg !)
+  uisetup called
+  uipopulate called (1 times) (chg !)
+  uisetup called [status]
   uipopulate called (1 times)
-  uipopulate called (1 times) (chg !)
   uipopulate called (1 times)
   reposetup called for a
   ui == repo.ui
@@ -119,8 +125,10 @@
   $ hg bar
   uisetup called (no-chg !)
   uisetup called [status] (no-chg !)
+  uisetup called
+  uipopulate called (1 times) (chg !)
+  uisetup called [status]
   uipopulate called (1 times)
-  uipopulate called (1 times) (chg !)
   Bar
   $ echo 'foobar = !' >> $HGRCPATH
 
@@ -248,7 +256,7 @@
   $ export PATH_INFO
   $ SCRIPT_NAME='' QUERY_STRING='rev=foo() and bar()' "$PYTHON" hgweb.cgi    >     | grep '<a href="/rev/[0-9a-z]*">'
-     <a href="/rev/c24b9ac61126">add file</a>
+  [1]
 
   $ echo 'foo = !' >> $HGRCPATH
   $ echo 'bar = !' >> $HGRCPATH
@@ -287,7 +295,7 @@
   > NO_CHECK_EOF
   $ "$PYTHON" $TESTTMP/unflush.py loadabs.py
   $ (PYTHONPATH=${PYTHONPATH}${PATHSEP}${TESTTMP}/libroot; hg --config extensions.loadabs=loadabs.py root)
-  ambigabs.s=libroot/ambig.py
+  *** failed to import extension loadabs from loadabs.py: No module named mod
   $TESTTMP/a
 
 #if no-py3

test-extra-filelog-entry.t

--- c:/hgdev/src/tests/test-extra-filelog-entry.t
+++ c:/hgdev/src/tests/test-extra-filelog-entry.t.err
@@ -14,8 +14,12 @@
   $ hg qnew -f foo.diff
   $ echo b > b
   $ hg qrefresh
+  abort: $TESTTMP\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child908\test-extra-filelog-entry.t\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x000000000178BEC8>> ignored
+  [255]
 
   $ hg debugindex b
      rev linkrev nodeid       p1           p2
        0       0 1e88685f5dde 000000000000 000000000000
+       1       1 74ad70016319 1e88685f5dde 000000000000
 

test-fastannotate-hg.t

--- c:/hgdev/src/tests/test-fastannotate-hg.t
+++ c:/hgdev/src/tests/test-fastannotate-hg.t.err
@@ -635,6 +635,7 @@
   $ hg annotate -ncr "wdir()" baz
   abort: $TESTTMP/repo/baz: $ENOENT$ (windows !)
   abort: $ENOENT$: '$TESTTMP/repo/baz' (no-windows !)
+  abort: $TESTTMP
epoaz: $ENOENT$
   [255]
 
 annotate removed file
@@ -643,6 +644,7 @@
   $ hg annotate -ncr "wdir()" baz
   abort: $TESTTMP/repo/baz: $ENOENT$ (windows !)
   abort: $ENOENT$: '$TESTTMP/repo/baz' (no-windows !)
+  abort: $TESTTMP
epoaz: $ENOENT$
   [255]
 
 Test annotate with whitespace options

test-fix-pickle.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-fix-pickle.t\n+++ c:/hgdev/src/tests/test-fix-pickle.t.err\n@@ -36,6 +36,7 @@\n   >   cat file file > tmp\n   >   mv -f tmp file\n   > done\n+  /usr/bin/env: python3: $ENOENT$\n   $ hg commit -Am "add large file"\n   adding file\n \n@@ -43,3 +44,60 @@\n \n   $ hg fix -r .\n   saved backup bundle to $TESTTMP/repo/.hg/strip-backup/*-fix.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/6b5ac193250a-f8fe8343-fix.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\.hg\\strip-backup/6b5ac193250a-dc209f82-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\.hg\\strip-backup/6b5ac193250a-dc209f82-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: fix\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\fix.py", line 352, in fix\n+      repo.hook(b\'postfix\', throw=True, **pycompat.strkwargs(hookargs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n', 2607, 2609, 'truncated \\uXXXX escape') decoding diff, sorry

test-fix-topology.t#obsstore-off

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-fix-topology.t\n+++ c:/hgdev/src/tests/test-fix-topology.t#obsstore-off.err\n@@ -132,6 +132,66 @@\n \n   $ hg fix -r \'2|4|7|8|9\' --working-dir\n   saved backup bundle to * (glob) (obsstore-off !)\n+  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/4e7b9312dad2-9c57dad2-fix.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/4e7b9312dad2-9c57dad2-fix.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\.hg\\strip-backup/4e7b9312dad2-2e0b954f-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\.hg\\strip-backup/4e7b9312dad2-2e0b954f-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "debugdrawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "debugdrawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: debugdrawdag, fix, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\fix.py", line 352, in fix\n+      repo.hook(b\'postfix\', throw=True, **pycompat.strkwargs(hookargs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n The five revisions remain, but the other revisions were fixed and replaced. All\n parent pointers have been accurately set to reproduce the previous topology\n@@ -166,23 +226,33 @@\n   $ J=14\n #else\n   $ hg log --graph --template \'{rev}:{node|short} {desc}\\n\'\n-  o  9:d8d0e7974598 change J (child of 89de0da1d5da)\n-  |\n-  | o    8:4fc0b354461e change I\n+  o  14:d8d0e7974598 change J (child of 89de0da1d5da)\n+  |\n+  | o    13:4fc0b354461e change I\n   | |\\\n-  | | @    7:1c45f3923443 change H (child of b53d63e816fb and 0e49f92ee6e9)\n+  | | @    12:1c45f3923443 change H (child of b53d63e816fb and 0e49f92ee6e9)\n   | | |\\\n-  | o | |  6:d75754455722 change E\n+  | o | |  11:d75754455722 change E\n   |/| | |\n-  o | | |  5:89de0da1d5da change C\n+  o | | |  10:89de0da1d5da change C\n   | | | |\n-  | | | o  4:0e49f92ee6e9 change G\n-  | | | |\n-  | | o |  3:b53d63e816fb change F\n-  | | |/\n-  | o /  2:c015ebfd2bfe change D\n-  | |/\n-  o /  1:388fdd33fea0 change B\n+  | | | | o  9:884041ccc490 change J (child of 7f371349286e)\n+  | | | | |\n+  | | | | | o    8:b7c772105fd2 change I\n+  | | | | | |\\\n+  | | +-+-----o  7:4e7b9312dad2 change H (child of b53d63e816fb and 0e49f92ee6e9)\n+  | | | | | |\n+  | | | o | |  6:0e49f92ee6e9 change G\n+  | | | | | |\n+  | | o | | |  5:b53d63e816fb change F\n+  | | |/ / /\n+  | +-----o  4:ddad58af5e51 change E\n+  | | | |/\n+  | o | |  3:c015ebfd2bfe change D\n+  | |/ /\n+  +---o  2:7f371349286e change C\n+  | |\n+  o |  1:388fdd33fea0 change B\n   |/\n   o  0:a55a84d97a24 change A\n   \n@@ -198,8 +268,7 @@\n \n   $ hg cat -r $C \'set:**\'\n   aaaa\n-  bbbb\n-  CCCC\n+  ffff\n \n Change E is a merge with only one parent being fixed. Its baserevs are the\n unfixed parent plus the baserevs of the other parent. This evaluates to changes\n@@ -209,10 +278,7 @@\n \n   $ hg cat -r $E \'set:**\'\n   aaaa\n-  BBBB\n-  CCCC\n-  DDDD\n-  EEEE\n+  gggg\n \n Change H is a merge with neither parent being fixed. This is essentially\n equivalent to the previous case because there is still only one baserev for\n@@ -220,9 +286,9 @@\n \n   $ hg cat -r $H \'set:**\'\n   aaaa\n-  FFFF\n-  GGGG\n-  HHHH\n+  ffff\n+  gggg\n+  hhhh\n \n Change I is a merge that has four baserevs; two from each parent. We handle\n multiple baserevs in the same way regardless of how many came from each parent.\n@@ -231,14 +297,14 @@\n \n   $ hg cat -r $I \'set:**\'\n   aaaa\n-  BBBB\n-  CCCC\n-  DDDD\n-  EEEE\n-  FFFF\n-  GGGG\n-  HHHH\n-  IIII\n+  bbbb\n+  cccc\n+  dddd\n+  eeee\n+  ffff\n+  gggg\n+  hhhh\n+  iiii\n \n Change J is a simple case with one baserev, but its baserev is not its parent,\n change C. Its baserev is its grandparent, change B.\n@@ -246,8 +312,8 @@\n   $ hg cat -r $J \'set:**\'\n   aaaa\n   bbbb\n-  CCCC\n-  JJJJ\n+  cccc\n+  jjjj\n \n The working copy was dirty, so it is treated much like a revision. The baserevs\n for the working copy are inherited from its parent, change H, because it is\n@@ -527,10 +593,75 @@\n \n   $ hg fix --all\n   saved backup bundle to * (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\fixall\\.hg\\strip-backup/0fec95fad0f1-d10112ad-fix.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\fixall\\.hg\\strip-backup/0fec95fad0f1-04e2e367-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\fixall\\.hg\\strip-backup/0fec95fad0f1-04e2e367-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "debugdrawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "debugdrawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: debugdrawdag, fix, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\fix.py", line 352, in fix\n+      repo.hook(b\'postfix\', throw=True, **pycompat.strkwargs(hookargs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg log --graph --template \'{rev} {desc} {phase}\\n\'\n-  @  3 fourth draft\n-  |\n+  @  6 fourth draft\n+  |\n+  | o  5 third secret\n+  | |\n+  | o  4 second draft\n+  |/\n+  | o  3 fourth draft\n+  |/\n   | o  2 third secret\n   | |\n   | o  1 second draft\n@@ -540,11 +671,11 @@\n   $ hg cat -r 0 foo.whole\n   one\n   $ hg cat -r 1 foo.whole\n-  TWO\n+  two\n   $ hg cat -r 2 foo.whole\n-  THREE\n+  three\n   $ hg cat -r 3 foo.whole\n-  FOUR\n+  four\n   $ cat foo.whole\n   UNCOMMITTED\n #endif\n', 2753, 2755, 'truncated \\uXXXX escape') decoding diff, sorry

test-fix-topology.t#obsstore-on

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-fix-topology.t\n+++ c:/hgdev/src/tests/test-fix-topology.t#obsstore-on.err\n@@ -132,6 +132,66 @@\n \n   $ hg fix -r \'2|4|7|8|9\' --working-dir\n   saved backup bundle to * (glob) (obsstore-off !)\n+  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/4e7b9312dad2-9c57dad2-fix.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/4e7b9312dad2-9c57dad2-fix.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\.hg\\strip-backup/4e7b9312dad2-2e0b954f-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\.hg\\strip-backup/4e7b9312dad2-2e0b954f-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "debugdrawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "debugdrawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: debugdrawdag, fix, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\fix.py", line 352, in fix\n+      repo.hook(b\'postfix\', throw=True, **pycompat.strkwargs(hookargs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n The five revisions remain, but the other revisions were fixed and replaced. All\n parent pointers have been accurately set to reproduce the previous topology\n@@ -166,23 +226,33 @@\n   $ J=14\n #else\n   $ hg log --graph --template \'{rev}:{node|short} {desc}\\n\'\n-  o  9:d8d0e7974598 change J (child of 89de0da1d5da)\n-  |\n-  | o    8:4fc0b354461e change I\n+  o  14:d8d0e7974598 change J (child of 89de0da1d5da)\n+  |\n+  | o    13:4fc0b354461e change I\n   | |\\\n-  | | @    7:1c45f3923443 change H (child of b53d63e816fb and 0e49f92ee6e9)\n+  | | @    12:1c45f3923443 change H (child of b53d63e816fb and 0e49f92ee6e9)\n   | | |\\\n-  | o | |  6:d75754455722 change E\n+  | o | |  11:d75754455722 change E\n   |/| | |\n-  o | | |  5:89de0da1d5da change C\n+  o | | |  10:89de0da1d5da change C\n   | | | |\n-  | | | o  4:0e49f92ee6e9 change G\n-  | | | |\n-  | | o |  3:b53d63e816fb change F\n-  | | |/\n-  | o /  2:c015ebfd2bfe change D\n-  | |/\n-  o /  1:388fdd33fea0 change B\n+  | | | | o  9:884041ccc490 change J (child of 7f371349286e)\n+  | | | | |\n+  | | | | | o    8:b7c772105fd2 change I\n+  | | | | | |\\\n+  | | +-+-----o  7:4e7b9312dad2 change H (child of b53d63e816fb and 0e49f92ee6e9)\n+  | | | | | |\n+  | | | o | |  6:0e49f92ee6e9 change G\n+  | | | | | |\n+  | | o | | |  5:b53d63e816fb change F\n+  | | |/ / /\n+  | +-----o  4:ddad58af5e51 change E\n+  | | | |/\n+  | o | |  3:c015ebfd2bfe change D\n+  | |/ /\n+  +---o  2:7f371349286e change C\n+  | |\n+  o |  1:388fdd33fea0 change B\n   |/\n   o  0:a55a84d97a24 change A\n   \n@@ -198,8 +268,7 @@\n \n   $ hg cat -r $C \'set:**\'\n   aaaa\n-  bbbb\n-  CCCC\n+  ffff\n \n Change E is a merge with only one parent being fixed. Its baserevs are the\n unfixed parent plus the baserevs of the other parent. This evaluates to changes\n@@ -209,10 +278,7 @@\n \n   $ hg cat -r $E \'set:**\'\n   aaaa\n-  BBBB\n-  CCCC\n-  DDDD\n-  EEEE\n+  gggg\n \n Change H is a merge with neither parent being fixed. This is essentially\n equivalent to the previous case because there is still only one baserev for\n@@ -220,9 +286,9 @@\n \n   $ hg cat -r $H \'set:**\'\n   aaaa\n-  FFFF\n-  GGGG\n-  HHHH\n+  ffff\n+  gggg\n+  hhhh\n \n Change I is a merge that has four baserevs; two from each parent. We handle\n multiple baserevs in the same way regardless of how many came from each parent.\n@@ -231,14 +297,14 @@\n \n   $ hg cat -r $I \'set:**\'\n   aaaa\n-  BBBB\n-  CCCC\n-  DDDD\n-  EEEE\n-  FFFF\n-  GGGG\n-  HHHH\n-  IIII\n+  bbbb\n+  cccc\n+  dddd\n+  eeee\n+  ffff\n+  gggg\n+  hhhh\n+  iiii\n \n Change J is a simple case with one baserev, but its baserev is not its parent,\n change C. Its baserev is its grandparent, change B.\n@@ -246,8 +312,8 @@\n   $ hg cat -r $J \'set:**\'\n   aaaa\n   bbbb\n-  CCCC\n-  JJJJ\n+  cccc\n+  jjjj\n \n The working copy was dirty, so it is treated much like a revision. The baserevs\n for the working copy are inherited from its parent, change H, because it is\n@@ -527,10 +593,75 @@\n \n   $ hg fix --all\n   saved backup bundle to * (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\fixall\\.hg\\strip-backup/0fec95fad0f1-d10112ad-fix.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\fixall\\.hg\\strip-backup/0fec95fad0f1-04e2e367-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\fixall\\.hg\\strip-backup/0fec95fad0f1-04e2e367-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "debugdrawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "debugdrawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: debugdrawdag, fix, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\fix.py", line 352, in fix\n+      repo.hook(b\'postfix\', throw=True, **pycompat.strkwargs(hookargs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg log --graph --template \'{rev} {desc} {phase}\\n\'\n-  @  3 fourth draft\n-  |\n+  @  6 fourth draft\n+  |\n+  | o  5 third secret\n+  | |\n+  | o  4 second draft\n+  |/\n+  | o  3 fourth draft\n+  |/\n   | o  2 third secret\n   | |\n   | o  1 second draft\n@@ -540,11 +671,11 @@\n   $ hg cat -r 0 foo.whole\n   one\n   $ hg cat -r 1 foo.whole\n-  TWO\n+  two\n   $ hg cat -r 2 foo.whole\n-  THREE\n+  three\n   $ hg cat -r 3 foo.whole\n-  FOUR\n+  four\n   $ cat foo.whole\n   UNCOMMITTED\n #endif\n', 2752, 2754, 'truncated \\uXXXX escape') decoding diff, sorry

test-fix.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-fix.t\n+++ c:/hgdev/src/tests/test-fix.t.err\n@@ -245,16 +245,57 @@\n   $ cd badusage\n \n   $ hg fix\n-  abort: no changesets specified\n-  (use --source or --working-dir)\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: fix\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\fix.py", line 352, in fix\n+      repo.hook(b\'postfix\', throw=True, **pycompat.strkwargs(hookargs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg fix --whole\n-  abort: no changesets specified\n-  (use --source or --working-dir)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg fix --base 0\n-  abort: no changesets specified\n-  (use --source or --working-dir)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n Fixing a public revision isn\'t allowed. It should abort early enough that\n@@ -262,17 +303,24 @@\n \n   $ printf "hello\\n" > hello.whole\n   $ hg commit -Aqm "hello"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase -r 0 --public\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg fix -r 0\n-  abort: cannot fix public changesets\n-  (see \'hg help phases\' for details)\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg fix -r 0 --working-dir\n-  abort: cannot fix public changesets\n-  (see \'hg help phases\' for details)\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg cat -r tip hello.whole\n-  hello\n+  hello.whole: no such file in rev 000000000000\n+  [1]\n   $ cat hello.whole\n   hello\n \n@@ -608,7 +656,8 @@\n   $ sleep 2 # mtime has a resolution of one or two seconds.\n   $ hg fix --working-dir\n   $ f foo.whole.orig --newer foo.whole\n-  foo.whole.orig: newer than foo.whole\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n   $ cd ..\n \n@@ -656,28 +705,72 @@\n   >    fix --working-dir\n   [wdir] fail: hello.txt: some\n   [wdir] fail: error that did stop the tool\n-  abort: no fixes will be applied\n-  (use --config fix.failure=continue to apply any successful fixes anyway)\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: fix\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\fix.py", line 352, in fix\n+      repo.hook(b\'postfix\', throw=True, **pycompat.strkwargs(hookargs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ cat hello.txt\n+  goodbye\n+  $ cat foo.whole\n+  foo\n+\n+  $ hg --config "fix.fail:command=sh $TESTTMP/fail.sh {rootpath}" \\\n+  >    --config "fix.fail:pattern=hello.txt" \\\n+  >    fix --working-dir\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ cat hello.txt\n   goodbye\n   $ cat foo.whole\n   foo\n \n-  $ hg --config "fix.fail:command=sh $TESTTMP/fail.sh {rootpath}" \\\n-  >    --config "fix.fail:pattern=hello.txt" \\\n-  >    fix --working-dir\n-  [wdir] fail: hello.txt: some\n-  [wdir] fail: error that did stop the tool\n-  $ cat hello.txt\n-  goodbye\n-  $ cat foo.whole\n-  FOO\n-\n   $ hg --config "fix.fail:command=exit 42" \\\n   >    --config "fix.fail:pattern=hello.txt" \\\n   >    fix --working-dir\n-  [wdir] fail: exited with status 42\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ cd ..\n \n@@ -872,14 +965,55 @@\n   [240]\n \n   $ hg --config extensions.rebase= fix --working-dir\n-  abort: unresolved conflicts\n-  (use \'hg resolve\')\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: fix, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\fix.py", line 352, in fix\n+      repo.hook(b\'postfix\', throw=True, **pycompat.strkwargs(hookargs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+\n+  $ hg --config extensions.rebase= fix -r .\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n-\n-  $ hg --config extensions.rebase= fix -r .\n-  abort: rebase in progress\n-  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n-  [20]\n \n   $ cd ..\n \n@@ -1110,12 +1244,57 @@\n   1 new obsolescence markers\n   obsoleted 1 changesets\n   $ hg --hidden fix -r 0\n-  abort: fixing obsolete revision could cause divergence\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: fix\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\fix.py", line 352, in fix\n+      repo.hook(b\'postfix\', throw=True, **pycompat.strkwargs(hookargs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+\n+  $ hg --hidden fix -r 0 --config experimental.evolution.allowdivergence=true\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n-\n-  $ hg --hidden fix -r 0 --config experimental.evolution.allowdivergence=true\n   $ hg cat -r tip foo.changed\n-  FOO\n+  foo\n \n   $ cd ..\n \n@@ -1173,12 +1352,56 @@\n   $ printf "two\\n" > foo.whole\n   $ hg commit -m "second"\n   $ hg --config experimental.evolution.allowunstable=False fix -r \'.^\'\n-  abort: cannot fix changeset with children\n-  [10]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: fix\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\fix.py", line 352, in fix\n+      repo.hook(b\'postfix\', throw=True, **pycompat.strkwargs(hookargs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg fix -r \'.^\'\n-  1 new orphan changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg cat -r 2 foo.whole\n-  ONE\n+  one\n \n   $ cd ..\n \n', 2103, 2105, 'truncated \\uXXXX escape') decoding diff, sorry

test-flagprocessor.t

--- c:/hgdev/src/tests/test-flagprocessor.t
+++ c:/hgdev/src/tests/test-flagprocessor.t.err
@@ -189,7 +189,8 @@
 # TEST: ensure a missing processor is handled
   $ echo '[FAIL][BASE64][GZIP][NOOP]' > fail-base64-gzip-noop
   $ hg commit -Aqm 'fail+base64+gzip+noop'
-  abort: missing processor for flag '0x1'
+  abort: $TESTTMP\client2\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child392\test-flagprocessor.t\client2\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x0000000001724D48>> ignored
   [255]
   $ rm fail-base64-gzip-noop
 
@@ -206,17 +207,20 @@
     File "*/tests/flagprocessorext.py", line *, in extsetup (glob)
       flagutil.addflagprocessor( (py38 !)
       validatehash, (no-py38 !)
+      validatehash,
     File "*/mercurial/revlogutils/flagutil.py", line *, in addflagprocessor (glob)
       insertflagprocessor(flag, processor, flagprocessors)
     File "*/mercurial/revlogutils/flagutil.py", line *, in insertflagprocessor (glob)
-      raise error.Abort(msg)
   mercurial.error.Abort: cannot register multiple processors on flag '0x8'. (py3 !)
   Abort: cannot register multiple processors on flag '0x8'. (no-py3 !)
+      raise error.Abort(msg)
+  Abort: cannot register multiple processors on flag '0x8'.
   *** failed to set up extension duplicate: cannot register multiple processors on flag '0x8'.
   $ hg st 2>&1 | egrep 'cannot register multiple processors|flagprocessorext'
     File "*/tests/flagprocessorext.py", line *, in extsetup (glob)
   mercurial.error.Abort: cannot register multiple processors on flag '0x8'. (py3 !)
   Abort: cannot register multiple processors on flag '0x8'. (no-py3 !)
+  Abort: cannot register multiple processors on flag '0x8'.
   *** failed to set up extension duplicate: cannot register multiple processors on flag '0x8'.
     File "*/tests/flagprocessorext.py", line *, in b64decode (glob)
 

test-globalopts.t

--- c:/hgdev/src/tests/test-globalopts.t
+++ c:/hgdev/src/tests/test-globalopts.t.err
@@ -271,7 +271,7 @@
 #else
 Traceback for '--config' errors not supported with chg.
   $ hg --cwd c --config x --traceback id 2>&1 | grep -i 'traceback'
-  [1]
+  Traceback (most recent call last):
 #endif
 
 Testing --time:

test-graft-interrupted.t#abortcommand

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-graft-interrupted.t\n+++ c:/hgdev/src/tests/test-graft-interrupted.t#abortcommand.err\n@@ -342,6 +342,7 @@\n   $ hg abort\n   abort: no interrupted graft to abort (abortflag !)\n   abort: no operation in progress (abortcommand !)\n+  abort: no operation in progress\n   [20]\n \n when stripping is required\n@@ -377,16 +378,66 @@\n #endif\n \n   $ hg abort\n-  graft aborted\n-  working directory is now at 9150fe93bec6\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 204, in abort\n+      return abortstate.abortfunc(ui, repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 3914, in hgabortgraft\n+      return abortgraft(ui, repo, graftstate)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 3887, in abortgraft\n+      repair.strip(repo.ui, repo, strippoints, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log -GT "{rev}:{node|short} {desc}"\n-  o  5:36b793615f78 added foo to c\n-  |\n-  | o  4:863a25e1a9ea added x\n-  |/\n-  | @  3:9150fe93bec6 added d\n-  | |\n-  | o  2:155349b645be added c\n+  o  6:6ec71c037d94 added x\n+  |\n+  | o  5:36b793615f78 added foo to c\n+  | |\n+  | | o  4:863a25e1a9ea added x\n+  | |/\n+  @ |  3:9150fe93bec6 added d\n+  | |\n+  o |  2:155349b645be added c\n   |/\n   o  1:5f6d8a4bf34a added b\n   |\n@@ -394,48 +445,22 @@\n   \n when stripping is not required\n   $ hg graft -r 5\n-  grafting 5:36b793615f78 "added foo to c" (tip)\n-  merging c\n-  warning: conflicts while merging c! (edit, then use \'hg resolve --mark\')\n-  abort: unresolved conflicts, can\'t continue\n-  (use \'hg resolve\' and \'hg graft --continue\')\n-  [1]\n+  abort: graft in progress\n+  (use \'hg graft --continue\' or \'hg graft --stop\' to stop)\n+  [20]\n \n   $ hg abort\n-  graft aborted\n-  working directory is now at 9150fe93bec6\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -GT "{rev}:{node|short} {desc}"\n-  o  5:36b793615f78 added foo to c\n-  |\n-  | o  4:863a25e1a9ea added x\n-  |/\n-  | @  3:9150fe93bec6 added d\n-  | |\n-  | o  2:155349b645be added c\n-  |/\n-  o  1:5f6d8a4bf34a added b\n-  |\n-  o  0:9092f1db7931 added a\n-  \n-when some of the changesets became public\n-\n-  $ hg graft -r 4 -r 5\n-  grafting 4:863a25e1a9ea "added x"\n-  grafting 5:36b793615f78 "added foo to c" (tip)\n-  merging c\n-  warning: conflicts while merging c! (edit, then use \'hg resolve --mark\')\n-  abort: unresolved conflicts, can\'t continue\n-  (use \'hg resolve\' and \'hg graft --continue\')\n-  [1]\n-\n-  $ hg log -GT "{rev}:{node|short} {desc}"\n-  @  6:6ec71c037d94 added x\n-  |\n-  | %  5:36b793615f78 added foo to c\n+  o  6:6ec71c037d94 added x\n+  |\n+  | o  5:36b793615f78 added foo to c\n   | |\n   | | o  4:863a25e1a9ea added x\n   | |/\n-  o |  3:9150fe93bec6 added d\n+  @ |  3:9150fe93bec6 added d\n   | |\n   o |  2:155349b645be added c\n   |/\n@@ -443,12 +468,37 @@\n   |\n   o  0:9092f1db7931 added a\n   \n+when some of the changesets became public\n+\n+  $ hg graft -r 4 -r 5\n+  abort: graft in progress\n+  (use \'hg graft --continue\' or \'hg graft --stop\' to stop)\n+  [20]\n+\n+  $ hg log -GT "{rev}:{node|short} {desc}"\n+  o  6:6ec71c037d94 added x\n+  |\n+  | o  5:36b793615f78 added foo to c\n+  | |\n+  | | o  4:863a25e1a9ea added x\n+  | |/\n+  @ |  3:9150fe93bec6 added d\n+  | |\n+  o |  2:155349b645be added c\n+  |/\n+  o  1:5f6d8a4bf34a added b\n+  |\n+  o  0:9092f1db7931 added a\n+  \n   $ hg phase -r 6 --public\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg abort\n-  cannot clean up public changesets 6ec71c037d94\n-  graft aborted\n-  working directory is now at 6ec71c037d94\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n when we created new changesets on top of existing one\n \n@@ -456,39 +506,35 @@\n   0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n   $ echo y > y\n   $ hg ci -Aqm "added y"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo z > z\n   $ hg ci -Aqm "added z"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg up 3\n-  1 files updated, 0 files merged, 3 files removed, 0 files unresolved\n+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg log -GT "{rev}:{node|short} {desc}"\n-  o  8:637f9e9bbfd4 added z\n-  |\n-  o  7:123221671fd4 added y\n-  |\n-  | o  6:6ec71c037d94 added x\n-  | |\n-  | | o  5:36b793615f78 added foo to c\n-  | | |\n-  | | | o  4:863a25e1a9ea added x\n-  | | |/\n-  | @ |  3:9150fe93bec6 added d\n-  |/ /\n-  o /  2:155349b645be added c\n+  o  6:6ec71c037d94 added x\n+  |\n+  | o  5:36b793615f78 added foo to c\n+  | |\n+  | | o  4:863a25e1a9ea added x\n+  | |/\n+  @ |  3:9150fe93bec6 added d\n+  | |\n+  o |  2:155349b645be added c\n   |/\n   o  1:5f6d8a4bf34a added b\n   |\n   o  0:9092f1db7931 added a\n   \n   $ hg graft -r 8 -r 7 -r 5\n-  grafting 8:637f9e9bbfd4 "added z" (tip)\n-  grafting 7:123221671fd4 "added y"\n-  grafting 5:36b793615f78 "added foo to c"\n-  merging c\n-  warning: conflicts while merging c! (edit, then use \'hg resolve --mark\')\n-  abort: unresolved conflicts, can\'t continue\n-  (use \'hg resolve\' and \'hg graft --continue\')\n-  [1]\n+  abort: unknown revision \'7\'\n+  [255]\n \n   $ cd ..\n   $ hg init pullrepo\n@@ -503,11 +549,12 @@\n   adding changesets\n   adding manifests\n   adding file changes\n-  added 11 changesets with 9 changes to 8 files (+4 heads)\n-  new changesets 9092f1db7931:6b98ff0062dd (6 drafts)\n+  added 7 changesets with 6 changes to 5 files (+2 heads)\n+  new changesets 9092f1db7931:6ec71c037d94 (7 drafts)\n   (run \'hg heads\' to see heads, \'hg merge\' to merge)\n   $ hg up 9\n-  5 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: 00changelog.i@9: ambiguous identifier\n+  [255]\n   $ echo w > w\n   $ hg ci -Aqm "added w" --config phases.publish=False\n \n@@ -515,17 +562,13 @@\n   $ hg pull ../pullrepo\n   pulling from ../pullrepo\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets 311dfc6cf3bf (1 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg abort\n-  new changesets detected on destination branch, can\'t strip\n-  graft aborted\n-  working directory is now at 6b98ff0062dd\n+  abort: no operation in progress\n+  [20]\n \n   $ cd ..\n \n', 2330, 2332, 'truncated \\uXXXX escape') decoding diff, sorry

test-graft-interrupted.t#abortflag

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-graft-interrupted.t\n+++ c:/hgdev/src/tests/test-graft-interrupted.t#abortflag.err\n@@ -342,6 +342,7 @@\n   $ hg abort\n   abort: no interrupted graft to abort (abortflag !)\n   abort: no operation in progress (abortcommand !)\n+  abort: no operation in progress\n   [20]\n \n when stripping is required\n@@ -377,16 +378,66 @@\n #endif\n \n   $ hg abort\n-  graft aborted\n-  working directory is now at 9150fe93bec6\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 204, in abort\n+      return abortstate.abortfunc(ui, repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 3914, in hgabortgraft\n+      return abortgraft(ui, repo, graftstate)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 3887, in abortgraft\n+      repair.strip(repo.ui, repo, strippoints, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log -GT "{rev}:{node|short} {desc}"\n-  o  5:36b793615f78 added foo to c\n-  |\n-  | o  4:863a25e1a9ea added x\n-  |/\n-  | @  3:9150fe93bec6 added d\n-  | |\n-  | o  2:155349b645be added c\n+  o  6:6ec71c037d94 added x\n+  |\n+  | o  5:36b793615f78 added foo to c\n+  | |\n+  | | o  4:863a25e1a9ea added x\n+  | |/\n+  @ |  3:9150fe93bec6 added d\n+  | |\n+  o |  2:155349b645be added c\n   |/\n   o  1:5f6d8a4bf34a added b\n   |\n@@ -394,48 +445,22 @@\n   \n when stripping is not required\n   $ hg graft -r 5\n-  grafting 5:36b793615f78 "added foo to c" (tip)\n-  merging c\n-  warning: conflicts while merging c! (edit, then use \'hg resolve --mark\')\n-  abort: unresolved conflicts, can\'t continue\n-  (use \'hg resolve\' and \'hg graft --continue\')\n-  [1]\n+  abort: graft in progress\n+  (use \'hg graft --continue\' or \'hg graft --stop\' to stop)\n+  [20]\n \n   $ hg abort\n-  graft aborted\n-  working directory is now at 9150fe93bec6\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -GT "{rev}:{node|short} {desc}"\n-  o  5:36b793615f78 added foo to c\n-  |\n-  | o  4:863a25e1a9ea added x\n-  |/\n-  | @  3:9150fe93bec6 added d\n-  | |\n-  | o  2:155349b645be added c\n-  |/\n-  o  1:5f6d8a4bf34a added b\n-  |\n-  o  0:9092f1db7931 added a\n-  \n-when some of the changesets became public\n-\n-  $ hg graft -r 4 -r 5\n-  grafting 4:863a25e1a9ea "added x"\n-  grafting 5:36b793615f78 "added foo to c" (tip)\n-  merging c\n-  warning: conflicts while merging c! (edit, then use \'hg resolve --mark\')\n-  abort: unresolved conflicts, can\'t continue\n-  (use \'hg resolve\' and \'hg graft --continue\')\n-  [1]\n-\n-  $ hg log -GT "{rev}:{node|short} {desc}"\n-  @  6:6ec71c037d94 added x\n-  |\n-  | %  5:36b793615f78 added foo to c\n+  o  6:6ec71c037d94 added x\n+  |\n+  | o  5:36b793615f78 added foo to c\n   | |\n   | | o  4:863a25e1a9ea added x\n   | |/\n-  o |  3:9150fe93bec6 added d\n+  @ |  3:9150fe93bec6 added d\n   | |\n   o |  2:155349b645be added c\n   |/\n@@ -443,12 +468,37 @@\n   |\n   o  0:9092f1db7931 added a\n   \n+when some of the changesets became public\n+\n+  $ hg graft -r 4 -r 5\n+  abort: graft in progress\n+  (use \'hg graft --continue\' or \'hg graft --stop\' to stop)\n+  [20]\n+\n+  $ hg log -GT "{rev}:{node|short} {desc}"\n+  o  6:6ec71c037d94 added x\n+  |\n+  | o  5:36b793615f78 added foo to c\n+  | |\n+  | | o  4:863a25e1a9ea added x\n+  | |/\n+  @ |  3:9150fe93bec6 added d\n+  | |\n+  o |  2:155349b645be added c\n+  |/\n+  o  1:5f6d8a4bf34a added b\n+  |\n+  o  0:9092f1db7931 added a\n+  \n   $ hg phase -r 6 --public\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg abort\n-  cannot clean up public changesets 6ec71c037d94\n-  graft aborted\n-  working directory is now at 6ec71c037d94\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n when we created new changesets on top of existing one\n \n@@ -456,39 +506,35 @@\n   0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n   $ echo y > y\n   $ hg ci -Aqm "added y"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo z > z\n   $ hg ci -Aqm "added z"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg up 3\n-  1 files updated, 0 files merged, 3 files removed, 0 files unresolved\n+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg log -GT "{rev}:{node|short} {desc}"\n-  o  8:637f9e9bbfd4 added z\n-  |\n-  o  7:123221671fd4 added y\n-  |\n-  | o  6:6ec71c037d94 added x\n-  | |\n-  | | o  5:36b793615f78 added foo to c\n-  | | |\n-  | | | o  4:863a25e1a9ea added x\n-  | | |/\n-  | @ |  3:9150fe93bec6 added d\n-  |/ /\n-  o /  2:155349b645be added c\n+  o  6:6ec71c037d94 added x\n+  |\n+  | o  5:36b793615f78 added foo to c\n+  | |\n+  | | o  4:863a25e1a9ea added x\n+  | |/\n+  @ |  3:9150fe93bec6 added d\n+  | |\n+  o |  2:155349b645be added c\n   |/\n   o  1:5f6d8a4bf34a added b\n   |\n   o  0:9092f1db7931 added a\n   \n   $ hg graft -r 8 -r 7 -r 5\n-  grafting 8:637f9e9bbfd4 "added z" (tip)\n-  grafting 7:123221671fd4 "added y"\n-  grafting 5:36b793615f78 "added foo to c"\n-  merging c\n-  warning: conflicts while merging c! (edit, then use \'hg resolve --mark\')\n-  abort: unresolved conflicts, can\'t continue\n-  (use \'hg resolve\' and \'hg graft --continue\')\n-  [1]\n+  abort: unknown revision \'7\'\n+  [255]\n \n   $ cd ..\n   $ hg init pullrepo\n@@ -503,11 +549,12 @@\n   adding changesets\n   adding manifests\n   adding file changes\n-  added 11 changesets with 9 changes to 8 files (+4 heads)\n-  new changesets 9092f1db7931:6b98ff0062dd (6 drafts)\n+  added 7 changesets with 6 changes to 5 files (+2 heads)\n+  new changesets 9092f1db7931:6ec71c037d94 (7 drafts)\n   (run \'hg heads\' to see heads, \'hg merge\' to merge)\n   $ hg up 9\n-  5 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: 00changelog.i@9: ambiguous identifier\n+  [255]\n   $ echo w > w\n   $ hg ci -Aqm "added w" --config phases.publish=False\n \n@@ -515,17 +562,13 @@\n   $ hg pull ../pullrepo\n   pulling from ../pullrepo\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets 311dfc6cf3bf (1 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg abort\n-  new changesets detected on destination branch, can\'t strip\n-  graft aborted\n-  working directory is now at 6b98ff0062dd\n+  abort: no operation in progress\n+  [20]\n \n   $ cd ..\n \n', 2327, 2329, 'truncated \\uXXXX escape') decoding diff, sorry

test-graft.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-graft.t\n+++ c:/hgdev/src/tests/test-graft.t.err\n@@ -56,6 +56,55 @@\n   M d\n \n   $ hg -q strip . --config extensions.strip=\n+  strip failed, backup bundle stored in \'$TESTTMP\\a\\.hg\\strip-backup/a912a4db0e9a-30053e5f-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Test --base for collapsing changesets 2 and 3, thus getting both b and c\n \n@@ -64,24 +113,29 @@\n   grafting 3:4c60f11aa304 "3"\n   merging a and b to b\n   merging a and c to c\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st --change .\n-  A b\n-  A c\n-  R a\n+  A a\n+  A d\n+  A e\n \n   $ hg -q strip . --config extensions.strip=\n+  abort: uncommitted changes\n+  [20]\n \n Specifying child as --base revision fails safely (perhaps slightly confusing, but consistent)\n \n   $ hg graft -r 2 --base 3\n-  grafting 2:5c095ad7e90f "2"\n-  note: possible conflict - c was deleted and renamed to:\n-   a\n-  note: graft of 2:5c095ad7e90f created no changes to commit\n+  abort: uncommitted changes\n+  [20]\n \n Can\'t continue without starting:\n \n   $ hg -q up -cr tip\n+  abort: uncommitted changes\n+  [20]\n   $ hg rm -q e\n   $ hg graft --continue\n   abort: no graft in progress\n@@ -97,22 +151,19 @@\n Can\'t graft ancestor:\n \n   $ hg graft 1 2\n-  skipping ancestor revision 1:5d205f8b35b6\n-  skipping ancestor revision 2:5c095ad7e90f\n-  [255]\n+  abort: uncommitted changes\n+  [20]\n \n Specify revisions with -r:\n \n   $ hg graft -r 1 -r 2\n-  skipping ancestor revision 1:5d205f8b35b6\n-  skipping ancestor revision 2:5c095ad7e90f\n-  [255]\n+  abort: uncommitted changes\n+  [20]\n \n   $ hg graft -r 1 2\n   warning: inconsistent use of --rev might give unexpected revision ordering!\n-  skipping ancestor revision 2:5c095ad7e90f\n-  skipping ancestor revision 1:5d205f8b35b6\n-  [255]\n+  abort: uncommitted changes\n+  [20]\n \n Conflicting date/user options:\n \n@@ -140,48 +191,40 @@\n   A b\n   R a\n   $ HGEDITOR=cat hg graft 2 -u foo --edit\n-  grafting 2:5c095ad7e90f "2"\n-  merging a and b to b\n-  2\n-  \n-  \n-  HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  HG: Leave message empty to abort commit.\n-  HG: --\n-  HG: user: foo\n-  HG: branch \'default\'\n-  HG: added b\n-  HG: removed a\n+  abort: uncommitted changes\n+  [20]\n   $ hg export tip --git\n   # HG changeset patch\n-  # User foo\n+  # User test\n   # Date 0 0\n   #      Thu Jan 01 00:00:00 1970 +0000\n-  # Node ID ef0ef43d49e79e81ddafdc7997401ba0041efc82\n-  # Parent  68795b066622ca79a25816a662041d8f78f3cd9e\n-  2\n-  \n-  diff --git a/a b/b\n-  rename from a\n-  rename to b\n+  # Node ID a912a4db0e9af7b6f000e8e9c6b2821e7bcd0475\n+  # Parent  4c60f11aa304a54ae1c199feb94e7fc771e51ed8\n+  6\n+  \n+  diff --git a/d b/d\n+  --- a/d\n+  +++ b/d\n+  @@ -1,1 +1,1 @@\n+  -a\n+  +b\n \n Look for extra:source\n \n   $ hg log --debug -r tip\n-  changeset:   7:ef0ef43d49e79e81ddafdc7997401ba0041efc82\n+  changeset:   7:a912a4db0e9af7b6f000e8e9c6b2821e7bcd0475\n   tag:         tip\n   phase:       draft\n-  parent:      0:68795b066622ca79a25816a662041d8f78f3cd9e\n+  parent:      3:4c60f11aa304a54ae1c199feb94e7fc771e51ed8\n   parent:      -1:0000000000000000000000000000000000000000\n-  manifest:    7:e59b6b228f9cbf9903d5e9abf996e083a1f533eb\n-  user:        foo\n+  manifest:    7:146880310ffd490df6055fd8c94ddb63ac66ae35\n+  user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  files+:      b\n-  files-:      a\n+  files:       d\n   extra:       branch=default\n-  extra:       source=5c095ad7e90f871700f02dd1fa5012cb4498a2d4\n+  extra:       source=25a2b029d3aebdabd0fb1659fabe6b434789cd25\n   description:\n-  2\n+  6\n   \n   \n \n@@ -189,149 +232,70 @@\n (this also tests that editor is not invoked if \'--edit\' is not specified)\n \n   $ hg graft 1 5 4 3 \'merge()\' 2 -n\n-  skipping ungraftable merge revision 6\n-  skipping revision 2:5c095ad7e90f (already grafted to 7:ef0ef43d49e7)\n-  grafting 1:5d205f8b35b6 "1"\n-  grafting 5:97f8bfe72746 "5"\n-  grafting 4:9c233e8e184d "4"\n-  grafting 3:4c60f11aa304 "3"\n+  abort: uncommitted changes\n+  [20]\n \n   $ HGEDITOR=cat hg graft 1 5 \'merge()\' 2 --debug\n-  skipping ungraftable merge revision 6\n-  scanning for duplicate grafts\n-  skipping revision 2:5c095ad7e90f (already grafted to 7:ef0ef43d49e7)\n-  grafting 1:5d205f8b35b6 "1"\n-    unmatched files in local:\n-     b\n-    all copies found (* = to merge, ! = divergent, % = renamed and deleted):\n-     on local side:\n-      src: \'a\' -> dst: \'b\' *\n-    checking for directory renames\n-  resolving manifests\n-   branchmerge: True, force: True, partial: False\n-   ancestor: 68795b066622, local: ef0ef43d49e7+, remote: 5d205f8b35b6\n-   preserving b for resolve of b\n+  abort: uncommitted changes\n   starting 4 threads for background file closing (?)\n-   b: local copied/moved from a -> m (premerge)\n-  picked tool \':merge\' for b (binary False symlink False changedelete False)\n-  merging b and a to b\n-  my b@ef0ef43d49e7+ other a@5d205f8b35b6 ancestor a@68795b066622\n-   premerge successful\n-  committing files:\n-  b\n-  committing manifest\n-  committing changelog\n-  updating the branch cache\n-  grafting 5:97f8bfe72746 "5"\n-    all copies found (* = to merge, ! = divergent, % = renamed and deleted):\n-     on local side:\n-      src: \'c\' -> dst: \'b\' \n-    checking for directory renames\n-  resolving manifests\n-   branchmerge: True, force: True, partial: False\n-   ancestor: 4c60f11aa304, local: 6b9e5368ca4e+, remote: 97f8bfe72746\n-   e: remote is newer -> g\n-  getting e\n-  committing files:\n-  e\n-  committing manifest\n-  committing changelog\n-  updating the branch cache\n+  [20]\n   $ HGEDITOR=cat hg graft 4 3 --log --debug\n-  scanning for duplicate grafts\n-  grafting 4:9c233e8e184d "4"\n-    all copies found (* = to merge, ! = divergent, % = renamed and deleted):\n-     on local side:\n-      src: \'c\' -> dst: \'b\' \n-    checking for directory renames\n-  resolving manifests\n-   branchmerge: True, force: True, partial: False\n-   ancestor: 4c60f11aa304, local: 1905859650ec+, remote: 9c233e8e184d\n-   d: remote is newer -> g\n-  getting d\n-   preserving e for resolve of e\n-   e: versions differ -> m (premerge)\n-  picked tool \':merge\' for e (binary False symlink False changedelete False)\n-  merging e\n-  my e@1905859650ec+ other e@9c233e8e184d ancestor e@4c60f11aa304\n-   e: versions differ -> m (merge)\n-  picked tool \':merge\' for e (binary False symlink False changedelete False)\n-  my e@1905859650ec+ other e@9c233e8e184d ancestor e@4c60f11aa304\n-  warning: conflicts while merging e! (edit, then use \'hg resolve --mark\')\n-  abort: unresolved conflicts, can\'t continue\n-  (use \'hg resolve\' and \'hg graft --continue\')\n+  abort: uncommitted changes\n+  [20]\n+\n+Summary should mention graft:\n+\n+  $ hg summary |grep graft\n   [1]\n \n-Summary should mention graft:\n-\n-  $ hg summary |grep graft\n-  commit: 2 modified, 2 unknown, 1 unresolved (graft in progress)\n-\n Using status to get more context\n \n   $ hg status --verbose\n-  M d\n-  M e\n+  A b\n+  A c\n   ? a.orig\n-  ? e.orig\n-  # The repository is in an unfinished *graft* state.\n-  \n-  # Unresolved merge conflicts:\n-  # \n-  #     e\n-  # \n-  # To mark files as resolved:  hg resolve --mark FILE\n-  \n-  # To continue:    hg graft --continue\n-  # To abort:       hg graft --abort\n-  # To stop:        hg graft --stop\n+  # No unresolved merge conflicts.\n   \n \n Commit while interrupted should fail:\n \n   $ hg ci -m \'commit interrupted graft\'\n-  abort: graft in progress\n-  (use \'hg graft --continue\' or \'hg graft --stop\' to stop)\n-  [20]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Abort the graft and try committing:\n \n   $ hg up -C .\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ echo c >> e\n   $ hg ci -mtest\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg strip . --config extensions.strip=\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  saved backup bundle to $TESTTMP/a/.hg/strip-backup/*-backup.hg (glob)\n+  abort: uncommitted changes\n+  [20]\n \n Graft again:\n \n   $ hg graft 1 5 4 3 \'merge()\' 2\n-  skipping ungraftable merge revision 6\n-  skipping revision 2:5c095ad7e90f (already grafted to 7:ef0ef43d49e7)\n-  skipping revision 1:5d205f8b35b6 (already grafted to 8:6b9e5368ca4e)\n-  skipping revision 5:97f8bfe72746 (already grafted to 9:1905859650ec)\n-  grafting 4:9c233e8e184d "4"\n-  merging e\n-  warning: conflicts while merging e! (edit, then use \'hg resolve --mark\')\n-  abort: unresolved conflicts, can\'t continue\n-  (use \'hg resolve\' and \'hg graft --continue\')\n-  [1]\n+  abort: uncommitted changes\n+  [20]\n \n Continue without resolve should fail:\n \n   $ hg graft -c\n-  grafting 4:9c233e8e184d "4"\n-  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  abort: no graft in progress\n   [20]\n \n Fix up:\n \n   $ echo b > e\n   $ hg resolve -m e\n-  (no more unresolved files)\n-  continue: hg graft --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n \n Continue with a revision should fail:\n \n@@ -346,277 +310,246 @@\n Continue for real, clobber usernames\n \n   $ hg graft -c -U\n-  grafting 4:9c233e8e184d "4"\n-  grafting 3:4c60f11aa304 "3"\n+  abort: no graft in progress\n+  [20]\n \n Compare with original:\n \n   $ hg diff -r 6\n+  diff -r 25a2b029d3ae a\n+  --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n+  +++ b/a\tThu Jan 01 00:00:00 1970 +0000\n+  @@ -0,0 +1,1 @@\n+  +a\n+  diff -r 25a2b029d3ae b\n+  --- a/b\tThu Jan 01 00:00:00 1970 +0000\n+  +++ /dev/null\tThu Jan 01 00:00:00 1970 +0000\n+  @@ -1,1 +0,0 @@\n+  -b\n+  diff -r 25a2b029d3ae c\n+  --- a/c\tThu Jan 01 00:00:00 1970 +0000\n+  +++ /dev/null\tThu Jan 01 00:00:00 1970 +0000\n+  @@ -1,1 +0,0 @@\n+  -b\n+  diff -r 25a2b029d3ae d\n+  --- a/d\tThu Jan 01 00:00:00 1970 +0000\n+  +++ b/d\tThu Jan 01 00:00:00 1970 +0000\n+  @@ -1,1 +1,1 @@\n+  -b\n+  +a\n   $ hg status --rev 0:. -C\n-  M d\n-  M e\n-  A b\n-    a\n-  A c\n-    a\n-  R a\n \n View graph:\n \n   $ hg log -G --template \'{author}@{rev}.{phase}: {desc}\\n\'\n-  @  test@11.draft: 3\n-  |\n-  o  test@10.draft: 4\n-  |\n-  o  test@9.draft: 5\n-  |\n-  o  bar@8.draft: 1\n-  |\n-  o  foo@7.draft: 2\n+  o  test@7.draft: 6\n   |\n   | o    test@6.secret: 6\n   | |\\\n-  | | o  test@5.draft: 5\n-  | | |\n-  | o |  test@4.draft: 4\n-  | |/\n-  | o  baz@3.public: 3\n+  +---o  test@5.draft: 5\n   | |\n-  | o  test@2.public: 2\n-  | |\n-  | o  bar@1.public: 1\n+  | o  test@4.draft: 4\n   |/\n-  o  test@0.public: 0\n+  o  baz@3.public: 3\n+  |\n+  o  test@2.public: 2\n+  |\n+  o  bar@1.public: 1\n+  |\n+  @  test@0.public: 0\n   \n Graft again onto another branch should preserve the original source\n   $ hg up -q 0\n   $ echo \'g\'>g\n   $ hg add g\n   $ hg ci -m 7\n-  created new head\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg graft 7\n-  grafting 7:ef0ef43d49e7 "2"\n+  abort: uncommitted changes\n+  [20]\n \n   $ hg log -r 7 --template \'{rev}:{node}\\n\'\n-  7:ef0ef43d49e79e81ddafdc7997401ba0041efc82\n+  7:a912a4db0e9af7b6f000e8e9c6b2821e7bcd0475\n   $ hg log -r 2 --template \'{rev}:{node}\\n\'\n   2:5c095ad7e90f871700f02dd1fa5012cb4498a2d4\n \n   $ hg log --debug -r tip\n-  changeset:   13:7a4785234d87ec1aa420ed6b11afe40fa73e12a9\n+  changeset:   7:a912a4db0e9af7b6f000e8e9c6b2821e7bcd0475\n   tag:         tip\n   phase:       draft\n-  parent:      12:b592ea63bb0c19a6c5c44685ee29a2284f9f1b8f\n+  parent:      3:4c60f11aa304a54ae1c199feb94e7fc771e51ed8\n   parent:      -1:0000000000000000000000000000000000000000\n-  manifest:    13:dc313617b8c32457c0d589e0dbbedfe71f3cd637\n-  user:        foo\n+  manifest:    7:146880310ffd490df6055fd8c94ddb63ac66ae35\n+  user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  files+:      b\n-  files-:      a\n+  files:       d\n   extra:       branch=default\n-  extra:       intermediate-source=ef0ef43d49e79e81ddafdc7997401ba0041efc82\n-  extra:       source=5c095ad7e90f871700f02dd1fa5012cb4498a2d4\n+  extra:       source=25a2b029d3aebdabd0fb1659fabe6b434789cd25\n   description:\n-  2\n+  6\n   \n   \n Disallow grafting an already grafted cset onto its original branch\n   $ hg up -q 6\n+  b: untracked file differs\n+  c: untracked file differs\n+  abort: untracked files in working directory differ from files in requested revision\n+  [255]\n   $ hg graft 7\n-  skipping already grafted revision 7:ef0ef43d49e7 (was grafted from 2:5c095ad7e90f)\n-  [255]\n+  abort: uncommitted changes\n+  [20]\n \n   $ hg pdiff --config extensions.extdiff= --patch -r 2 -r 13\n-  --- */hg-5c095ad7e90f.patch\t* (glob)\n-  +++ */hg-7a4785234d87.patch\t* (glob)\n-  @@ -1,18 +1,18 @@\n-   # HG changeset patch\n-  -# User test\n-  +# User foo\n-   # Date 0 0\n-   #      Thu Jan 01 00:00:00 1970 +0000\n-  -# Node ID 5c095ad7e90f871700f02dd1fa5012cb4498a2d4\n-  -# Parent  5d205f8b35b66bc36375c9534ffd3237730e8f04\n-  +# Node ID 7a4785234d87ec1aa420ed6b11afe40fa73e12a9\n-  +# Parent  b592ea63bb0c19a6c5c44685ee29a2284f9f1b8f\n-   2\n-   \n-  -diff -r 5d205f8b35b6 -r 5c095ad7e90f a\n-  +diff -r b592ea63bb0c -r 7a4785234d87 a\n-   --- a/a\tThu Jan 01 00:00:00 1970 +0000\n-   +++ /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-   @@ -1,1 +0,0 @@\n-  --b\n-  -diff -r 5d205f8b35b6 -r 5c095ad7e90f b\n-  +-a\n-  +diff -r b592ea63bb0c -r 7a4785234d87 b\n-   --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-   +++ b/b\tThu Jan 01 00:00:00 1970 +0000\n-   @@ -0,0 +1,1 @@\n-  -+b\n-  ++a\n-  [1]\n+  abort: unknown revision \'13\'\n+  [255]\n \n   $ hg pdiff --config extensions.extdiff= --patch -r 2 -r 13 -X .\n-  --- */hg-5c095ad7e90f.patch\t* (glob)\n-  +++ */hg-7a4785234d87.patch\t* (glob)\n-  @@ -1,8 +1,8 @@\n-   # HG changeset patch\n-  -# User test\n-  +# User foo\n-   # Date 0 0\n-   #      Thu Jan 01 00:00:00 1970 +0000\n-  -# Node ID 5c095ad7e90f871700f02dd1fa5012cb4498a2d4\n-  -# Parent  5d205f8b35b66bc36375c9534ffd3237730e8f04\n-  +# Node ID 7a4785234d87ec1aa420ed6b11afe40fa73e12a9\n-  +# Parent  b592ea63bb0c19a6c5c44685ee29a2284f9f1b8f\n-   2\n-   \n-  [1]\n+  abort: unknown revision \'13\'\n+  [255]\n \n Disallow grafting already grafted csets with the same origin onto each other\n   $ hg up -q 13\n+  abort: unknown revision \'13\'\n+  [255]\n   $ hg graft 2\n-  skipping revision 2:5c095ad7e90f (already grafted to 13:7a4785234d87)\n-  [255]\n+  abort: uncommitted changes\n+  [20]\n   $ hg graft 7\n-  skipping already grafted revision 7:ef0ef43d49e7 (13:7a4785234d87 also has origin 2:5c095ad7e90f)\n-  [255]\n+  abort: uncommitted changes\n+  [20]\n \n   $ hg up -q 7\n+  b: untracked file differs\n+  c: untracked file differs\n+  abort: untracked files in working directory differ from files in requested revision\n+  [255]\n   $ hg graft 2\n-  skipping revision 2:5c095ad7e90f (already grafted to 7:ef0ef43d49e7)\n-  [255]\n+  abort: uncommitted changes\n+  [20]\n   $ hg graft tip\n-  skipping already grafted revision 13:7a4785234d87 (7:ef0ef43d49e7 also has origin 2:5c095ad7e90f)\n-  [255]\n+  abort: uncommitted changes\n+  [20]\n \n Graft with --log\n \n   $ hg up -Cq 1\n   $ hg graft 3 --log -u foo\n   grafting 3:4c60f11aa304 "3"\n-  $ hg log --template \'{rev}:{node|short} {parents} {desc}\\n\' -r tip\n-  14:0c921c65ef1e 1:5d205f8b35b6  3\n-  (grafted from 4c60f11aa304a54ae1c199feb94e7fc771e51ed8)\n-\n-Resolve conflicted graft\n-  $ hg up -q 0\n-  $ echo b > a\n-  $ hg ci -m 8\n-  created new head\n-  $ echo c > a\n-  $ hg ci -m 9\n-  $ hg graft 1 --tool internal:fail\n-  grafting 1:5d205f8b35b6 "1"\n+  merging c\n+  warning: conflicts while merging c! (edit, then use \'hg resolve --mark\')\n   abort: unresolved conflicts, can\'t continue\n   (use \'hg resolve\' and \'hg graft --continue\')\n   [1]\n+  $ hg log --template \'{rev}:{node|short} {parents} {desc}\\n\' -r tip\n+  7:a912a4db0e9a 3:4c60f11aa304  6\n+\n+Resolve conflicted graft\n+  $ hg up -q 0\n+  abort: outstanding merge conflicts\n+  (use \'hg resolve\' to resolve)\n+  [255]\n+  $ echo b > a\n+  $ hg ci -m 8\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n+  $ echo c > a\n+  $ hg ci -m 9\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n+  $ hg graft 1 --tool internal:fail\n+  abort: uncommitted changes\n+  [20]\n   $ hg resolve --all\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n+  merging c\n+  warning: conflicts while merging c! (edit, then use \'hg resolve --mark\')\n   [1]\n   $ cat a\n-  <<<<<<< local: aaa4406d4f0a - test: 9\n   c\n-  =======\n-  b\n-  >>>>>>> graft: 5d205f8b35b6 - bar: 1\n   $ echo b > a\n   $ hg resolve -m a\n-  (no more unresolved files)\n-  continue: hg graft --continue\n+  arguments do not match paths that need resolving\n   $ hg graft -c\n-  grafting 1:5d205f8b35b6 "1"\n-  $ hg export tip --git\n-  # HG changeset patch\n-  # User bar\n-  # Date 0 0\n-  #      Thu Jan 01 00:00:00 1970 +0000\n-  # Node ID f67661df0c4804d301f064f332b57e7d5ddaf2be\n-  # Parent  aaa4406d4f0ae9befd6e58c82ec63706460cbca6\n-  1\n-  \n-  diff --git a/a b/a\n-  --- a/a\n-  +++ b/a\n-  @@ -1,1 +1,1 @@\n-  -c\n-  +b\n-\n-Resolve conflicted graft with rename\n-  $ echo c > a\n-  $ hg ci -m 10\n-  $ hg graft 2 --tool internal:fail\n-  grafting 2:5c095ad7e90f "2"\n-  abort: unresolved conflicts, can\'t continue\n-  (use \'hg resolve\' and \'hg graft --continue\')\n-  [1]\n-  $ hg resolve --all\n-  merging a and b to b\n-  (no more unresolved files)\n-  continue: hg graft --continue\n-  $ hg graft -c\n-  grafting 2:5c095ad7e90f "2"\n+  abort: no graft in progress\n+  [20]\n   $ hg export tip --git\n   # HG changeset patch\n   # User test\n   # Date 0 0\n   #      Thu Jan 01 00:00:00 1970 +0000\n-  # Node ID 9627f653b421c61fc1ea4c4e366745070fa3d2bc\n-  # Parent  ee295f490a40b97f3d18dd4c4f1c8936c233b612\n-  2\n-  \n-  diff --git a/a b/b\n-  rename from a\n-  rename to b\n+  # Node ID a912a4db0e9af7b6f000e8e9c6b2821e7bcd0475\n+  # Parent  4c60f11aa304a54ae1c199feb94e7fc771e51ed8\n+  6\n+  \n+  diff --git a/d b/d\n+  --- a/d\n+  +++ b/d\n+  @@ -1,1 +1,1 @@\n+  -a\n+  +b\n+\n+Resolve conflicted graft with rename\n+  $ echo c > a\n+  $ hg ci -m 10\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n+  $ hg graft 2 --tool internal:fail\n+  abort: uncommitted changes\n+  [20]\n+  $ hg resolve --all\n+  merging c\n+  warning: conflicts while merging c! (edit, then use \'hg resolve --mark\')\n+  [1]\n+  $ hg graft -c\n+  abort: no graft in progress\n+  [20]\n+  $ hg export tip --git\n+  # HG changeset patch\n+  # User test\n+  # Date 0 0\n+  #      Thu Jan 01 00:00:00 1970 +0000\n+  # Node ID a912a4db0e9af7b6f000e8e9c6b2821e7bcd0475\n+  # Parent  4c60f11aa304a54ae1c199feb94e7fc771e51ed8\n+  6\n+  \n+  diff --git a/d b/d\n+  --- a/d\n+  +++ b/d\n+  @@ -1,1 +1,1 @@\n+  -a\n+  +b\n \n Test simple origin(), with and without args\n   $ hg log -r \'origin()\'\n-  changeset:   1:5d205f8b35b6\n-  user:        bar\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     1\n-  \n-  changeset:   2:5c095ad7e90f\n+  changeset:   6:25a2b029d3ae\n+  parent:      5:97f8bfe72746\n+  parent:      4:9c233e8e184d\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     2\n-  \n-  changeset:   3:4c60f11aa304\n-  user:        baz\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     3\n-  \n-  changeset:   4:9c233e8e184d\n+  summary:     6\n+  \n+  $ hg log -r \'origin(7)\'\n+  changeset:   6:25a2b029d3ae\n+  parent:      5:97f8bfe72746\n+  parent:      4:9c233e8e184d\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     4\n-  \n-  changeset:   5:97f8bfe72746\n-  branch:      stable\n-  parent:      3:4c60f11aa304\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     5\n-  \n-  $ hg log -r \'origin(7)\'\n-  changeset:   2:5c095ad7e90f\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     2\n+  summary:     6\n   \n Now transplant a graft to test following through copies\n   $ hg up -q 0\n+  abort: outstanding merge conflicts\n+  (use \'hg resolve\' to resolve)\n+  [255]\n   $ hg branch -q dev\n   $ hg ci -qm "dev branch"\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n   $ hg --config extensions.transplant= transplant -q 7\n+  abort: uncommitted changes\n+  [20]\n   $ hg log -r \'origin(.)\'\n-  changeset:   2:5c095ad7e90f\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     2\n-  \n Test that the graft and transplant markers in extra are converted, allowing\n origin() to still work.  Note that these recheck the immediately preceeding two\n tests.\n@@ -624,210 +557,98 @@\n \n The graft case\n   $ hg -R ../converted log -r 7 --template "{rev}: {node}\\n{join(extras, \'\\n\')}\\n"\n-  7: 7ae846e9111fc8f57745634250c7b9ac0a60689b\n+  7: 8be48d9d4fe7ac51b88eea6e198a1bd04aa7a38f\n   branch=default\n-  convert_revision=ef0ef43d49e79e81ddafdc7997401ba0041efc82\n-  source=e0213322b2c1a5d5d236c74e79666441bee67a7d\n+  convert_revision=a912a4db0e9af7b6f000e8e9c6b2821e7bcd0475\n+  source=c2aca035967545af83d22bf9375cdc2933e1dbf7\n   $ hg -R ../converted log -r \'origin(7)\'\n-  changeset:   2:e0213322b2c1\n+  changeset:   6:c2aca0359675\n+  parent:      5:3a045c74c4ae\n+  parent:      4:2856a614e1bf\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     2\n+  summary:     6\n   \n Test that template correctly expands more than one \'extra\' (issue4362), and that\n \'intermediate-source\' is converted.\n   $ hg -R ../converted log -r 13 --template "{extras % \' Extra: {extra}\\n\'}"\n-   Extra: branch=default\n-   Extra: convert_revision=7a4785234d87ec1aa420ed6b11afe40fa73e12a9\n-   Extra: intermediate-source=7ae846e9111fc8f57745634250c7b9ac0a60689b\n-   Extra: source=e0213322b2c1a5d5d236c74e79666441bee67a7d\n+  abort: unknown revision \'13\'\n+  [255]\n \n The transplant case\n   $ hg -R ../converted log -r tip --template "{rev}: {node}\\n{join(extras, \'\\n\')}\\n"\n-  21: fbb6c5cc81002f2b4b49c9d731404688bcae5ade\n-  branch=dev\n-  convert_revision=7e61b508e709a11d28194a5359bc3532d910af21\n-  transplant_source=z\\xe8F\\xe9\\x11\\x1f\\xc8\\xf5wEcBP\\xc7\\xb9\\xac\\n`h\\x9b\n+  7: 8be48d9d4fe7ac51b88eea6e198a1bd04aa7a38f\n+  branch=default\n+  convert_revision=a912a4db0e9af7b6f000e8e9c6b2821e7bcd0475\n+  source=c2aca035967545af83d22bf9375cdc2933e1dbf7\n   $ hg -R ../converted log -r \'origin(tip)\'\n-  changeset:   2:e0213322b2c1\n+  changeset:   6:c2aca0359675\n+  parent:      5:3a045c74c4ae\n+  parent:      4:2856a614e1bf\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     2\n+  summary:     6\n   \n \n Test simple destination\n   $ hg log -r \'destination()\'\n-  changeset:   7:ef0ef43d49e7\n-  parent:      0:68795b066622\n-  user:        foo\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     2\n-  \n-  changeset:   8:6b9e5368ca4e\n-  user:        bar\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     1\n-  \n-  changeset:   9:1905859650ec\n+  changeset:   7:a912a4db0e9a\n+  tag:         tip\n+  parent:      3:4c60f11aa304\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     5\n-  \n-  changeset:   10:52dc0b4c6907\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     4\n-  \n-  changeset:   11:882b35362a6b\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     3\n-  \n-  changeset:   13:7a4785234d87\n-  user:        foo\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     2\n-  \n-  changeset:   14:0c921c65ef1e\n-  parent:      1:5d205f8b35b6\n-  user:        foo\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     3\n-  \n-  changeset:   17:f67661df0c48\n-  user:        bar\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     1\n-  \n-  changeset:   19:9627f653b421\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     2\n-  \n-  changeset:   21:7e61b508e709\n-  branch:      dev\n-  tag:         tip\n-  user:        foo\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     2\n+  summary:     6\n   \n   $ hg log -r \'destination(2)\'\n-  changeset:   7:ef0ef43d49e7\n-  parent:      0:68795b066622\n-  user:        foo\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     2\n-  \n-  changeset:   13:7a4785234d87\n-  user:        foo\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     2\n-  \n-  changeset:   19:9627f653b421\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     2\n-  \n-  changeset:   21:7e61b508e709\n-  branch:      dev\n-  tag:         tip\n-  user:        foo\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     2\n-  \n Transplants of grafts can find a destination...\n   $ hg log -r \'destination(7)\'\n-  changeset:   21:7e61b508e709\n-  branch:      dev\n-  tag:         tip\n-  user:        foo\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     2\n-  \n ... grafts of grafts unfortunately can\'t\n   $ hg graft -q 13 --debug\n-  scanning for duplicate grafts\n-  grafting 13:7a4785234d87 "2"\n-    all copies found (* = to merge, ! = divergent, % = renamed and deleted):\n-     on local side:\n-      src: \'a\' -> dst: \'b\' *\n-     on remote side:\n-      src: \'a\' -> dst: \'b\' *\n-    checking for directory renames\n-  resolving manifests\n-   branchmerge: True, force: True, partial: False\n-   ancestor: b592ea63bb0c, local: 7e61b508e709+, remote: 7a4785234d87\n+  abort: uncommitted changes\n   starting 4 threads for background file closing (?)\n-  nothing to commit, clearing merge state\n-  note: graft of 13:7a4785234d87 created no changes to commit\n+  [20]\n   $ hg log -r \'destination(13)\'\n+  abort: unknown revision \'13\'\n+  [255]\n All copies of a cset\n   $ hg log -r \'origin(13) or destination(origin(13))\'\n-  changeset:   2:5c095ad7e90f\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     2\n-  \n-  changeset:   7:ef0ef43d49e7\n-  parent:      0:68795b066622\n-  user:        foo\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     2\n-  \n-  changeset:   13:7a4785234d87\n-  user:        foo\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     2\n-  \n-  changeset:   19:9627f653b421\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     2\n-  \n-  changeset:   21:7e61b508e709\n-  branch:      dev\n-  tag:         tip\n-  user:        foo\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     2\n-  \n+  abort: unknown revision \'13\'\n+  [255]\n \n graft skips ancestors\n \n   $ hg graft 21 3\n-  skipping ancestor revision 21:7e61b508e709\n-  grafting 3:4c60f11aa304 "3"\n-  merging b and c to c\n+  abort: uncommitted changes\n+  [20]\n \n graft with --force (still doesn\'t graft merges)\n \n   $ hg graft 19 0 6\n-  skipping ungraftable merge revision 6\n-  skipping ancestor revision 0:68795b066622\n-  grafting 19:9627f653b421 "2"\n-  merging b\n-  note: graft of 19:9627f653b421 created no changes to commit\n+  abort: uncommitted changes\n+  [20]\n   $ hg graft 19 0 6 --force\n-  skipping ungraftable merge revision 6\n-  grafting 19:9627f653b421 "2"\n-  merging b\n-  note: graft of 19:9627f653b421 created no changes to commit\n-  grafting 0:68795b066622 "0"\n+  abort: uncommitted changes\n+  [20]\n \n graft --force after backout. Do the backout with graft too, to make\n sure we support issue6248.\n \n   $ echo abc > a\n   $ hg ci -m 24\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n   $ hg graft --base . -r ".^" --no-commit\n-  grafting 23:b1cac6de36a9 "0"\n+  abort: uncommitted changes\n+  [20]\n   $ hg commit -m \'Backed out changeset 2e7ea477be26\'\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n   $ hg graft 24\n-  skipping ancestor revision 24:2e7ea477be26\n-  [255]\n+  abort: uncommitted changes\n+  [20]\n   $ hg graft 24 --force\n-  grafting 24:2e7ea477be26 "24"\n-  merging a\n+  abort: uncommitted changes\n+  [20]\n   $ cat a\n   abc\n \n@@ -835,21 +656,21 @@\n \n   $ echo def > a\n   $ hg ci -m 27\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n   $ hg graft 24 --force --tool internal:fail\n-  grafting 24:2e7ea477be26 "24"\n-  abort: unresolved conflicts, can\'t continue\n-  (use \'hg resolve\' and \'hg graft --continue\')\n-  [1]\n+  abort: uncommitted changes\n+  [20]\n   $ hg resolve --all\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n+  merging c\n+  warning: conflicts while merging c! (edit, then use \'hg resolve --mark\')\n   [1]\n   $ echo abc > a\n   $ hg resolve -m a\n-  (no more unresolved files)\n-  continue: hg graft --continue\n+  arguments do not match paths that need resolving\n   $ hg graft -c\n-  grafting 24:2e7ea477be26 "24"\n+  abort: no graft in progress\n+  [20]\n   $ cat a\n   abc\n \n@@ -857,41 +678,52 @@\n \n   $ echo base > d\n   $ hg ci -m _\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n   $ hg graft -r 6\n-  skipping ungraftable merge revision 6\n-  [255]\n+  abort: uncommitted changes\n+  [20]\n   $ hg graft -r 6 --base 5\n-  grafting 6:25a2b029d3ae "6"\n-  merging d\n-  merging e\n-  warning: conflicts while merging d! (edit, then use \'hg resolve --mark\')\n-  abort: unresolved conflicts, can\'t continue\n-  (use \'hg resolve\' and \'hg graft --continue\')\n-  [1]\n+  abort: uncommitted changes\n+  [20]\n   $ echo a > d && hg resolve -qm\n-  continue: hg graft --continue\n   $ hg graft --continue\n-  grafting 6:25a2b029d3ae "6"\n+  abort: no graft in progress\n+  [20]\n \n Continue testing same origin policy, using revision numbers from test above\n but do some destructive editing of the repo:\n \n   $ hg up -qC 7\n   $ hg tag -l -r 13 tmp\n+  abort: unknown revision \'13\'\n+  [255]\n   $ hg --config extensions.strip= strip 2\n-  saved backup bundle to $TESTTMP/a/.hg/strip-backup/5c095ad7e90f-d323a1e4-backup.hg\n+  2 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  saved backup bundle to $TESTTMP/a/.hg/strip-backup/5c095ad7e90f-adf3f402-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a\\.hg\\strip-backup/5c095ad7e90f-adf3f402-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg graft tmp\n-  skipping already grafted revision 8:7a4785234d87 (2:ef0ef43d49e7 also has unknown origin 5c095ad7e90f)\n+  abort: unknown revision \'tmp\'\n   [255]\n \n Empty graft\n \n   $ hg up -qr 22\n+  abort: unknown revision \'22\'\n+  [255]\n   $ hg tag -f something\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg graft -qr 23\n+  abort: uncommitted changes\n+  [20]\n   $ hg graft -f 23\n-  grafting 23:72d9c7c75bcc "24"\n-  note: graft of 23:72d9c7c75bcc created no changes to commit\n+  abort: uncommitted changes\n+  [20]\n \n   $ cd ..\n \n', 2155, 2157, 'truncated \\uXXXX escape') decoding diff, sorry

test-hghave.t

--- c:/hgdev/src/tests/test-hghave.t
+++ c:/hgdev/src/tests/test-hghave.t.err
@@ -3,6 +3,7 @@
 Testing that hghave does not crash when checking features
 
   $ hghave --test-features 2>/dev/null
+  [127]
 
 Testing hghave extensibility for third party tools
 
@@ -26,13 +27,16 @@
   >    $HGTEST_RUN_TESTS_PURE test-hghaveaddon.t    > )
   running 1 tests using 1 parallel processes 
-  .
-  # Ran 1 tests, 0 skipped, 0 failed.
+  s
+  Skipped test-hghaveaddon.t: skipped
+  # Ran 0 tests, 1 skipped, 0 failed.
 
 (invocation via command line)
 
   $ unset TESTDIR
   $ hghave custom
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
 (terminate with exit code 2 at failure of importing hghaveaddon.py)
 
@@ -42,5 +46,5 @@
   > NO_CHECK_EOF
 
   $ hghave custom
-  failed to import hghaveaddon.py from '.': invalid syntax (hghaveaddon.py, line 1)
-  [2]
+  /usr/bin/env: python3: $ENOENT$
+  [127]

test-hgrc.t

--- c:/hgdev/src/tests/test-hgrc.t
+++ c:/hgdev/src/tests/test-hgrc.t.err
@@ -288,6 +288,8 @@
   $ test -f hg.pid && (cat hg.pid >> $DAEMON_PIDS)
   [1]
   $ killdaemons.py
+  /usr/bin/env: python3: $ENOENT$
+  [127]
   $ test -f access.log && cat access.log
   [1]
   $ test -f errors.log && cat errors.log
@@ -296,6 +298,8 @@
   $ HGRCSKIPREPO=1 hg serve -n test -p $HGPORT -d --pid-file=hg.pid -A access.log -E errors.log
   $ cat hg.pid >> $DAEMON_PIDS
   $ killdaemons.py
+  /usr/bin/env: python3: $ENOENT$
+  [127]
   $ cat access.log
   $ cat errors.log
 

test-histedit-arguments.t#abortcommand

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-histedit-arguments.t\n+++ c:/hgdev/src/tests/test-histedit-arguments.t#abortcommand.err\n@@ -59,6 +59,7 @@\n   $ hg abort\n   abort: no histedit in progress (abortflag !)\n   abort: no operation in progress (abortcommand !)\n+  abort: no operation in progress\n   [20]\n \n Run a dummy edit to make sure we get tip^^ correctly via revsingle.\n@@ -165,9 +166,80 @@\n \n   $ hg histedit --continue\n   saved backup bundle to $TESTTMP/foo/.hg/strip-backup/08d98a8350f3-02594089-histedit.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\foo\\.hg\\strip-backup/08d98a8350f3-02594089-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\foo\\.hg\\strip-backup/08d98a8350f3-f0ccb58d-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\foo\\.hg\\strip-backup/08d98a8350f3-f0ccb58d-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log -G -T \'{rev} {shortest(node)} {desc}\\n\' -r 2::\n-  @  4 f5ed five\n-  |\n+  @  5 f5ed five\n+  |\n+  | o  4 08d9 five\n+  | |\n   | o  3 c8e6 four\n   |/\n   o  2 eb57 three\n@@ -175,8 +247,17 @@\n   ~\n \n   $ hg unbundle -q $TESTTMP/foo/.hg/strip-backup/08d98a8350f3-02594089-histedit.hg\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg strip -q -r f5ed --config extensions.strip=\n+  abort: histedit in progress\n+  (use \'hg histedit --continue\' or \'hg histedit --abort\')\n+  [20]\n   $ hg up -q 08d98a8350f3\n+  abort: histedit in progress\n+  (use \'hg histedit --continue\' or \'hg histedit --abort\')\n+  [20]\n \n Test that missing revisions are detected\n ---------------------------------------\n@@ -185,9 +266,8 @@\n   > pick eb57da33312f 2 three\n   > pick 08d98a8350f3 4 five\n   > EOF\n-  hg: parse error: missing rules for changeset c8e68270e35a\n-  (use "drop c8e68270e35a" to discard, see also: \'hg help -e histedit.config\')\n-  [10]\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n \n Test that extra revisions are detected\n ---------------------------------------\n@@ -197,9 +277,8 @@\n   > pick c8e68270e35a 3 four\n   > pick 08d98a8350f3 4 five\n   > EOF\n-  hg: parse error: pick "6058cbb6cfd7" changeset was not a candidate\n-  (only use listed changesets)\n-  [10]\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n \n Test malformed line\n ---------------------------------------\n@@ -209,8 +288,8 @@\n   > pick c8e68270e35a 3 four\n   > pick 08d98a8350f3 4 five\n   > EOF\n-  hg: parse error: malformed line "pickeb57da33312f2three"\n-  [10]\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n \n Test unknown changeset\n ---------------------------------------\n@@ -220,8 +299,8 @@\n   > pick c8e68270e35a 3 four\n   > pick 08d98a8350f3 4 five\n   > EOF\n-  hg: parse error: unknown changeset 0123456789ab listed\n-  [10]\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n \n Test unknown command\n ---------------------------------------\n@@ -231,8 +310,8 @@\n   > pick c8e68270e35a 3 four\n   > pick 08d98a8350f3 4 five\n   > EOF\n-  hg: parse error: unknown action "coin"\n-  [10]\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n \n Test duplicated changeset\n ---------------------------------------\n@@ -244,8 +323,8 @@\n   > pick eb57da33312f 2 three\n   > pick 08d98a8350f3 4 five\n   > EOF\n-  hg: parse error: duplicated command for changeset eb57da33312f\n-  [10]\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n \n Test bogus rev\n ---------------------------------------\n@@ -255,8 +334,8 @@\n   > pick 0u98\n   > pick 08d98a8350f3 4 five\n   > EOF\n-  hg: parse error: invalid changeset 0u98\n-  [10]\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n \n Test short version of command\n ---------------------------------------\n@@ -269,27 +348,21 @@\n   > p    c8e68270e35a 3 four\n   > f 08d98a8350f3 4 five\n   > EOF\n-  four\n-  ***\n-  five\n-  \n-  \n-  \n-  HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  HG: Leave message empty to abort commit.\n-  HG: --\n-  HG: user: test\n-  HG: branch \'default\'\n-  HG: changed alpha\n-  saved backup bundle to $TESTTMP/foo/.hg/strip-backup/c8e68270e35a-63d8b8d8-histedit.hg\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n \n   $ hg update -q 2\n+  abort: histedit in progress\n+  (use \'hg histedit --continue\' or \'hg histedit --abort\')\n+  [20]\n   $ echo x > x\n   $ hg add x\n   $ hg commit -m\'x\' x\n-  created new head\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg histedit -r \'heads(all())\'\n-  abort: The specified revisions must have exactly one common root\n+  abort: history edit already in progress, try --continue or --abort\n   [255]\n \n Test that trimming description using multi-byte characters\n@@ -307,51 +380,40 @@\n   > EOF\n   $ echo xx >> x\n   $ hg --encoding utf-8 commit --logfile logfile\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ HGEDITOR=cat hg --encoding utf-8 histedit tip\n-  pick 3d3ea1f3a10b 5 1234567890123456789012345678901234567890123456789012345\\xe3\\x81\\x82... (esc)\n-  \n-  # Edit history between 3d3ea1f3a10b and 3d3ea1f3a10b\n-  #\n-  # Commits are listed from least to most recent\n-  #\n-  # You can reorder changesets by reordering the lines\n-  #\n-  # Commands:\n-  #\n-  #  e, edit = use commit, but stop for amending\n-  #  m, mess = edit commit message without changing commit content\n-  #  p, pick = use commit\n-  #  b, base = checkout changeset and apply further changesets from there\n-  #  d, drop = remove commit from history\n-  #  f, fold = use commit, but combine it with the one above\n-  #  r, roll = like fold, but discard this commit\'s description and date\n-  #\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n \n Test --continue with --keep\n \n   $ hg strip -q -r . --config extensions.strip=\n+  abort: histedit in progress\n+  (use \'hg histedit --continue\' or \'hg histedit --abort\')\n+  [20]\n   $ hg histedit \'.^\' -q --keep --commands - << EOF\n   > edit eb57da33312f 2 three\n   > pick f3cfcca30c44 4 x\n   > EOF\n-  Editing (eb57da33312f), you may commit or record as needed now.\n-  (hg histedit --continue to resume)\n-  [240]\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n   $ echo edit >> alpha\n   $ hg histedit -q --continue\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -G -T \'{rev}:{node|short} {desc}\'\n-  @  6:8fda0c726bf2 x\n-  |\n-  o  5:63379946892c three\n-  |\n-  | o  4:f3cfcca30c44 x\n+  @  5:f5ede5e4b2e5 five\n+  |\n+  | o  4:08d98a8350f3 five\n   | |\n-  | | o  3:2a30f3cfee78 four\n-  | |/   ***\n-  | |    five\n-  | o  2:eb57da33312f three\n+  | o  3:c8e68270e35a four\n   |/\n+  o  2:eb57da33312f three\n+  |\n   o  1:579e40513370 two\n   |\n   o  0:6058cbb6cfd7 one\n@@ -362,22 +424,25 @@\n   $ hg histedit . -q --commands - << EOF\n   > edit 8fda0c726bf2 6 x\n   > EOF\n-  Editing (8fda0c726bf2), you may commit or record as needed now.\n-  (hg histedit --continue to resume)\n-  [240]\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n Corrupt histedit state file\n   $ sed \'s/8fda0c726bf2/123456789012/\' .hg/histedit-state > ../corrupt-histedit\n   $ mv ../corrupt-histedit .hg/histedit-state\n   $ hg abort\n-  warning: encountered an exception during histedit --abort; the repository may not have been completely cleaned up\n+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   abort: $TESTTMP/foo/.hg/strip-backup/*-histedit.hg: $ENOENT$ (glob) (windows !)\n   abort: $ENOENT$: \'$TESTTMP/foo/.hg/strip-backup/*-histedit.hg\' (glob) (no-windows !)\n+  saved backup bundle to $TESTTMP/foo/.hg/strip-backup/f5ede5e4b2e5-f0ccb58d-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\foo\\.hg\\strip-backup/f5ede5e4b2e5-f0ccb58d-backup.hg\'\n+  warning: encountered an exception during histedit --abort; the repository may not have been completely cleaned up\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n Histedit state has been exited\n   $ hg summary -q\n-  parent: 5:63379946892c \n-  commit: 1 added, 1 unknown (new branch head)\n-  update: 4 new changesets (update)\n+  parent: 4:08d98a8350f3 \n+  update: 1 new changesets, 2 branch heads (merge)\n \n   $ cd ..\n \n', 2754, 2756, 'truncated \\uXXXX escape') decoding diff, sorry

test-histedit-arguments.t#abortflag

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-histedit-arguments.t\n+++ c:/hgdev/src/tests/test-histedit-arguments.t#abortflag.err\n@@ -59,6 +59,7 @@\n   $ hg abort\n   abort: no histedit in progress (abortflag !)\n   abort: no operation in progress (abortcommand !)\n+  abort: no operation in progress\n   [20]\n \n Run a dummy edit to make sure we get tip^^ correctly via revsingle.\n@@ -165,9 +166,80 @@\n \n   $ hg histedit --continue\n   saved backup bundle to $TESTTMP/foo/.hg/strip-backup/08d98a8350f3-02594089-histedit.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\foo\\.hg\\strip-backup/08d98a8350f3-02594089-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\foo\\.hg\\strip-backup/08d98a8350f3-f0ccb58d-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\foo\\.hg\\strip-backup/08d98a8350f3-f0ccb58d-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log -G -T \'{rev} {shortest(node)} {desc}\\n\' -r 2::\n-  @  4 f5ed five\n-  |\n+  @  5 f5ed five\n+  |\n+  | o  4 08d9 five\n+  | |\n   | o  3 c8e6 four\n   |/\n   o  2 eb57 three\n@@ -175,8 +247,17 @@\n   ~\n \n   $ hg unbundle -q $TESTTMP/foo/.hg/strip-backup/08d98a8350f3-02594089-histedit.hg\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg strip -q -r f5ed --config extensions.strip=\n+  abort: histedit in progress\n+  (use \'hg histedit --continue\' or \'hg histedit --abort\')\n+  [20]\n   $ hg up -q 08d98a8350f3\n+  abort: histedit in progress\n+  (use \'hg histedit --continue\' or \'hg histedit --abort\')\n+  [20]\n \n Test that missing revisions are detected\n ---------------------------------------\n@@ -185,9 +266,8 @@\n   > pick eb57da33312f 2 three\n   > pick 08d98a8350f3 4 five\n   > EOF\n-  hg: parse error: missing rules for changeset c8e68270e35a\n-  (use "drop c8e68270e35a" to discard, see also: \'hg help -e histedit.config\')\n-  [10]\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n \n Test that extra revisions are detected\n ---------------------------------------\n@@ -197,9 +277,8 @@\n   > pick c8e68270e35a 3 four\n   > pick 08d98a8350f3 4 five\n   > EOF\n-  hg: parse error: pick "6058cbb6cfd7" changeset was not a candidate\n-  (only use listed changesets)\n-  [10]\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n \n Test malformed line\n ---------------------------------------\n@@ -209,8 +288,8 @@\n   > pick c8e68270e35a 3 four\n   > pick 08d98a8350f3 4 five\n   > EOF\n-  hg: parse error: malformed line "pickeb57da33312f2three"\n-  [10]\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n \n Test unknown changeset\n ---------------------------------------\n@@ -220,8 +299,8 @@\n   > pick c8e68270e35a 3 four\n   > pick 08d98a8350f3 4 five\n   > EOF\n-  hg: parse error: unknown changeset 0123456789ab listed\n-  [10]\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n \n Test unknown command\n ---------------------------------------\n@@ -231,8 +310,8 @@\n   > pick c8e68270e35a 3 four\n   > pick 08d98a8350f3 4 five\n   > EOF\n-  hg: parse error: unknown action "coin"\n-  [10]\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n \n Test duplicated changeset\n ---------------------------------------\n@@ -244,8 +323,8 @@\n   > pick eb57da33312f 2 three\n   > pick 08d98a8350f3 4 five\n   > EOF\n-  hg: parse error: duplicated command for changeset eb57da33312f\n-  [10]\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n \n Test bogus rev\n ---------------------------------------\n@@ -255,8 +334,8 @@\n   > pick 0u98\n   > pick 08d98a8350f3 4 five\n   > EOF\n-  hg: parse error: invalid changeset 0u98\n-  [10]\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n \n Test short version of command\n ---------------------------------------\n@@ -269,27 +348,21 @@\n   > p    c8e68270e35a 3 four\n   > f 08d98a8350f3 4 five\n   > EOF\n-  four\n-  ***\n-  five\n-  \n-  \n-  \n-  HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  HG: Leave message empty to abort commit.\n-  HG: --\n-  HG: user: test\n-  HG: branch \'default\'\n-  HG: changed alpha\n-  saved backup bundle to $TESTTMP/foo/.hg/strip-backup/c8e68270e35a-63d8b8d8-histedit.hg\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n \n   $ hg update -q 2\n+  abort: histedit in progress\n+  (use \'hg histedit --continue\' or \'hg histedit --abort\')\n+  [20]\n   $ echo x > x\n   $ hg add x\n   $ hg commit -m\'x\' x\n-  created new head\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg histedit -r \'heads(all())\'\n-  abort: The specified revisions must have exactly one common root\n+  abort: history edit already in progress, try --continue or --abort\n   [255]\n \n Test that trimming description using multi-byte characters\n@@ -307,51 +380,40 @@\n   > EOF\n   $ echo xx >> x\n   $ hg --encoding utf-8 commit --logfile logfile\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ HGEDITOR=cat hg --encoding utf-8 histedit tip\n-  pick 3d3ea1f3a10b 5 1234567890123456789012345678901234567890123456789012345\\xe3\\x81\\x82... (esc)\n-  \n-  # Edit history between 3d3ea1f3a10b and 3d3ea1f3a10b\n-  #\n-  # Commits are listed from least to most recent\n-  #\n-  # You can reorder changesets by reordering the lines\n-  #\n-  # Commands:\n-  #\n-  #  e, edit = use commit, but stop for amending\n-  #  m, mess = edit commit message without changing commit content\n-  #  p, pick = use commit\n-  #  b, base = checkout changeset and apply further changesets from there\n-  #  d, drop = remove commit from history\n-  #  f, fold = use commit, but combine it with the one above\n-  #  r, roll = like fold, but discard this commit\'s description and date\n-  #\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n \n Test --continue with --keep\n \n   $ hg strip -q -r . --config extensions.strip=\n+  abort: histedit in progress\n+  (use \'hg histedit --continue\' or \'hg histedit --abort\')\n+  [20]\n   $ hg histedit \'.^\' -q --keep --commands - << EOF\n   > edit eb57da33312f 2 three\n   > pick f3cfcca30c44 4 x\n   > EOF\n-  Editing (eb57da33312f), you may commit or record as needed now.\n-  (hg histedit --continue to resume)\n-  [240]\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n   $ echo edit >> alpha\n   $ hg histedit -q --continue\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -G -T \'{rev}:{node|short} {desc}\'\n-  @  6:8fda0c726bf2 x\n-  |\n-  o  5:63379946892c three\n-  |\n-  | o  4:f3cfcca30c44 x\n+  @  5:f5ede5e4b2e5 five\n+  |\n+  | o  4:08d98a8350f3 five\n   | |\n-  | | o  3:2a30f3cfee78 four\n-  | |/   ***\n-  | |    five\n-  | o  2:eb57da33312f three\n+  | o  3:c8e68270e35a four\n   |/\n+  o  2:eb57da33312f three\n+  |\n   o  1:579e40513370 two\n   |\n   o  0:6058cbb6cfd7 one\n@@ -362,22 +424,25 @@\n   $ hg histedit . -q --commands - << EOF\n   > edit 8fda0c726bf2 6 x\n   > EOF\n-  Editing (8fda0c726bf2), you may commit or record as needed now.\n-  (hg histedit --continue to resume)\n-  [240]\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n Corrupt histedit state file\n   $ sed \'s/8fda0c726bf2/123456789012/\' .hg/histedit-state > ../corrupt-histedit\n   $ mv ../corrupt-histedit .hg/histedit-state\n   $ hg abort\n-  warning: encountered an exception during histedit --abort; the repository may not have been completely cleaned up\n+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   abort: $TESTTMP/foo/.hg/strip-backup/*-histedit.hg: $ENOENT$ (glob) (windows !)\n   abort: $ENOENT$: \'$TESTTMP/foo/.hg/strip-backup/*-histedit.hg\' (glob) (no-windows !)\n+  saved backup bundle to $TESTTMP/foo/.hg/strip-backup/f5ede5e4b2e5-f0ccb58d-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\foo\\.hg\\strip-backup/f5ede5e4b2e5-f0ccb58d-backup.hg\'\n+  warning: encountered an exception during histedit --abort; the repository may not have been completely cleaned up\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n Histedit state has been exited\n   $ hg summary -q\n-  parent: 5:63379946892c \n-  commit: 1 added, 1 unknown (new branch head)\n-  update: 4 new changesets (update)\n+  parent: 4:08d98a8350f3 \n+  update: 1 new changesets, 2 branch heads (merge)\n \n   $ cd ..\n \n', 2751, 2753, 'truncated \\uXXXX escape') decoding diff, sorry

test-histedit-base.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-histedit-base.t\n+++ c:/hgdev/src/tests/test-histedit-base.t.err\n@@ -56,21 +56,95 @@\n   > pick 5fddd98957c8 C\n   > pick 32af7686d403 D\n   > EOF\n-\n-  $ hg tglog\n-  @  7:0937e82309df47d14176ee15e45dbec5fbdef340:draft \'D\'\n-  |\n-  o  6:f778d1cbddac4ab679d9983c9bb92e4c5e09e7fa:draft \'C\'\n-  |\n-  o  5:3d41b7cc708545206213a842f96d812d2e73d818:draft \'B\'\n-  |\n-  o  4:02de42196ebee42ef284b6780a87cdc96e8eaab6:draft \'H\'\n-  |\n-  | o  3:eea13746799a9e0bfd88f29d3c2e9dc9389f524f:draft \'G\'\n-  |/|\n-  o |  2:24b6387c8c8cae37178880f3fa95ded3cb1cf785:draft \'F\'\n-  | |\n-  | o  1:9520eea781bcca16c1e15acc0ba14335a0e8e5ba:draft \'E\'\n+  strip failed, backup bundle stored in \'$TESTTMP\\a\\.hg\\strip-backup/42ccdea3bb16-3cb021d3-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a\\.hg\\strip-backup/42ccdea3bb16-2072c419-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a\\.hg\\strip-backup/42ccdea3bb16-2072c419-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+\n+  $ hg tglog\n+  @  10:0937e82309df47d14176ee15e45dbec5fbdef340:draft \'D\'\n+  |\n+  o  9:f778d1cbddac4ab679d9983c9bb92e4c5e09e7fa:draft \'C\'\n+  |\n+  o  8:3d41b7cc708545206213a842f96d812d2e73d818:draft \'B\'\n+  |\n+  o  7:02de42196ebee42ef284b6780a87cdc96e8eaab6:draft \'H\'\n+  |\n+  | o  6:eea13746799a9e0bfd88f29d3c2e9dc9389f524f:draft \'G\'\n+  |/|\n+  o |  5:24b6387c8c8cae37178880f3fa95ded3cb1cf785:draft \'F\'\n+  | |\n+  | o  4:9520eea781bcca16c1e15acc0ba14335a0e8e5ba:draft \'E\'\n+  |/\n+  | o  3:32af7686d403cf45b5d95f2d70cebea587ac806a:draft \'D\'\n+  | |\n+  | o  2:5fddd98957c8a54a4d436dfe1da9d87f21a1b97b:draft \'C\'\n+  | |\n+  | o  1:42ccdea3bb16d28e1848c95fe2e44c000f3f21b1:draft \'B\'\n   |/\n   o  0:cd010b8cd998f3981a5a8115f94f8da4ab506089:draft \'A\'\n   \n@@ -81,19 +155,28 @@\n   > drop f778d1cbddac C\n   > pick 0937e82309df D\n   > EOF\n-\n-  $ hg tglog\n-  @  6:476cc3e4168da2d036b141f7f7dcff7f8e3fe846:draft \'D\'\n-  |\n-  o  5:d273e35dcdf21a7eb305192ef2e362887cd0a6f8:draft \'B\'\n-  |\n-  | o  4:02de42196ebee42ef284b6780a87cdc96e8eaab6:draft \'H\'\n-  | |\n-  | | o  3:eea13746799a9e0bfd88f29d3c2e9dc9389f524f:draft \'G\'\n-  | |/|\n-  | o |  2:24b6387c8c8cae37178880f3fa95ded3cb1cf785:draft \'F\'\n-  |/ /\n-  | o  1:9520eea781bcca16c1e15acc0ba14335a0e8e5ba:draft \'E\'\n+  abort: history edit already in progress, try --continue or --abort\n+\n+  $ hg tglog\n+  @  10:0937e82309df47d14176ee15e45dbec5fbdef340:draft \'D\'\n+  |\n+  o  9:f778d1cbddac4ab679d9983c9bb92e4c5e09e7fa:draft \'C\'\n+  |\n+  o  8:3d41b7cc708545206213a842f96d812d2e73d818:draft \'B\'\n+  |\n+  o  7:02de42196ebee42ef284b6780a87cdc96e8eaab6:draft \'H\'\n+  |\n+  | o  6:eea13746799a9e0bfd88f29d3c2e9dc9389f524f:draft \'G\'\n+  |/|\n+  o |  5:24b6387c8c8cae37178880f3fa95ded3cb1cf785:draft \'F\'\n+  | |\n+  | o  4:9520eea781bcca16c1e15acc0ba14335a0e8e5ba:draft \'E\'\n+  |/\n+  | o  3:32af7686d403cf45b5d95f2d70cebea587ac806a:draft \'D\'\n+  | |\n+  | o  2:5fddd98957c8a54a4d436dfe1da9d87f21a1b97b:draft \'C\'\n+  | |\n+  | o  1:42ccdea3bb16d28e1848c95fe2e44c000f3f21b1:draft \'B\'\n   |/\n   o  0:cd010b8cd998f3981a5a8115f94f8da4ab506089:draft \'A\'\n   \n@@ -104,40 +187,59 @@\n   > base cd010b8cd998\n   > pick 476cc3e4168d D\n   > EOF\n-\n-  $ hg tglog\n-  @  6:d7a6f907a822c4ce6f15662ae45a42aa46d3818a:draft \'D\'\n-  |\n-  | o  5:d273e35dcdf21a7eb305192ef2e362887cd0a6f8:draft \'B\'\n-  |/\n-  | o  4:02de42196ebee42ef284b6780a87cdc96e8eaab6:draft \'H\'\n-  | |\n-  | | o  3:eea13746799a9e0bfd88f29d3c2e9dc9389f524f:draft \'G\'\n-  | |/|\n-  | o |  2:24b6387c8c8cae37178880f3fa95ded3cb1cf785:draft \'F\'\n-  |/ /\n-  | o  1:9520eea781bcca16c1e15acc0ba14335a0e8e5ba:draft \'E\'\n+  abort: history edit already in progress, try --continue or --abort\n+\n+  $ hg tglog\n+  @  10:0937e82309df47d14176ee15e45dbec5fbdef340:draft \'D\'\n+  |\n+  o  9:f778d1cbddac4ab679d9983c9bb92e4c5e09e7fa:draft \'C\'\n+  |\n+  o  8:3d41b7cc708545206213a842f96d812d2e73d818:draft \'B\'\n+  |\n+  o  7:02de42196ebee42ef284b6780a87cdc96e8eaab6:draft \'H\'\n+  |\n+  | o  6:eea13746799a9e0bfd88f29d3c2e9dc9389f524f:draft \'G\'\n+  |/|\n+  o |  5:24b6387c8c8cae37178880f3fa95ded3cb1cf785:draft \'F\'\n+  | |\n+  | o  4:9520eea781bcca16c1e15acc0ba14335a0e8e5ba:draft \'E\'\n+  |/\n+  | o  3:32af7686d403cf45b5d95f2d70cebea587ac806a:draft \'D\'\n+  | |\n+  | o  2:5fddd98957c8a54a4d436dfe1da9d87f21a1b97b:draft \'C\'\n+  | |\n+  | o  1:42ccdea3bb16d28e1848c95fe2e44c000f3f21b1:draft \'B\'\n   |/\n   o  0:cd010b8cd998f3981a5a8115f94f8da4ab506089:draft \'A\'\n   \n Abort\n   $ echo x > B\n   $ hg add B\n+  B already tracked!\n   $ hg commit -m "X"\n-  $ hg tglog\n-  @  7:591369deedfdcbf57471e894999a70d7f676186d:draft \'X\'\n-  |\n-  o  6:d7a6f907a822c4ce6f15662ae45a42aa46d3818a:draft \'D\'\n-  |\n-  | o  5:d273e35dcdf21a7eb305192ef2e362887cd0a6f8:draft \'B\'\n-  |/\n-  | o  4:02de42196ebee42ef284b6780a87cdc96e8eaab6:draft \'H\'\n-  | |\n-  | | o  3:eea13746799a9e0bfd88f29d3c2e9dc9389f524f:draft \'G\'\n-  | |/|\n-  | o |  2:24b6387c8c8cae37178880f3fa95ded3cb1cf785:draft \'F\'\n-  |/ /\n-  | o  1:9520eea781bcca16c1e15acc0ba14335a0e8e5ba:draft \'E\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg tglog\n+  @  10:0937e82309df47d14176ee15e45dbec5fbdef340:draft \'D\'\n+  |\n+  o  9:f778d1cbddac4ab679d9983c9bb92e4c5e09e7fa:draft \'C\'\n+  |\n+  o  8:3d41b7cc708545206213a842f96d812d2e73d818:draft \'B\'\n+  |\n+  o  7:02de42196ebee42ef284b6780a87cdc96e8eaab6:draft \'H\'\n+  |\n+  | o  6:eea13746799a9e0bfd88f29d3c2e9dc9389f524f:draft \'G\'\n+  |/|\n+  o |  5:24b6387c8c8cae37178880f3fa95ded3cb1cf785:draft \'F\'\n+  | |\n+  | o  4:9520eea781bcca16c1e15acc0ba14335a0e8e5ba:draft \'E\'\n+  |/\n+  | o  3:32af7686d403cf45b5d95f2d70cebea587ac806a:draft \'D\'\n+  | |\n+  | o  2:5fddd98957c8a54a4d436dfe1da9d87f21a1b97b:draft \'C\'\n+  | |\n+  | o  1:42ccdea3bb16d28e1848c95fe2e44c000f3f21b1:draft \'B\'\n   |/\n   o  0:cd010b8cd998f3981a5a8115f94f8da4ab506089:draft \'A\'\n   \n@@ -146,26 +248,33 @@\n   > drop d7a6f907a822 D\n   > pick 591369deedfd X\n   > EOF\n-  merging B\n-  warning: conflicts while merging B! (edit, then use \'hg resolve --mark\')\n-  Fix up the change (pick 591369deedfd)\n-  (hg histedit --continue to resume)\n+  abort: history edit already in progress, try --continue or --abort\n   $ hg histedit --abort | fixbundle\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ hg tglog\n-  @  7:591369deedfdcbf57471e894999a70d7f676186d:draft \'X\'\n-  |\n-  o  6:d7a6f907a822c4ce6f15662ae45a42aa46d3818a:draft \'D\'\n-  |\n-  | o  5:d273e35dcdf21a7eb305192ef2e362887cd0a6f8:draft \'B\'\n-  |/\n-  | o  4:02de42196ebee42ef284b6780a87cdc96e8eaab6:draft \'H\'\n-  | |\n-  | | o  3:eea13746799a9e0bfd88f29d3c2e9dc9389f524f:draft \'G\'\n-  | |/|\n-  | o |  2:24b6387c8c8cae37178880f3fa95ded3cb1cf785:draft \'F\'\n-  |/ /\n-  | o  1:9520eea781bcca16c1e15acc0ba14335a0e8e5ba:draft \'E\'\n+  strip failed, backup bundle stored in \'$TESTTMP\\a\\.hg\\strip-backup/3d41b7cc7085-52952dc1-backup.hg\'\n+  warning: encountered an exception during histedit --abort; the repository may not have been completely cleaned up\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  1 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  $ hg tglog\n+  o  10:0937e82309df47d14176ee15e45dbec5fbdef340:draft \'D\'\n+  |\n+  o  9:f778d1cbddac4ab679d9983c9bb92e4c5e09e7fa:draft \'C\'\n+  |\n+  o  8:3d41b7cc708545206213a842f96d812d2e73d818:draft \'B\'\n+  |\n+  o  7:02de42196ebee42ef284b6780a87cdc96e8eaab6:draft \'H\'\n+  |\n+  | o  6:eea13746799a9e0bfd88f29d3c2e9dc9389f524f:draft \'G\'\n+  |/|\n+  o |  5:24b6387c8c8cae37178880f3fa95ded3cb1cf785:draft \'F\'\n+  | |\n+  | o  4:9520eea781bcca16c1e15acc0ba14335a0e8e5ba:draft \'E\'\n+  |/\n+  | @  3:32af7686d403cf45b5d95f2d70cebea587ac806a:draft \'D\'\n+  | |\n+  | o  2:5fddd98957c8a54a4d436dfe1da9d87f21a1b97b:draft \'C\'\n+  | |\n+  | o  1:42ccdea3bb16d28e1848c95fe2e44c000f3f21b1:draft \'B\'\n   |/\n   o  0:cd010b8cd998f3981a5a8115f94f8da4ab506089:draft \'A\'\n   \n@@ -175,27 +284,33 @@\n   > drop d7a6f907a822 D\n   > pick 591369deedfd X\n   > EOF\n-  merging B\n-  warning: conflicts while merging B! (edit, then use \'hg resolve --mark\')\n-  Fix up the change (pick 591369deedfd)\n-  (hg histedit --continue to resume)\n+  abort: eea13746799a is not an ancestor of working directory\n   $ echo b2 > B\n   $ hg resolve --mark B\n-  (no more unresolved files)\n-  continue: hg histedit --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg histedit --continue | fixbundle\n-  $ hg tglog\n-  @  6:03772da75548bb42a8f1eacd8c91d0717a147fcd:draft \'X\'\n-  |\n-  o  5:d273e35dcdf21a7eb305192ef2e362887cd0a6f8:draft \'B\'\n-  |\n-  | o  4:02de42196ebee42ef284b6780a87cdc96e8eaab6:draft \'H\'\n-  | |\n-  | | o  3:eea13746799a9e0bfd88f29d3c2e9dc9389f524f:draft \'G\'\n-  | |/|\n-  | o |  2:24b6387c8c8cae37178880f3fa95ded3cb1cf785:draft \'F\'\n-  |/ /\n-  | o  1:9520eea781bcca16c1e15acc0ba14335a0e8e5ba:draft \'E\'\n+  abort: no histedit in progress\n+  $ hg tglog\n+  o  10:0937e82309df47d14176ee15e45dbec5fbdef340:draft \'D\'\n+  |\n+  o  9:f778d1cbddac4ab679d9983c9bb92e4c5e09e7fa:draft \'C\'\n+  |\n+  o  8:3d41b7cc708545206213a842f96d812d2e73d818:draft \'B\'\n+  |\n+  o  7:02de42196ebee42ef284b6780a87cdc96e8eaab6:draft \'H\'\n+  |\n+  | o  6:eea13746799a9e0bfd88f29d3c2e9dc9389f524f:draft \'G\'\n+  |/|\n+  o |  5:24b6387c8c8cae37178880f3fa95ded3cb1cf785:draft \'F\'\n+  | |\n+  | o  4:9520eea781bcca16c1e15acc0ba14335a0e8e5ba:draft \'E\'\n+  |/\n+  | @  3:32af7686d403cf45b5d95f2d70cebea587ac806a:draft \'D\'\n+  | |\n+  | o  2:5fddd98957c8a54a4d436dfe1da9d87f21a1b97b:draft \'C\'\n+  | |\n+  | o  1:42ccdea3bb16d28e1848c95fe2e44c000f3f21b1:draft \'B\'\n   |/\n   o  0:cd010b8cd998f3981a5a8115f94f8da4ab506089:draft \'A\'\n   \n@@ -204,25 +319,35 @@\n   $ echo i > i\n   $ hg add i\n   $ hg commit -m "I"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo j > j\n   $ hg add j\n   $ hg commit -m "J"\n-  $ hg tglog\n-  @  8:e8c55b19d366b335626e805484110d1d5f6f2ea3:draft \'J\'\n-  |\n-  o  7:b2f90fd8aa85db5569e3cfc30cd1d7739546368e:draft \'I\'\n-  |\n-  o  6:03772da75548bb42a8f1eacd8c91d0717a147fcd:draft \'X\'\n-  |\n-  o  5:d273e35dcdf21a7eb305192ef2e362887cd0a6f8:draft \'B\'\n-  |\n-  | o  4:02de42196ebee42ef284b6780a87cdc96e8eaab6:draft \'H\'\n-  | |\n-  | | o  3:eea13746799a9e0bfd88f29d3c2e9dc9389f524f:draft \'G\'\n-  | |/|\n-  | o |  2:24b6387c8c8cae37178880f3fa95ded3cb1cf785:draft \'F\'\n-  |/ /\n-  | o  1:9520eea781bcca16c1e15acc0ba14335a0e8e5ba:draft \'E\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg tglog\n+  o  10:0937e82309df47d14176ee15e45dbec5fbdef340:draft \'D\'\n+  |\n+  o  9:f778d1cbddac4ab679d9983c9bb92e4c5e09e7fa:draft \'C\'\n+  |\n+  o  8:3d41b7cc708545206213a842f96d812d2e73d818:draft \'B\'\n+  |\n+  o  7:02de42196ebee42ef284b6780a87cdc96e8eaab6:draft \'H\'\n+  |\n+  | o  6:eea13746799a9e0bfd88f29d3c2e9dc9389f524f:draft \'G\'\n+  |/|\n+  o |  5:24b6387c8c8cae37178880f3fa95ded3cb1cf785:draft \'F\'\n+  | |\n+  | o  4:9520eea781bcca16c1e15acc0ba14335a0e8e5ba:draft \'E\'\n+  |/\n+  | @  3:32af7686d403cf45b5d95f2d70cebea587ac806a:draft \'D\'\n+  | |\n+  | o  2:5fddd98957c8a54a4d436dfe1da9d87f21a1b97b:draft \'C\'\n+  | |\n+  | o  1:42ccdea3bb16d28e1848c95fe2e44c000f3f21b1:draft \'B\'\n   |/\n   o  0:cd010b8cd998f3981a5a8115f94f8da4ab506089:draft \'A\'\n   \n@@ -234,25 +359,28 @@\n   > base d273e35dcdf2 B\n   > pick b2f90fd8aa85 I\n   > EOF\n-  hg: parse error: base "d273e35dcdf2" changeset was an edited list candidate\n-  (base must only use unlisted changesets)\n-\n-  $ hg tglog\n-  @  8:e8c55b19d366b335626e805484110d1d5f6f2ea3:draft \'J\'\n-  |\n-  o  7:b2f90fd8aa85db5569e3cfc30cd1d7739546368e:draft \'I\'\n-  |\n-  o  6:03772da75548bb42a8f1eacd8c91d0717a147fcd:draft \'X\'\n-  |\n-  o  5:d273e35dcdf21a7eb305192ef2e362887cd0a6f8:draft \'B\'\n-  |\n-  | o  4:02de42196ebee42ef284b6780a87cdc96e8eaab6:draft \'H\'\n-  | |\n-  | | o  3:eea13746799a9e0bfd88f29d3c2e9dc9389f524f:draft \'G\'\n-  | |/|\n-  | o |  2:24b6387c8c8cae37178880f3fa95ded3cb1cf785:draft \'F\'\n-  |/ /\n-  | o  1:9520eea781bcca16c1e15acc0ba14335a0e8e5ba:draft \'E\'\n-  |/\n-  o  0:cd010b8cd998f3981a5a8115f94f8da4ab506089:draft \'A\'\n-  \n+  abort: uncommitted changes\n+\n+  $ hg tglog\n+  o  10:0937e82309df47d14176ee15e45dbec5fbdef340:draft \'D\'\n+  |\n+  o  9:f778d1cbddac4ab679d9983c9bb92e4c5e09e7fa:draft \'C\'\n+  |\n+  o  8:3d41b7cc708545206213a842f96d812d2e73d818:draft \'B\'\n+  |\n+  o  7:02de42196ebee42ef284b6780a87cdc96e8eaab6:draft \'H\'\n+  |\n+  | o  6:eea13746799a9e0bfd88f29d3c2e9dc9389f524f:draft \'G\'\n+  |/|\n+  o |  5:24b6387c8c8cae37178880f3fa95ded3cb1cf785:draft \'F\'\n+  | |\n+  | o  4:9520eea781bcca16c1e15acc0ba14335a0e8e5ba:draft \'E\'\n+  |/\n+  | @  3:32af7686d403cf45b5d95f2d70cebea587ac806a:draft \'D\'\n+  | |\n+  | o  2:5fddd98957c8a54a4d436dfe1da9d87f21a1b97b:draft \'C\'\n+  | |\n+  | o  1:42ccdea3bb16d28e1848c95fe2e44c000f3f21b1:draft \'B\'\n+  |/\n+  o  0:cd010b8cd998f3981a5a8115f94f8da4ab506089:draft \'A\'\n+  \n', 2886, 2888, 'truncated \\uXXXX escape') decoding diff, sorry

test-histedit-bookmark-motion.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-histedit-bookmark-motion.t\n+++ c:/hgdev/src/tests/test-histedit-bookmark-motion.t.err\n@@ -88,28 +88,133 @@\n   > fold e860deea161a 4 e\n   > pick 652413bf663e 5 f\n   > EOF\n+  strip failed, backup bundle stored in \'$TESTTMP\\r\\.hg\\strip-backup/96e494a2d553-45c027ab-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\r\\.hg\\strip-backup/96e494a2d553-38f577f4-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\r\\.hg\\strip-backup/96e494a2d553-38f577f4-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   saved backup bundle to $TESTTMP/r/.hg/strip-backup/96e494a2d553-45c027ab-histedit.hg\n   $ hg log --graph\n-  @  changeset:   3:cacdfd884a93\n+  @  changeset:   10:cacdfd884a93\n   |  bookmark:    five\n   |  tag:         tip\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     f\n   |\n-  o  changeset:   2:59d9f330561f\n+  o  changeset:   9:59d9f330561f\n   |  bookmark:    four\n   |  bookmark:    three\n+  |  parent:      6:b346ab9a313d\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     d\n   |\n-  o  changeset:   1:b346ab9a313d\n+  | o  changeset:   8:b558abc46d09\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     fold-temp-revision e860deea161a\n+  | |\n+  | o  changeset:   7:96e494a2d553\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     d\n+  |\n+  o  changeset:   6:b346ab9a313d\n   |  bookmark:    also-two\n   |  bookmark:    two\n+  |  parent:      0:cb9a9f314b8b\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     c\n+  |\n+  | o  changeset:   5:652413bf663e\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     f\n+  | |\n+  | o  changeset:   4:e860deea161a\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     e\n+  | |\n+  | o  changeset:   3:055a42cdd887\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     d\n+  | |\n+  | o  changeset:   2:177f92b77385\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     c\n+  | |\n+  | o  changeset:   1:d2ae7f538514\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     b\n   |\n   o  changeset:   0:cb9a9f314b8b\n      bookmark:    will-move-backwards\n@@ -118,57 +223,77 @@\n      summary:     a\n   \n   $ HGEDITOR=cat hg histedit 1\n-  pick b346ab9a313d 1 c\n-  pick 59d9f330561f 2 d\n-  pick cacdfd884a93 3 f\n-  \n-  # Edit history between b346ab9a313d and cacdfd884a93\n-  #\n-  # Commits are listed from least to most recent\n-  #\n-  # You can reorder changesets by reordering the lines\n-  #\n-  # Commands:\n-  #\n-  #  e, edit = use commit, but stop for amending\n-  #  m, mess = edit commit message without changing commit content\n-  #  p, pick = use commit\n-  #  b, base = checkout changeset and apply further changesets from there\n-  #  d, drop = remove commit from history\n-  #  f, fold = use commit, but combine it with the one above\n-  #  r, roll = like fold, but discard this commit\'s description and date\n-  #\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n   $ hg histedit 1 --commands - --verbose << EOF | grep histedit\n   > pick b346ab9a313d 1 c\n   > pick cacdfd884a93 3 f\n   > pick 59d9f330561f 2 d\n   > EOF\n-  saved backup bundle to $TESTTMP/r/.hg/strip-backup/59d9f330561f-073008af-histedit.hg\n+  abort: history edit already in progress, try --continue or --abort\n+  [1]\n \n We expect \'five\' to stay at tip, since the tipmost bookmark is most\n likely the useful signal.\n \n   $ hg log --graph\n-  @  changeset:   3:c04e50810e4b\n+  @  changeset:   10:cacdfd884a93\n   |  bookmark:    five\n+  |  tag:         tip\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     f\n+  |\n+  o  changeset:   9:59d9f330561f\n   |  bookmark:    four\n   |  bookmark:    three\n-  |  tag:         tip\n+  |  parent:      6:b346ab9a313d\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     d\n   |\n-  o  changeset:   2:c13eb81022ca\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     f\n-  |\n-  o  changeset:   1:b346ab9a313d\n+  | o  changeset:   8:b558abc46d09\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     fold-temp-revision e860deea161a\n+  | |\n+  | o  changeset:   7:96e494a2d553\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     d\n+  |\n+  o  changeset:   6:b346ab9a313d\n   |  bookmark:    also-two\n   |  bookmark:    two\n+  |  parent:      0:cb9a9f314b8b\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     c\n+  |\n+  | o  changeset:   5:652413bf663e\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     f\n+  | |\n+  | o  changeset:   4:e860deea161a\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     e\n+  | |\n+  | o  changeset:   3:055a42cdd887\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     d\n+  | |\n+  | o  changeset:   2:177f92b77385\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     c\n+  | |\n+  | o  changeset:   1:d2ae7f538514\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     b\n   |\n   o  changeset:   0:cb9a9f314b8b\n      bookmark:    will-move-backwards\n', 2444, 2446, 'truncated \\uXXXX escape') decoding diff, sorry

test-histedit-commute.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-histedit-commute.t\n+++ c:/hgdev/src/tests/test-histedit-commute.t.err\n@@ -161,24 +161,108 @@\n   > pick 055a42cdd887 d\n   > EOF\n   $ HGEDITOR="cat \\"$EDITED\\" > " hg histedit 177f92b77385 2>&1 | fixbundle\n+  strip failed, backup bundle stored in \'$TESTTMP\\r\\.hg\\strip-backup/055a42cdd887-f970f1c3-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\r\\.hg\\strip-backup/055a42cdd887-b5d2f5d5-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\r\\.hg\\strip-backup/055a42cdd887-b5d2f5d5-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n \n log after edit\n   $ hg log --graph\n-  @  changeset:   5:07114f51870f\n+  @  changeset:   8:07114f51870f\n   |  tag:         tip\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     d\n   |\n-  o  changeset:   4:8ade9693061e\n+  o  changeset:   7:8ade9693061e\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     f\n   |\n-  o  changeset:   3:d8249471110a\n+  o  changeset:   6:d8249471110a\n+  |  parent:      2:177f92b77385\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     e\n+  |\n+  | o  changeset:   5:652413bf663e\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     f\n+  | |\n+  | o  changeset:   4:e860deea161a\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     e\n+  | |\n+  | o  changeset:   3:055a42cdd887\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     d\n   |\n   o  changeset:   2:177f92b77385\n   |  user:        test\n@@ -205,23 +289,40 @@\n   > pick d8249471110a e\n   > pick 8ade9693061e f\n   > EOF\n+  abort: history edit already in progress, try --continue or --abort\n \n   $ hg log --graph\n-  @  changeset:   5:7eca9b5b1148\n+  @  changeset:   8:07114f51870f\n   |  tag:         tip\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     d\n+  |\n+  o  changeset:   7:8ade9693061e\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     f\n   |\n-  o  changeset:   4:915da888f2de\n+  o  changeset:   6:d8249471110a\n+  |  parent:      2:177f92b77385\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     e\n   |\n-  o  changeset:   3:10517e47bbbb\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     d\n+  | o  changeset:   5:652413bf663e\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     f\n+  | |\n+  | o  changeset:   4:e860deea161a\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     e\n+  | |\n+  | o  changeset:   3:055a42cdd887\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     d\n   |\n   o  changeset:   2:177f92b77385\n   |  user:        test\n@@ -248,27 +349,44 @@\n   > pick 915da888f2de e\n   > pick 177f92b77385 c\n   > EOF\n+  abort: history edit already in progress, try --continue or --abort\n   $ hg log --graph\n-  @  changeset:   5:38b92f448761\n+  @  changeset:   8:07114f51870f\n   |  tag:         tip\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     d\n+  |\n+  o  changeset:   7:8ade9693061e\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     f\n+  |\n+  o  changeset:   6:d8249471110a\n+  |  parent:      2:177f92b77385\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     e\n+  |\n+  | o  changeset:   5:652413bf663e\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     f\n+  | |\n+  | o  changeset:   4:e860deea161a\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     e\n+  | |\n+  | o  changeset:   3:055a42cdd887\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     d\n+  |\n+  o  changeset:   2:177f92b77385\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     c\n-  |\n-  o  changeset:   4:de71b079d9ce\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     e\n-  |\n-  o  changeset:   3:be9ae3a309c6\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     f\n-  |\n-  o  changeset:   2:799205341b6b\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     d\n   |\n   o  changeset:   1:d2ae7f538514\n   |  user:        test\n@@ -289,38 +407,44 @@\n   > pick 38b92f448761 c\n   > pick de71b079d9ce e\n   > EOF\n+  abort: history edit already in progress, try --continue or --abort\n   $ hg log --graph\n-  @  changeset:   7:803ef1c6fcfd\n+  @  changeset:   8:07114f51870f\n   |  tag:         tip\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     d\n+  |\n+  o  changeset:   7:8ade9693061e\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     f\n+  |\n+  o  changeset:   6:d8249471110a\n+  |  parent:      2:177f92b77385\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     e\n   |\n-  o  changeset:   6:ece0b8d93dda\n-  |  parent:      3:be9ae3a309c6\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     c\n-  |\n-  | o  changeset:   5:38b92f448761\n-  | |  user:        test\n-  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  | |  summary:     c\n-  | |\n-  | o  changeset:   4:de71b079d9ce\n+  | o  changeset:   5:652413bf663e\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     f\n+  | |\n+  | o  changeset:   4:e860deea161a\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     e\n+  | |\n+  | o  changeset:   3:055a42cdd887\n   |/   user:        test\n   |    date:        Thu Jan 01 00:00:00 1970 +0000\n-  |    summary:     e\n-  |\n-  o  changeset:   3:be9ae3a309c6\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     f\n-  |\n-  o  changeset:   2:799205341b6b\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     d\n+  |    summary:     d\n+  |\n+  o  changeset:   2:177f92b77385\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     c\n   |\n   o  changeset:   1:d2ae7f538514\n   |  user:        test\n@@ -339,40 +463,44 @@\n   > pick de71b079d9ce e\n   > pick 38b92f448761 c\n   > EOF\n-  hg: parse error: pick "de71b079d9ce" changeset was not a candidate\n-  (only use listed changesets)\n+  abort: history edit already in progress, try --continue or --abort\n   $ hg log --graph\n-  @  changeset:   7:803ef1c6fcfd\n+  @  changeset:   8:07114f51870f\n   |  tag:         tip\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     d\n+  |\n+  o  changeset:   7:8ade9693061e\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     f\n+  |\n+  o  changeset:   6:d8249471110a\n+  |  parent:      2:177f92b77385\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     e\n   |\n-  o  changeset:   6:ece0b8d93dda\n-  |  parent:      3:be9ae3a309c6\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     c\n-  |\n-  | o  changeset:   5:38b92f448761\n-  | |  user:        test\n-  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  | |  summary:     c\n-  | |\n-  | o  changeset:   4:de71b079d9ce\n+  | o  changeset:   5:652413bf663e\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     f\n+  | |\n+  | o  changeset:   4:e860deea161a\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     e\n+  | |\n+  | o  changeset:   3:055a42cdd887\n   |/   user:        test\n   |    date:        Thu Jan 01 00:00:00 1970 +0000\n-  |    summary:     e\n-  |\n-  o  changeset:   3:be9ae3a309c6\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     f\n-  |\n-  o  changeset:   2:799205341b6b\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     d\n+  |    summary:     d\n+  |\n+  o  changeset:   2:177f92b77385\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     c\n   |\n   o  changeset:   1:d2ae7f538514\n   |  user:        test\n@@ -392,27 +520,12 @@\n   > EOF\n   $ echo extra commit >> c\n   $ hg ci -m \'extra commit to c\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ HGEDITOR=cat hg histedit \'grandparent(.)\'\n-  pick ece0b8d93dda 6 c\n-  pick 803ef1c6fcfd 7 e\n-  pick 9c863c565126 8 extra commit to c\n-  \n-  # Edit history between ece0b8d93dda and 9c863c565126\n-  #\n-  # Commits are listed from least to most recent\n-  #\n-  # You can reorder changesets by reordering the lines\n-  #\n-  # Commands:\n-  #\n-  #  e, edit = use commit, but stop for amending\n-  #  m, mess = edit commit message without changing commit content\n-  #  p, pick = use commit\n-  #  b, base = checkout changeset and apply further changesets from there\n-  #  d, drop = remove commit from history\n-  #  f, fold = use commit, but combine it with the one above\n-  #  r, roll = like fold, but discard this commit\'s description and date\n-  #\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n \n \n should also work if a commit message is missing\n@@ -482,24 +595,91 @@\n \n   $ HGEDITOR="sh ./editor.sh" hg histedit 0\n   saved backup bundle to $TESTTMP/issue4251/.hg/strip-backup/b0f4233702ca-4cf5af69-histedit.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\issue4251\\.hg\\strip-backup/b0f4233702ca-4cf5af69-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\issue4251\\.hg\\strip-backup/b0f4233702ca-fc29313a-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\issue4251\\.hg\\strip-backup/b0f4233702ca-fc29313a-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg --config diff.git=yes export 0\n   # HG changeset patch\n   # User test\n   # Date 0 0\n   #      Thu Jan 01 00:00:00 1970 +0000\n-  # Node ID fffadc26f8f85623ce60b028a3f1ccc3730f8530\n+  # Node ID b0f4233702ca3d2dc495941dc98d7136d67a4cf6\n   # Parent  0000000000000000000000000000000000000000\n-  pick b0f4233702ca 0 initial commit\n-  fold 5e8704a8f2d2 1 moved and changed\n-  pick 40e7299e8fa7 2 renamed\n-  \n-  diff --git a/another-dir/initial-file b/another-dir/initial-file\n+  initial commit\n+  \n+  diff --git a/initial-dir/initial-file b/initial-dir/initial-file\n   new file mode 100644\n   --- /dev/null\n-  +++ b/another-dir/initial-file\n+  +++ b/initial-dir/initial-file\n   @@ -0,0 +1,1 @@\n-  +changed\n+  +foo\n \n \n   $ hg --config diff.git=yes export 1\n@@ -507,13 +687,18 @@\n   # User test\n   # Date 0 0\n   #      Thu Jan 01 00:00:00 1970 +0000\n-  # Node ID 9b730d82b00af8a2766facebfa47cc124405a118\n-  # Parent  fffadc26f8f85623ce60b028a3f1ccc3730f8530\n-  renamed\n-  \n-  diff --git a/another-dir/initial-file b/another-dir/renamed-file\n-  rename from another-dir/initial-file\n-  rename to another-dir/renamed-file\n+  # Node ID 5e8704a8f2d2e850b45d790e34c225e3893424a1\n+  # Parent  b0f4233702ca3d2dc495941dc98d7136d67a4cf6\n+  moved and changed\n+  \n+  diff --git a/initial-dir/initial-file b/another-dir/initial-file\n+  rename from initial-dir/initial-file\n+  rename to another-dir/initial-file\n+  --- a/initial-dir/initial-file\n+  +++ b/another-dir/initial-file\n+  @@ -1,1 +1,1 @@\n+  -foo\n+  +changed\n \n \n   $ cd ..\n@@ -542,7 +727,78 @@\n   $ echo "pick 7336e7550422 1 foo-B" >> cmd\n \n   $ HGEDITOR=cat hg histedit -r ".^" --commands cmd --quiet\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo-with-branch\\.hg\\strip-backup/7336e7550422-468f28e7-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo-with-branch\\.hg\\strip-backup/7336e7550422-aaa227ed-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo-with-branch\\.hg\\strip-backup/7336e7550422-aaa227ed-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log --template \'{rev} {branch}\\n\'\n+  4 foo\n+  3 foo\n   2 foo\n   1 foo\n   0 default\n', 2478, 2480, 'truncated \\uXXXX escape') decoding diff, sorry

test-histedit-drop.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-histedit-drop.t\n+++ c:/hgdev/src/tests/test-histedit-drop.t.err\n@@ -59,24 +59,113 @@\n   > pick 652413bf663e f\n   > pick 055a42cdd887 d\n   > EOF\n+  strip failed, backup bundle stored in \'$TESTTMP\\r\\.hg\\strip-backup/177f92b77385-bf885b2c-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\r\\.hg\\strip-backup/177f92b77385-b06df4f6-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\r\\.hg\\strip-backup/177f92b77385-b06df4f6-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n \n log after edit\n   $ hg log --graph\n-  @  changeset:   4:f518305ce889\n+  @  changeset:   8:f518305ce889\n   |  tag:         tip\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     d\n   |\n-  o  changeset:   3:a4f7421b80f7\n+  o  changeset:   7:a4f7421b80f7\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     f\n   |\n-  o  changeset:   2:ee283cb5f2d5\n+  o  changeset:   6:ee283cb5f2d5\n+  |  parent:      1:d2ae7f538514\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     e\n+  |\n+  | o  changeset:   5:652413bf663e\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     f\n+  | |\n+  | o  changeset:   4:e860deea161a\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     e\n+  | |\n+  | o  changeset:   3:055a42cdd887\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     d\n+  | |\n+  | o  changeset:   2:177f92b77385\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     c\n   |\n   o  changeset:   1:d2ae7f538514\n   |  user:        test\n@@ -92,12 +181,12 @@\n Check histedit_source\n \n   $ hg log --debug --rev f518305ce889\n-  changeset:   4:f518305ce889c07cb5bd05522176d75590ef3324\n+  changeset:   8:f518305ce889c07cb5bd05522176d75590ef3324\n   tag:         tip\n   phase:       draft\n-  parent:      3:a4f7421b80f79fcc59fff01bcbf4a53d127dd6d3\n+  parent:      7:a4f7421b80f79fcc59fff01bcbf4a53d127dd6d3\n   parent:      -1:0000000000000000000000000000000000000000\n-  manifest:    4:d3d4f51c157ff242c32ff745d4799aaa26ccda44\n+  manifest:    8:d3d4f51c157ff242c32ff745d4799aaa26ccda44\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n   files+:      d\n@@ -123,17 +212,44 @@\n   > pick a4f7421b80f7 f\n   > drop f518305ce889 d\n   > EOF\n+  abort: history edit already in progress, try --continue or --abort\n   $ hg log --graph\n-  @  changeset:   3:a4f7421b80f7\n+  @  changeset:   8:f518305ce889\n   |  tag:         tip\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     d\n+  |\n+  o  changeset:   7:a4f7421b80f7\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     f\n   |\n-  o  changeset:   2:ee283cb5f2d5\n+  o  changeset:   6:ee283cb5f2d5\n+  |  parent:      1:d2ae7f538514\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     e\n+  |\n+  | o  changeset:   5:652413bf663e\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     f\n+  | |\n+  | o  changeset:   4:e860deea161a\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     e\n+  | |\n+  | o  changeset:   3:055a42cdd887\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     d\n+  | |\n+  | o  changeset:   2:177f92b77385\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     c\n   |\n   o  changeset:   1:d2ae7f538514\n   |  user:        test\n@@ -150,22 +266,57 @@\n   > pick cb9a9f314b8b a\n   > pick ee283cb5f2d5 e\n   > EOF\n-  hg: parse error: missing rules for changeset a4f7421b80f7\n-  (use "drop a4f7421b80f7" to discard, see also: \'hg help -e histedit.config\')\n+  abort: history edit already in progress, try --continue or --abort\n   $ hg --config histedit.dropmissing=True histedit  cb9a9f314b8b --commands - 2>&1 << EOF | fixbundle\n   > EOF\n-  hg: parse error: no rules provided\n-  (use strip extension to remove commits)\n+  abort: history edit already in progress, try --continue or --abort\n   $ hg --config histedit.dropmissing=True histedit  cb9a9f314b8b --commands - 2>&1 << EOF | fixbundle\n   > pick cb9a9f314b8b a\n   > pick ee283cb5f2d5 e\n   > EOF\n+  abort: history edit already in progress, try --continue or --abort\n   $ hg log --graph\n-  @  changeset:   1:e99c679bf03e\n+  @  changeset:   8:f518305ce889\n   |  tag:         tip\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     d\n+  |\n+  o  changeset:   7:a4f7421b80f7\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     f\n+  |\n+  o  changeset:   6:ee283cb5f2d5\n+  |  parent:      1:d2ae7f538514\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     e\n+  |\n+  | o  changeset:   5:652413bf663e\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     f\n+  | |\n+  | o  changeset:   4:e860deea161a\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     e\n+  | |\n+  | o  changeset:   3:055a42cdd887\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     d\n+  | |\n+  | o  changeset:   2:177f92b77385\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     c\n+  |\n+  o  changeset:   1:d2ae7f538514\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     b\n   |\n   o  changeset:   0:cb9a9f314b8b\n      user:        test\n', 2418, 2420, 'truncated \\uXXXX escape') decoding diff, sorry

test-histedit-edit.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-histedit-edit.t\n+++ c:/hgdev/src/tests/test-histedit-edit.t.err\n@@ -155,23 +155,109 @@\n   (use \'hg histedit --continue\' or \'hg histedit --abort\')\n   [20]\n   $ HGEDITOR=\'echo foobaz > \' hg histedit --continue 2>&1 | fixbundle\n+  strip failed, backup bundle stored in \'$TESTTMP\\r\\.hg\\strip-backup/e860deea161a-3e6e5461-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\r\\.hg\\strip-backup/e860deea161a-c1b3f653-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\r\\.hg\\strip-backup/e860deea161a-c1b3f653-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "mockmakedate" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "mockmakedate" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit, mockmakedate, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n \n   $ hg log --graph\n-  @  changeset:   6:b5f70786f9b0\n+  @  changeset:   9:b5f70786f9b0\n   |  tag:         tip\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     f\n   |\n-  o  changeset:   5:a5e1ba2f7afb\n+  o  changeset:   8:a5e1ba2f7afb\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     foobaz\n   |\n-  o  changeset:   4:1a60820cd1f6\n+  o  changeset:   7:1a60820cd1f6\n+  |  parent:      3:055a42cdd887\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     wat\n+  |\n+  | o  changeset:   6:3c6a8ed2ebe8\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     g\n+  | |\n+  | o  changeset:   5:652413bf663e\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     f\n+  | |\n+  | o  changeset:   4:e860deea161a\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     e\n   |\n   o  changeset:   3:055a42cdd887\n   |  user:        test\n@@ -204,98 +290,89 @@\n   > pick a5e1ba2f7afb foobaz\n   > pick b5f70786f9b0 g\n   > EOF\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n-  Editing (1a60820cd1f6), you may commit or record as needed now.\n-  (hg histedit --continue to resume)\n+  abort: history edit already in progress, try --continue or --abort\n \n   $ mv .hg/histedit-state .hg/histedit-state.bak\n   $ hg strip -q -r b5f70786f9b0\n+  strip failed, backup bundle stored in \'$TESTTMP\\r\\.hg\\strip-backup/b5f70786f9b0-c28d9c86-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ mv .hg/histedit-state.bak .hg/histedit-state\n   $ hg histedit --abort\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 3 files\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  saved backup bundle to $TESTTMP/r/.hg/strip-backup/a5e1ba2f7afb-8c1c9092-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\r\\.hg\\strip-backup/a5e1ba2f7afb-8c1c9092-backup.hg\'\n+  warning: encountered an exception during histedit --abort; the repository may not have been completely cleaned up\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -r .\n-  changeset:   6:b5f70786f9b0\n+  changeset:   6:3c6a8ed2ebe8\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     g\n+  \n+\n+check histedit_source\n+\n+  $ hg log --debug --rev 5\n+  changeset:   5:652413bf663ef2a641cab26574e46d5f5a64a55a\n+  phase:       draft\n+  parent:      4:e860deea161a2f77de56603b340ebbb4536308ae\n+  parent:      -1:0000000000000000000000000000000000000000\n+  manifest:    5:1853a742c28c3a531336bbb3d677d2e2d8937027\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  files+:      f\n+  extra:       branch=default\n+  description:\n+  f\n+  \n+  \n+\n+  $ hg histedit tip --commands - 2>&1 <<EOF| fixbundle\n+  > edit b5f70786f9b0 f\n+  > EOF\n+  abort: b5f70786f9b0 is not an ancestor of working directory\n+  $ hg status\n+\n+  $ hg summary\n+  parent: 6:3c6a8ed2ebe8 \n+   g\n+  branch: default\n+  commit: (clean)\n+  update: 3 new changesets, 2 branch heads (merge)\n+  phases: 10 draft\n+\n+(test also that editor is invoked if histedit is continued for\n+"edit" action)\n+\n+  $ HGEDITOR=\'cat\' hg histedit --continue\n+  abort: no histedit in progress\n+  [20]\n+\n+  $ hg status\n+\n+log after edit\n+  $ hg log --limit 1\n+  changeset:   9:b5f70786f9b0\n   tag:         tip\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n   summary:     f\n   \n \n-check histedit_source\n-\n-  $ hg log --debug --rev 5\n-  changeset:   5:a5e1ba2f7afb899ef1581cea528fd885d2fca70d\n-  phase:       draft\n-  parent:      4:1a60820cd1f6004a362aa622ebc47d59bc48eb34\n-  parent:      -1:0000000000000000000000000000000000000000\n-  manifest:    5:5ad3be8791f39117565557781f5464363b918a45\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files:       e\n-  extra:       branch=default\n-  extra:       histedit_source=e860deea161a2f77de56603b340ebbb4536308ae\n-  description:\n-  foobaz\n-  \n-  \n-\n-  $ hg histedit tip --commands - 2>&1 <<EOF| fixbundle\n-  > edit b5f70786f9b0 f\n-  > EOF\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  Editing (b5f70786f9b0), you may commit or record as needed now.\n-  (hg histedit --continue to resume)\n-  $ hg status\n-  A f\n-\n-  $ hg summary\n-  parent: 5:a5e1ba2f7afb \n-   foobaz\n-  branch: default\n-  commit: 1 added (new branch head)\n-  update: 1 new changesets (update)\n-  phases: 7 draft\n-  hist:   1 remaining (histedit --continue)\n-\n-(test also that editor is invoked if histedit is continued for\n-"edit" action)\n-\n-  $ HGEDITOR=\'cat\' hg histedit --continue\n-  f\n-  \n-  \n-  HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  HG: Leave message empty to abort commit.\n-  HG: --\n-  HG: user: test\n-  HG: branch \'default\'\n-  HG: added f\n-  saved backup bundle to $TESTTMP/r/.hg/strip-backup/b5f70786f9b0-c28d9c86-histedit.hg\n-\n-  $ hg status\n-\n-log after edit\n-  $ hg log --limit 1\n-  changeset:   6:a107ee126658\n-  tag:         tip\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     f\n-  \n-\n say we\'ll change the message, but don\'t.\n   $ cat > ../edit.sh <<EOF\n   > cat "\\$1" | sed s/pick/mess/ > tmp\n   > mv tmp "\\$1"\n   > EOF\n   $ HGEDITOR="sh ../edit.sh" hg histedit tip 2>&1 | fixbundle\n+  abort: b5f70786f9b0 is not an ancestor of working directory\n   $ hg status\n   $ hg log --limit 1\n-  changeset:   6:1fd3b2fe7754\n+  changeset:   9:b5f70786f9b0\n   tag:         tip\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n@@ -333,7 +410,7 @@\n   $ HGEDITOR="sh $TESTTMP/editor.sh" hg histedit tip --commands - 2>&1 << EOF | fixbundle\n   > mess 1fd3b2fe7754 f\n   > EOF\n-  abort: emulating unexpected abort\n+  abort: b5f70786f9b0 is not an ancestor of working directory\n   $ test -f .hg/last-message.txt\n   [1]\n \n@@ -342,6 +419,8 @@\n   > commitfailure = !\n   > EOF\n   $ hg histedit --abort -q\n+  abort: no histedit in progress\n+  [20]\n \n (test that editor is invoked and commit message is saved into\n "last-message.txt")\n@@ -353,69 +432,43 @@\n   > EOF\n \n   $ hg status --rev \'1fd3b2fe7754^1\' --rev 1fd3b2fe7754\n-  A f\n+  abort: unknown revision \'1fd3b2fe7754\'\n+  [255]\n \n   $ rm -f .hg/last-message.txt\n   $ HGEDITOR="sh $TESTTMP/editor.sh" hg histedit tip --commands - 2>&1 << EOF\n   > mess 1fd3b2fe7754 f\n   > EOF\n-  ==== before editing\n-  f\n-  \n-  \n-  HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  HG: Leave message empty to abort commit.\n-  HG: --\n-  HG: user: test\n-  HG: branch \'default\'\n-  HG: added f\n-  ====\n-  transaction abort!\n-  rollback completed\n-  note: commit message saved in .hg/last-message.txt\n-  note: use \'hg commit --logfile .hg/last-message.txt --edit\' to reuse it\n-  abort: pretxncommit.unexpectedabort hook exited with status 1\n+  abort: b5f70786f9b0 is not an ancestor of working directory\n   [255]\n   $ cat .hg/last-message.txt\n-  f\n-  \n-  \n-  check saving last-message.txt\n+  cat: .hg/last-message.txt: $ENOENT$\n+  [1]\n \n (test also that editor is invoked if histedit is continued for "message"\n action)\n \n   $ HGEDITOR=cat hg histedit --continue\n-  f\n-  \n-  \n-  HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  HG: Leave message empty to abort commit.\n-  HG: --\n-  HG: user: test\n-  HG: branch \'default\'\n-  HG: added f\n-  transaction abort!\n-  rollback completed\n-  note: commit message saved in .hg/last-message.txt\n-  note: use \'hg commit --logfile .hg/last-message.txt --edit\' to reuse it\n-  abort: pretxncommit.unexpectedabort hook exited with status 1\n-  [255]\n+  abort: no histedit in progress\n+  [20]\n \n   $ cat >> .hg/hgrc <<EOF\n   > [hooks]\n   > pretxncommit.unexpectedabort =\n   > EOF\n   $ hg histedit --abort -q\n+  abort: no histedit in progress\n+  [20]\n \n then, check "modify the message" itself\n \n   $ hg histedit tip --commands - 2>&1 << EOF | fixbundle\n   > mess 1fd3b2fe7754 f\n   > EOF\n+  abort: b5f70786f9b0 is not an ancestor of working directory\n   $ hg status\n   $ hg log --limit 1\n-  changeset:   6:62feedb1200e\n+  changeset:   9:b5f70786f9b0\n   tag:         tip\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n@@ -424,8 +477,7 @@\n \n rollback should not work after a histedit\n   $ hg rollback\n-  no rollback information available\n-  [1]\n+  repository tip rolled back to revision 9 (undo cleanup)\n \n   $ cd ..\n   $ hg clone -qr0 r r0\n@@ -440,10 +492,87 @@\n   [240]\n   $ HGEDITOR=true hg histedit --continue\n   saved backup bundle to $TESTTMP/r0/.hg/strip-backup/cb9a9f314b8b-cc5ccb0b-histedit.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\r0\\.hg\\strip-backup/cb9a9f314b8b-cc5ccb0b-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\r0\\.hg\\strip-backup/cb9a9f314b8b-681bbba8-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\r0\\.hg\\strip-backup/cb9a9f314b8b-681bbba8-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "mockmakedate" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "mockmakedate" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit, mockmakedate, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg log -G\n-  @  changeset:   0:0efcea34f18a\n+  @  changeset:   1:0efcea34f18a\n      tag:         tip\n+     parent:      -1:000000000000\n+     user:        test\n+     date:        Thu Jan 01 00:00:00 1970 +0000\n+     summary:     a\n+  \n+  o  changeset:   0:cb9a9f314b8b\n      user:        test\n      date:        Thu Jan 01 00:00:00 1970 +0000\n      summary:     a\n@@ -452,37 +581,29 @@\n   $ hg addr\n   adding b\n   $ hg ci -m \'add b\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo foo >> a\n   $ hg ci -m \'extend a\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase --public 1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n Attempting to fold a change into a public change should not work:\n   $ cat > ../edit.sh <<EOF\n   > cat "\\$1" | sed s/pick/fold/ > tmp\n   > mv tmp "\\$1"\n   > EOF\n   $ HGEDITOR="sh ../edit.sh" hg histedit 2\n-  warning: histedit rules saved to: .hg/histedit-last-edit.txt\n-  hg: parse error: first changeset cannot use verb "fold"\n-  [10]\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n   $ cat .hg/histedit-last-edit.txt\n-  fold 0012be4a27ea 2 extend a\n-  \n-  # Edit history between 0012be4a27ea and 0012be4a27ea\n-  #\n-  # Commits are listed from least to most recent\n-  #\n-  # You can reorder changesets by reordering the lines\n-  #\n-  # Commands:\n-  #\n-  #  e, edit = use commit, but stop for amending\n-  #  m, mess = edit commit message without changing commit content\n-  #  p, fold = use commit\n-  #  b, base = checkout changeset and apply further changesets from there\n-  #  d, drop = remove commit from history\n-  #  f, fold = use commit, but combine it with the one above\n-  #  r, roll = like fold, but discard this commit\'s description and date\n-  #\n+  cat: .hg/histedit-last-edit.txt: $ENOENT$\n+  [1]\n \n   $ cd ..\n \n@@ -523,12 +644,83 @@\n   $ hg histedit tip --commands - 2>&1 --config rewrite.update-timestamp=True << EOF | fixbundle\n   > mess 178e35e0ce73 f\n   > EOF\n+  strip failed, backup bundle stored in \'$TESTTMP\\r2\\.hg\\strip-backup/178e35e0ce73-afdd642a-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\r2\\.hg\\strip-backup/178e35e0ce73-0c61b0b2-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\r2\\.hg\\strip-backup/178e35e0ce73-0c61b0b2-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "mockmakedate" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "mockmakedate" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit, mockmakedate, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n \n log after edit\n \n   $ hg log --limit 1\n-  changeset:   5:98bf456d476b\n+  changeset:   6:98bf456d476b\n   tag:         tip\n+  parent:      4:1ddb6c90f2ee\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n   summary:     f\n', 2702, 2704, 'truncated \\uXXXX escape') decoding diff, sorry

test-histedit-fold-non-commute.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-histedit-fold-non-commute.t\n+++ c:/hgdev/src/tests/test-histedit-fold-non-commute.t.err\n@@ -132,19 +132,114 @@\n   $ hg diff\n   $ hg histedit --continue 2>&1 | fixbundle\n   7f3755409b00: skipping changeset (no changes)\n+  strip failed, backup bundle stored in \'$TESTTMP\\r\\.hg\\strip-backup/ae78f4c9d74f-b7203cf2-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\r\\.hg\\strip-backup/ae78f4c9d74f-f8df86a8-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\r\\.hg\\strip-backup/ae78f4c9d74f-f8df86a8-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n \n log after edit\n   $ hg log --graph\n-  @  changeset:   5:1300355b1a54\n+  @  changeset:   10:1300355b1a54\n   |  tag:         tip\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:06 1970 +0000\n   |  summary:     f\n   |\n-  o  changeset:   4:e2ac33269083\n+  o  changeset:   9:e2ac33269083\n+  |  parent:      3:092e4ce14829\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:07 1970 +0000\n   |  summary:     d\n+  |\n+  | o  changeset:   8:da56183fa9b7\n+  | |  parent:      4:ae78f4c9d74f\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:07 1970 +0000\n+  | |  summary:     fold-temp-revision 42abbb61bede\n+  | |\n+  | | o  changeset:   7:42abbb61bede\n+  | | |  user:        test\n+  | | |  date:        Thu Jan 01 00:00:07 1970 +0000\n+  | | |  summary:     does not commute with e\n+  | | |\n+  | | o  changeset:   6:dd184f2faeb0\n+  | | |  user:        test\n+  | | |  date:        Thu Jan 01 00:00:06 1970 +0000\n+  | | |  summary:     f\n+  | | |\n+  | | o  changeset:   5:7f3755409b00\n+  | |/   user:        test\n+  | |    date:        Thu Jan 01 00:00:05 1970 +0000\n+  | |    summary:     e\n+  | |\n+  | o  changeset:   4:ae78f4c9d74f\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:04 1970 +0000\n+  |    summary:     d\n   |\n   o  changeset:   3:092e4ce14829\n   |  user:        test\n@@ -271,19 +366,114 @@\n   continue: hg histedit --continue\n   $ hg histedit --continue 2>&1 | fixbundle\n   7f3755409b00: skipping changeset (no changes)\n+  strip failed, backup bundle stored in \'$TESTTMP\\r2\\.hg\\strip-backup/ae78f4c9d74f-b7203cf2-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\r2\\.hg\\strip-backup/ae78f4c9d74f-9e4a6d16-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\r2\\.hg\\strip-backup/ae78f4c9d74f-9e4a6d16-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n \n log after edit\n   $ hg log --graph\n-  @  changeset:   5:b538bcb461be\n+  @  changeset:   10:b538bcb461be\n   |  tag:         tip\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:06 1970 +0000\n   |  summary:     f\n   |\n-  o  changeset:   4:317e37cb6d66\n+  o  changeset:   9:317e37cb6d66\n+  |  parent:      3:092e4ce14829\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:04 1970 +0000\n   |  summary:     d\n+  |\n+  | o  changeset:   8:da56183fa9b7\n+  | |  parent:      4:ae78f4c9d74f\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:07 1970 +0000\n+  | |  summary:     fold-temp-revision 42abbb61bede\n+  | |\n+  | | o  changeset:   7:42abbb61bede\n+  | | |  user:        test\n+  | | |  date:        Thu Jan 01 00:00:07 1970 +0000\n+  | | |  summary:     does not commute with e\n+  | | |\n+  | | o  changeset:   6:dd184f2faeb0\n+  | | |  user:        test\n+  | | |  date:        Thu Jan 01 00:00:06 1970 +0000\n+  | | |  summary:     f\n+  | | |\n+  | | o  changeset:   5:7f3755409b00\n+  | |/   user:        test\n+  | |    date:        Thu Jan 01 00:00:05 1970 +0000\n+  | |    summary:     e\n+  | |\n+  | o  changeset:   4:ae78f4c9d74f\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:04 1970 +0000\n+  |    summary:     d\n   |\n   o  changeset:   3:092e4ce14829\n   |  user:        test\n@@ -322,16 +512,15 @@\n description is taken from rollup target commit\n \n   $ hg log --debug --rev 4\n-  changeset:   4:317e37cb6d66c1c84628c00e5bf4c8c292831951\n+  changeset:   4:ae78f4c9d74ffa4b6cb5045001c303fe9204e890\n   phase:       draft\n   parent:      3:092e4ce14829f4974399ce4316d59f64ef0b6725\n   parent:      -1:0000000000000000000000000000000000000000\n-  manifest:    4:b068a323d969f22af1296ec6a5ea9384cef437ac\n+  manifest:    4:5de30c46fc287545234d8a9e2f9ecb9c67177d27\n   user:        test\n   date:        Thu Jan 01 00:00:04 1970 +0000\n-  files:       d e\n+  files:       d\n   extra:       branch=default\n-  extra:       histedit_source=ae78f4c9d74ffa4b6cb5045001c303fe9204e890,42abbb61bede6f4366fa1e74a664343e5d558a70\n   description:\n   d\n   \n', 2492, 2494, 'truncated \\uXXXX escape') decoding diff, sorry

test-histedit-fold.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-histedit-fold.t\n+++ c:/hgdev/src/tests/test-histedit-fold.t.err\n@@ -63,15 +63,97 @@\n   > fold ff2c9fa2018b c\n   > pick 532247a8969b d\n   > EOF\n+  strip failed, backup bundle stored in \'$TESTTMP\\r\\.hg\\strip-backup/7cad1d703020-bfb27e6d-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\r\\.hg\\strip-backup/7cad1d703020-acb6ed92-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\r\\.hg\\strip-backup/7cad1d703020-acb6ed92-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "mockmakedate" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "mockmakedate" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit, mockmakedate\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n \n log after edit\n   $ hg logt --graph\n-  @  4:c4d7f3def76d d\n-  |\n-  o  3:575228819b7e f\n-  |\n-  o  2:505a591af19e e\n-  |\n+  @  10:c4d7f3def76d d\n+  |\n+  o  9:575228819b7e f\n+  |\n+  | o  8:5b6926c1aaa1 fold-temp-revision ff2c9fa2018b\n+  | |\n+  | o  7:7cad1d703020 f\n+  |/\n+  o  6:505a591af19e e\n+  |\n+  | o  5:178e35e0ce73 f\n+  | |\n+  | o  4:1ddb6c90f2ee e\n+  | |\n+  | o  3:532247a8969b d\n+  | |\n+  | o  2:ff2c9fa2018b c\n+  |/\n   o  1:97d72e5f12c7 b\n   |\n   o  0:8580ff50825a a\n@@ -90,20 +172,17 @@\n check histedit_source, including that it uses the later date, from the first changeset\n \n   $ hg log --debug --rev 3\n-  changeset:   3:575228819b7e6ed69e8c0a6a383ee59a80db7358\n+  changeset:   3:532247a8969b0e3a29e4b9156730a127eac56f1d\n   phase:       draft\n-  parent:      2:505a591af19eed18f560af827b9e03d2076773dc\n+  parent:      2:ff2c9fa2018b15fa74b33363bda9527323e2a99f\n   parent:      -1:0000000000000000000000000000000000000000\n-  manifest:    3:81eede616954057198ead0b2c73b41d1f392829a\n-  user:        test\n-  date:        Thu Jan 01 00:00:06 1970 +0000\n-  files+:      c f\n+  manifest:    3:f064a7f8e3e138341587096641d86e9d23cd9778\n+  user:        test\n+  date:        Thu Jan 01 00:00:04 1970 +0000\n+  files+:      d\n   extra:       branch=default\n-  extra:       histedit_source=7cad1d7030207872dfd1c3a7cb430f24f2884086,ff2c9fa2018b15fa74b33363bda9527323e2a99f\n   description:\n-  f\n-  ***\n-  c\n+  d\n   \n   \n \n@@ -117,16 +196,31 @@\n   > pick 575228819b7e f\n   > pick c4d7f3def76d d\n   > EOF\n+  abort: history edit already in progress, try --continue or --abort\n \n   $ HGEDITOR=$OLDHGEDITOR\n \n log after edit\n   $ hg logt --graph\n-  @  3:bab801520cec d\n-  |\n-  o  2:58c8f2bfc151 f\n-  |\n-  o  1:5d939c56c72e b\n+  @  10:c4d7f3def76d d\n+  |\n+  o  9:575228819b7e f\n+  |\n+  | o  8:5b6926c1aaa1 fold-temp-revision ff2c9fa2018b\n+  | |\n+  | o  7:7cad1d703020 f\n+  |/\n+  o  6:505a591af19e e\n+  |\n+  | o  5:178e35e0ce73 f\n+  | |\n+  | o  4:1ddb6c90f2ee e\n+  | |\n+  | o  3:532247a8969b d\n+  | |\n+  | o  2:ff2c9fa2018b c\n+  |/\n+  o  1:97d72e5f12c7 b\n   |\n   o  0:8580ff50825a a\n   \n@@ -134,16 +228,15 @@\n description is taken from rollup target commit\n \n   $ hg log --debug --rev 1\n-  changeset:   1:5d939c56c72e77e29f5167696218e2131a40f5cf\n+  changeset:   1:97d72e5f12c7e84f85064aa72e5a297142c36ed9\n   phase:       draft\n   parent:      0:8580ff50825a50c8f716709acdf8de0deddcd6ab\n   parent:      -1:0000000000000000000000000000000000000000\n-  manifest:    1:b5e112a3a8354e269b1524729f0918662d847c38\n+  manifest:    1:a539ce0c1a22b0ecf34498f9f5ce8ea56df9ecb7\n   user:        test\n   date:        Thu Jan 01 00:00:02 1970 +0000\n-  files+:      b e\n+  files+:      b\n   extra:       branch=default\n-  extra:       histedit_source=97d72e5f12c7e84f85064aa72e5a297142c36ed9,505a591af19eed18f560af827b9e03d2076773dc\n   description:\n   b\n   \n@@ -173,47 +266,18 @@\n \n   $ rm -f .hg/last-message.txt\n   $ hg status --rev \'58c8f2bfc151^1::bab801520cec\'\n-  A c\n-  A d\n-  A f\n+  abort: unknown revision \'58c8f2bfc151\'\n+  [255]\n   $ HGEDITOR="sh $TESTTMP/editor.sh" hg histedit 58c8f2bfc151 --commands - 2>&1 <<EOF\n   > pick 58c8f2bfc151 f\n   > fold bab801520cec d\n   > EOF\n-  allow non-folding commit\n-  ==== before editing\n-  f\n-  ***\n-  c\n-  ***\n-  d\n-  \n-  \n-  \n-  HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  HG: Leave message empty to abort commit.\n-  HG: --\n-  HG: user: test\n-  HG: branch \'default\'\n-  HG: added c\n-  HG: added d\n-  HG: added f\n-  ====\n-  transaction abort!\n-  rollback completed\n-  abort: pretxncommit.abortfolding hook failed\n+  abort: history edit already in progress, try --continue or --abort\n   [255]\n \n   $ cat .hg/last-message.txt\n-  f\n-  ***\n-  c\n-  ***\n-  d\n-  \n-  \n-  \n-  check saving last-message.txt\n+  cat: .hg/last-message.txt: $ENOENT$\n+  [1]\n \n   $ cd ..\n   $ rm -r r\n@@ -224,11 +288,79 @@\n   $ initrepo\n \n   $ hg ci -d \'7 0\' --user "someone else" --amend --quiet\n+  strip failed, backup bundle stored in \'$TESTTMP\\r\\.hg\\strip-backup/178e35e0ce73-afdd642a-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\r\\.hg\\strip-backup/178e35e0ce73-a73bd023-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\r\\.hg\\strip-backup/178e35e0ce73-a73bd023-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "mockmakedate" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "mockmakedate" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit, mockmakedate\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n tip before edit\n   $ hg log --rev .\n-  changeset:   5:10c36dd37515\n+  changeset:   6:10c36dd37515\n   tag:         tip\n+  parent:      4:1ddb6c90f2ee\n   user:        someone else\n   date:        Thu Jan 01 00:00:07 1970 +0000\n   summary:     f\n@@ -240,16 +372,16 @@\n   > pick 1ddb6c90f2ee e\n   > fold 10c36dd37515 f\n   > EOF\n-  editing: pick 1ddb6c90f2ee 4 e 1/2 changes (50.00%)\n-  editing: fold 10c36dd37515 5 f 2/2 changes (100.00%)\n+  [1]\n \n tip after edit, which should use the later date, from the second changeset\n   $ hg log --rev .\n-  changeset:   4:e4f3ec5d0b40\n+  changeset:   6:10c36dd37515\n   tag:         tip\n-  user:        test\n+  parent:      4:1ddb6c90f2ee\n+  user:        someone else\n   date:        Thu Jan 01 00:00:07 1970 +0000\n-  summary:     e\n+  summary:     f\n   \n \n   $ cd ..\n@@ -318,7 +450,80 @@\n   $ hg histedit --continue\n   251d831eeec5: empty changeset\n   saved backup bundle to $TESTTMP/fold-to-empty-test/.hg/strip-backup/888f9082bf99-daa0b8b3-histedit.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\fold-to-empty-test\\.hg\\strip-backup/888f9082bf99-daa0b8b3-histedit.hg\'\n+  ** Unknown exception encountered with possibly-broken third-party extension "mockmakedate" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "mockmakedate" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit, mockmakedate\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg logt --graph\n+  o  3:251d831eeec5 +6\n+  |\n+  o  2:888f9082bf99 +5\n+  |\n   @  1:617f94f13c0f +4\n   |\n   o  0:0189ba417d34 1+2+3\n@@ -394,9 +599,90 @@\n   HG: branch \'default\'\n   HG: changed file\n   saved backup bundle to $TESTTMP/fold-with-dropped/.hg/strip-backup/617f94f13c0f-3d69522c-histedit.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\fold-with-dropped\\.hg\\strip-backup/617f94f13c0f-3d69522c-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\fold-with-dropped\\.hg\\strip-backup/617f94f13c0f-45fb180a-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\fold-with-dropped\\.hg\\strip-backup/617f94f13c0f-45fb180a-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "mockmakedate" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "mockmakedate" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit, mockmakedate\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg logt -G\n-  @  1:10c647b2cdd5 +4\n-  |\n+  @  6:10c647b2cdd5 +4\n+  |\n+  | o  5:55c8d8dc79ce fold-temp-revision 251d831eeec5\n+  | |\n+  | o  4:6fdb948f9d42 +5.2\n+  | |\n+  | | o  3:251d831eeec5 +6\n+  | | |\n+  | | o  2:888f9082bf99 +5\n+  | |/\n+  | o  1:617f94f13c0f +4\n+  |/\n   o  0:0189ba417d34 1+2+3\n   \n   $ hg export tip\n@@ -447,9 +733,79 @@\n   > pick 1c4f440a8085 rename\n   > fold e0371e0426bc b\n   > EOF\n+  strip failed, backup bundle stored in \'$TESTTMP\\fold-rename\\.hg\\strip-backup/1c4f440a8085-7c6c5429-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\fold-rename\\.hg\\strip-backup/1c4f440a8085-9163fbbb-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\fold-rename\\.hg\\strip-backup/1c4f440a8085-9163fbbb-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "mockmakedate" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "mockmakedate" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit, mockmakedate\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n \n   $ hg logt --follow b.txt\n-  1:cf858d235c76 rename\n+  4:cf858d235c76 rename\n   0:6c795aa153cb a\n \n   $ cd ..\n@@ -483,11 +839,85 @@\n   > fold a1a953ffb4b0 c\n   > pick 6c795aa153cb a\n   > EOF\n-  commit 9599899f62c05f4377548c32bf1c9f1a39634b0c\n+  strip failed, backup bundle stored in \'$TESTTMP\\issue4422\\.hg\\strip-backup/16b87e97178d-924e798a-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\issue4422\\.hg\\strip-backup/16b87e97178d-e472764d-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\issue4422\\.hg\\strip-backup/16b87e97178d-e472764d-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "mockmakedate" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "mockmakedate" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit, mockmakedate\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n \n   $ hg logt\n-  1:9599899f62c0 a\n-  0:79b99e9c8e49 b\n+  6:9599899f62c0 a\n+  5:79b99e9c8e49 b\n+  4:973e98d91193 fold-temp-revision a1a953ffb4b0\n+  3:16b87e97178d b\n+  2:a1a953ffb4b0 c\n+  1:199b6bb90248 b\n+  0:6c795aa153cb a\n \n Test unix -> windows style variable substitution in external hooks.\n \n@@ -508,8 +938,14 @@\n   running hook post-add: echo ran $HG_ARGS, literal \\$non-var, \'also $non-var\', $HG_RESULT (no-windows !)\n   ran add -v amended.txt, literal $non-var, "also $non-var", 0 (windows !)\n   ran add -v amended.txt, literal $non-var, also $non-var, 0 (no-windows !)\n+  converting hook "post-add" to native\n+  running hook post-add: echo ran %HG_ARGS%, literal $non-var, "also $non-var", %HG_RESULT%\n+  ran add -v amended.txt, literal $non-var, "also $non-var", 0\\r (esc)\n   $ hg ci -q --config extensions.largefiles= --amend -I amended.txt\n   The fsmonitor extension is incompatible with the largefiles extension and has been disabled. (fsmonitor !)\n+  abort: histedit in progress\n+  (use \'hg histedit --continue\' or \'hg histedit --abort\')\n+  [20]\n \n Test that folding multiple changes in a row doesn\'t show multiple\n editors.\n@@ -517,16 +953,27 @@\n   $ echo foo >> foo\n   $ hg add foo\n   $ hg ci -m foo1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo foo >> foo\n   $ hg ci -m foo2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo foo >> foo\n   $ hg ci -m foo3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg logt\n-  4:21679ff7675c foo3\n-  3:b7389cc4d66e foo2\n-  2:0e01aeef5fa8 foo1\n-  1:578c7455730c a\n-  0:79b99e9c8e49 b\n+  6:9599899f62c0 a\n+  5:79b99e9c8e49 b\n+  4:973e98d91193 fold-temp-revision a1a953ffb4b0\n+  3:16b87e97178d b\n+  2:a1a953ffb4b0 c\n+  1:199b6bb90248 b\n+  0:6c795aa153cb a\n   $ cat > "$TESTTMP/editor.sh" <<EOF\n   > echo ran editor >> "$TESTTMP/editorlog.txt"\n   > cat \\$1 >> "$TESTTMP/editorlog.txt"\n@@ -539,29 +986,19 @@\n   > fold b7389cc4d66e 3 foo2\n   > fold 21679ff7675c 4 foo3\n   > EOF\n-  merging foo\n+  abort: history edit already in progress, try --continue or --abort\n   $ hg logt\n-  2:e8bedbda72c1 merged foos\n-  1:578c7455730c a\n-  0:79b99e9c8e49 b\n+  6:9599899f62c0 a\n+  5:79b99e9c8e49 b\n+  4:973e98d91193 fold-temp-revision a1a953ffb4b0\n+  3:16b87e97178d b\n+  2:a1a953ffb4b0 c\n+  1:199b6bb90248 b\n+  0:6c795aa153cb a\n Editor should have run only once\n   $ cat $TESTTMP/editorlog.txt\n-  ran editor\n-  foo1\n-  ***\n-  foo2\n-  ***\n-  foo3\n-  \n-  \n-  \n-  HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  HG: Leave message empty to abort commit.\n-  HG: --\n-  HG: user: test\n-  HG: branch \'default\'\n-  HG: added foo\n-  END\n+  cat: $TESTTMP/editorlog.txt: $ENOENT$\n+  [1]\n \n   $ cd ..\n \n@@ -663,16 +1100,108 @@\n   > pick 178e35e0ce73 f\n   > fold 1ddb6c90f2ee e\n   > EOF\n+  strip failed, backup bundle stored in \'$TESTTMP\\r\\.hg\\strip-backup/750d51d7ae9e-2317cef9-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\r\\.hg\\strip-backup/750d51d7ae9e-46c22ac6-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\r\\.hg\\strip-backup/750d51d7ae9e-46c22ac6-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "mockmakedate" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "mockmakedate" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit, mockmakedate\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n \n log after edit\n observe time from f is updated\n \n   $ hg log\n-  changeset:   4:f7909b1863a2\n+  changeset:   8:f7909b1863a2\n   tag:         tip\n+  parent:      3:532247a8969b\n   user:        test\n   date:        Thu Jan 01 00:00:01 1970 +0000\n   summary:     f\n+  \n+  changeset:   7:e021d48e5b8a\n+  user:        test\n+  date:        Thu Jan 01 00:00:05 1970 +0000\n+  summary:     fold-temp-revision 1ddb6c90f2ee\n+  \n+  changeset:   6:750d51d7ae9e\n+  parent:      3:532247a8969b\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     f\n+  \n+  changeset:   5:178e35e0ce73\n+  user:        test\n+  date:        Thu Jan 01 00:00:06 1970 +0000\n+  summary:     f\n+  \n+  changeset:   4:1ddb6c90f2ee\n+  user:        test\n+  date:        Thu Jan 01 00:00:05 1970 +0000\n+  summary:     e\n   \n   changeset:   3:532247a8969b\n   user:        test\n', 2613, 2615, 'truncated \\uXXXX escape') decoding diff, sorry

test-histedit-merge-tools.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-histedit-merge-tools.t\n+++ c:/hgdev/src/tests/test-histedit-merge-tools.t.err\n@@ -48,6 +48,67 @@\n   (hg histedit --continue to resume)\n \n   $ hg histedit --abort | fixbundle\n+  strip failed, backup bundle stored in \'$TESTTMP\\r\\.hg\\strip-backup/b90fa2e91a6d-c96b97b9-backup.hg\'\n+  warning: encountered an exception during histedit --abort; the repository may not have been completely cleaned up\n+  ** Unknown exception encountered with possibly-broken third-party extension "mockmakedate" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "mockmakedate" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit, mockmakedate\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2010, in _histedit\n+      _aborthistedit(ui, repo, state, nobackup=nobackup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2152, in _aborthistedit\n+      cleanupnode(ui, repo, tmpnodes, nobackup=nobackup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2606, in cleanupnode\n+      repair.strip(ui, repo, roots, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n \n Invert the order of the commits, and pretend the merge succeeded.\n@@ -55,12 +116,9 @@\n   > pick 2aa920f62fb9 Second\n   > pick 7181f42b8fca First\n   > EOF\n-  merging file\n-  pre-merge message for b90fa2e91a6d11013945a5f684be45b84a8ca6ec\n-  7181f42b8fca: skipping changeset (no changes)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   $ hg histedit --abort\n-  abort: no histedit in progress\n-  [20]\n   $ cd ..\n \n Test legacy config name\n', 2523, 2525, 'truncated \\uXXXX escape') decoding diff, sorry

test-histedit-no-backup.t#abortcommand

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-histedit-no-backup.t\n+++ c:/hgdev/src/tests/test-histedit-no-backup.t#abortcommand.err\n@@ -56,7 +56,64 @@\n   $ hg abort\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/foo/.hg/strip-backup/1d8f701c7b35-cf7be322-backup.hg\n-  saved backup bundle to $TESTTMP/foo/.hg/strip-backup/5c0056670bce-b54b65d0-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\foo\\.hg\\strip-backup/1d8f701c7b35-cf7be322-backup.hg\'\n+  warning: encountered an exception during histedit --abort; the repository may not have been completely cleaned up\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 204, in abort\n+      return abortstate.abortfunc(ui, repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2174, in hgaborthistedit\n+      _aborthistedit(ui, repo, state, nobackup=nobackup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2152, in _aborthistedit\n+      cleanupnode(ui, repo, tmpnodes, nobackup=nobackup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2606, in cleanupnode\n+      repair.strip(ui, repo, roots, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Test when `backup-bundle` config option is not enabled\n Enable config option:\n@@ -71,10 +128,9 @@\n   > roll 80d23dfa866d 2 three\n   > edit 7d5187087c79 3 four\n   > EOF\n-  merging file\n-  Editing (7d5187087c79), you may commit or record as needed now.\n-  (hg histedit --continue to resume)\n-  [240]\n+  abort: cannot edit changeset with children\n+  [10]\n \n   $ hg abort\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: no operation in progress\n+  [20]\n', 2523, 2525, 'truncated \\uXXXX escape') decoding diff, sorry

test-histedit-no-backup.t#abortflag

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-histedit-no-backup.t\n+++ c:/hgdev/src/tests/test-histedit-no-backup.t#abortflag.err\n@@ -56,7 +56,64 @@\n   $ hg abort\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/foo/.hg/strip-backup/1d8f701c7b35-cf7be322-backup.hg\n-  saved backup bundle to $TESTTMP/foo/.hg/strip-backup/5c0056670bce-b54b65d0-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\foo\\.hg\\strip-backup/1d8f701c7b35-cf7be322-backup.hg\'\n+  warning: encountered an exception during histedit --abort; the repository may not have been completely cleaned up\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 204, in abort\n+      return abortstate.abortfunc(ui, repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2174, in hgaborthistedit\n+      _aborthistedit(ui, repo, state, nobackup=nobackup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2152, in _aborthistedit\n+      cleanupnode(ui, repo, tmpnodes, nobackup=nobackup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2606, in cleanupnode\n+      repair.strip(ui, repo, roots, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Test when `backup-bundle` config option is not enabled\n Enable config option:\n@@ -71,10 +128,9 @@\n   > roll 80d23dfa866d 2 three\n   > edit 7d5187087c79 3 four\n   > EOF\n-  merging file\n-  Editing (7d5187087c79), you may commit or record as needed now.\n-  (hg histedit --continue to resume)\n-  [240]\n+  abort: cannot edit changeset with children\n+  [10]\n \n   $ hg abort\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: no operation in progress\n+  [20]\n', 2520, 2522, 'truncated \\uXXXX escape') decoding diff, sorry

test-histedit-no-change.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-histedit-no-change.t\n+++ c:/hgdev/src/tests/test-histedit-no-change.t.err\n@@ -95,6 +95,74 @@\n   (hg histedit --continue to resume)\n   $ continueediting true "(leaving commit message unaltered)"\n   % finalize changeset editing (leaving commit message unaltered)\n+  strip failed, backup bundle stored in \'$TESTTMP\\r1\\.hg\\strip-backup/e860deea161a-fa46228d-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\r1\\.hg\\strip-backup/e860deea161a-3b7c8dde-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\r1\\.hg\\strip-backup/e860deea161a-3b7c8dde-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n \n \n check state of working copy\n@@ -103,10 +171,14 @@\n \n   $ graphlog "log after history editing"\n   % log after history editing\n-  @  5 794fe033d0a030f8df77c5de945fca35c9181c30 "f"\n-  |\n-  o  4 04d2fab980779f332dec458cc944f28de8b43435 "e"\n-  |\n+  @  7 794fe033d0a030f8df77c5de945fca35c9181c30 "f"\n+  |\n+  o  6 04d2fab980779f332dec458cc944f28de8b43435 "e"\n+  |\n+  | o  5 652413bf663ef2a641cab26574e46d5f5a64a55a "f"\n+  | |\n+  | o  4 e860deea161a2f77de56603b340ebbb4536308ae "e"\n+  |/\n   o  3 055a42cdd88768532f9cf79daa407fc8d138de9b "d"\n   |\n   o  2 177f92b773850b59254aa5e923436f921b55483b "c"\n@@ -184,6 +256,65 @@\n   hist:   2 remaining (histedit --continue)\n \n   $ hg histedit --abort 2>&1 | fixbundle\n+  strip failed, backup bundle stored in \'$TESTTMP\\r2\\.hg\\strip-backup/e5ae3ca2f1ff-a67eeb70-backup.hg\'\n+  warning: encountered an exception during histedit --abort; the repository may not have been completely cleaned up\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2010, in _histedit\n+      _aborthistedit(ui, repo, state, nobackup=nobackup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2152, in _aborthistedit\n+      cleanupnode(ui, repo, tmpnodes, nobackup=nobackup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2606, in cleanupnode\n+      repair.strip(ui, repo, roots, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n \n modified files should survive the abort when we\'ve moved away already\n   $ hg st\n@@ -192,12 +323,14 @@\n \n   $ graphlog "log after abort"\n   % log after abort\n-  o  5 652413bf663ef2a641cab26574e46d5f5a64a55a "f"\n-  |\n-  o  4 e860deea161a2f77de56603b340ebbb4536308ae "e"\n-  |\n-  o  3 055a42cdd88768532f9cf79daa407fc8d138de9b "d"\n-  |\n+  o  6 e5ae3ca2f1ffdbd89ec41ebc273a231f7c3022f2 "d"\n+  |\n+  | o  5 652413bf663ef2a641cab26574e46d5f5a64a55a "f"\n+  | |\n+  | o  4 e860deea161a2f77de56603b340ebbb4536308ae "e"\n+  | |\n+  | o  3 055a42cdd88768532f9cf79daa407fc8d138de9b "d"\n+  |/\n   o  2 177f92b773850b59254aa5e923436f921b55483b "c"\n   |\n   o  1 d2ae7f538514cd87c17547b0de4cea71fe1af9fb "b"\n@@ -206,13 +339,18 @@\n   \n aborting and not changing files can skip mentioning updating (no) files\n   $ hg up\n-  5 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  updated to "e5ae3ca2f1ff: d"\n+  1 other heads for branch "default"\n   $ hg commit --close-branch -m \'closebranch\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ startediting 1 1 "(not changing anything)" # edit the 3rd of 3 changesets\n   % start editing the history (not changing anything)\n-  | edit 292aec348d9e 6 closebranch\n-  Editing (292aec348d9e), you may commit or record as needed now.\n-  (hg histedit --continue to resume)\n+  abort: uncommitted changes\n   $ hg histedit --abort\n+  abort: no histedit in progress\n+  [20]\n \n   $ cd ..\n', 2538, 2540, 'truncated \\uXXXX escape') decoding diff, sorry

test-histedit-non-commute-abort.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-histedit-non-commute-abort.t\n+++ c:/hgdev/src/tests/test-histedit-non-commute-abort.t.err\n@@ -105,27 +105,92 @@\n abort the edit (should clear out merge state)\n   $ hg histedit --abort 2>&1 | fixbundle\n   2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  strip failed, backup bundle stored in \'$TESTTMP\\r\\.hg\\strip-backup/8f7551c7e4a2-f4477a06-backup.hg\'\n+  warning: encountered an exception during histedit --abort; the repository may not have been completely cleaned up\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2010, in _histedit\n+      _aborthistedit(ui, repo, state, nobackup=nobackup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2152, in _aborthistedit\n+      cleanupnode(ui, repo, tmpnodes, nobackup=nobackup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2606, in cleanupnode\n+      repair.strip(ui, repo, roots, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   $ hg debugmergestate\n   no merge state found\n \n log after abort\n   $ hg resolve -l\n   $ hg log --graph\n-  @  changeset:   6:bfa474341cc9\n+  o  changeset:   7:8f7551c7e4a2\n   |  tag:         tip\n+  |  parent:      3:055a42cdd887\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     does not commute with e\n   |\n-  o  changeset:   5:652413bf663e\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     f\n-  |\n-  o  changeset:   4:e860deea161a\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     e\n+  | @  changeset:   6:bfa474341cc9\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     does not commute with e\n+  | |\n+  | o  changeset:   5:652413bf663e\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     f\n+  | |\n+  | o  changeset:   4:e860deea161a\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     e\n   |\n   o  changeset:   3:055a42cdd887\n   |  user:        test\n@@ -154,20 +219,22 @@\n \n   $ hg rm c\n   $ hg ci -m \'remove c\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo collision > c\n \n   $ hg histedit e860deea161a\n-  c: untracked file differs\n-  abort: untracked files in working directory conflict with files in 055a42cdd887\n-  [255]\n+  abort: uncommitted changes\n+  [20]\n \n We should have detected the collision early enough we\'re not in a\n histedit state, and p1 is unchanged.\n \n   $ hg log -r \'p1()\' -T\'{node}\\n\'\n-  1b0954ff00fccb15a37b679e4a35e9b01dfe685e\n+  bfa474341cc9e9b71ecf16560d82785cfc63094e\n   $ hg status --config ui.tweakdefaults=yes\n-  ? c\n+  R c\n   ? e.orig\n \n   $ cd ..\n', 2426, 2428, 'truncated \\uXXXX escape') decoding diff, sorry

test-histedit-non-commute.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-histedit-non-commute.t\n+++ c:/hgdev/src/tests/test-histedit-non-commute.t.err\n@@ -178,19 +178,103 @@\n   continue: hg histedit --continue\n   $ hg histedit --continue 2>&1 | fixbundle\n   7b4e2f4b7bcd: skipping changeset (no changes)\n+  strip failed, backup bundle stored in \'$TESTTMP\\r1\\.hg\\strip-backup/7b4e2f4b7bcd-6e038c17-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\r1\\.hg\\strip-backup/7b4e2f4b7bcd-7f94a8f2-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\r1\\.hg\\strip-backup/7b4e2f4b7bcd-7f94a8f2-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n \n log after edit\n   $ hg log --graph\n-  @  changeset:   6:7efe1373e4bc\n+  @  changeset:   9:7efe1373e4bc\n   |  tag:         tip\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     f\n   |\n-  o  changeset:   5:e334d87a1e55\n+  o  changeset:   8:e334d87a1e55\n+  |  parent:      4:00f1c5383965\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     does not commute with e\n+  |\n+  | o  changeset:   7:39522b764e3d\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     does not commute with e\n+  | |\n+  | o  changeset:   6:500cac37a696\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     f\n+  | |\n+  | o  changeset:   5:7b4e2f4b7bcd\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     e\n   |\n   o  changeset:   4:00f1c5383965\n   |  user:        test\n@@ -260,19 +344,103 @@\n   continue: hg histedit --continue\n   $ hg histedit --continue 2>&1 | fixbundle\n   7b4e2f4b7bcd: skipping changeset (no changes)\n+  strip failed, backup bundle stored in \'$TESTTMP\\r2\\.hg\\strip-backup/7b4e2f4b7bcd-6e038c17-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\r2\\.hg\\strip-backup/7b4e2f4b7bcd-7f94a8f2-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\r2\\.hg\\strip-backup/7b4e2f4b7bcd-7f94a8f2-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n \n post message fix\n   $ hg log --graph\n-  @  changeset:   6:7efe1373e4bc\n+  @  changeset:   9:7efe1373e4bc\n   |  tag:         tip\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     f\n   |\n-  o  changeset:   5:e334d87a1e55\n+  o  changeset:   8:e334d87a1e55\n+  |  parent:      4:00f1c5383965\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     does not commute with e\n+  |\n+  | o  changeset:   7:39522b764e3d\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     does not commute with e\n+  | |\n+  | o  changeset:   6:500cac37a696\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     f\n+  | |\n+  | o  changeset:   5:7b4e2f4b7bcd\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     e\n   |\n   o  changeset:   4:00f1c5383965\n   |  user:        test\n@@ -302,5 +470,7 @@\n \n An invalid editor shouldn\'t leave the user in a broken state:\n   $ EDITOR=totally-not-a-thing-unsensible-editor-value hg histedit 4\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n \n   $ cd ..\n', 2508, 2510, 'truncated \\uXXXX escape') decoding diff, sorry

test-histedit-obsolete.t#abortcommand

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-histedit-obsolete.t\n+++ c:/hgdev/src/tests/test-histedit-obsolete.t#abortcommand.err\n@@ -80,12 +80,73 @@\n   $ hg commit --amend -X . -m XXXXXX\n   $ hg commit --amend -X . -m b2\n   $ hg --hidden --config extensions.strip= strip \'desc(XXXXXX)\' --no-backup\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\boo\\.hg\\strip-backup/2ca853e48edb-78298152-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\boo\\.hg\\strip-backup/2ca853e48edb-78298152-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg histedit --continue\n-  $ hg log -G\n-  @  8:273c1f3b8626 c\n-  |\n-  o  7:aba7da937030 b2\n-  |\n+  note: commit message saved in .hg/last-message.txt\n+  note: use \'hg commit --logfile .hg/last-message.txt --edit\' to reuse it\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg log -G\n+  @  8:aba7da937030 b2\n+  |\n+  | o  5:46abc7c4d873 b\n+  | |\n+  | o  4:49d44ab2be1b c\n+  |/\n   o  0:cb9a9f314b8b a\n   \n   $ hg debugobsolete\n@@ -94,8 +155,6 @@\n   114f4176969ef342759a8a57e6bccefc4234829b 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'12\', \'operation\': \'histedit\', \'user\': \'test\'}\n   76f72745eac0643d16530e56e2f86e36e40631f1 2ca853e48edbd6453a0674dc0fe28a0974c51b9c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'1\', \'operation\': \'amend\', \'user\': \'test\'}\n   2ca853e48edbd6453a0674dc0fe28a0974c51b9c aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'1\', \'operation\': \'amend\', \'user\': \'test\'}\n-  49d44ab2be1b67a79127568a67c9c99430633b48 273c1f3b86267ed3ec684bb13af1fa4d6ba56e02 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'4\', \'operation\': \'histedit\', \'user\': \'test\'}\n-  46abc7c4d8738e8563e577f7889e1b6db3da4199 aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'5\', \'operation\': \'histedit\', \'user\': \'test\'}\n   $ cd ..\n \n Base setup for the rest of the testing\n@@ -540,18 +599,86 @@\n   $ hg abort\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/abort/.hg/strip-backup/4dc06258baa6-dff4ef05-backup.hg\n-\n-  $ hg log -G\n-  @  18:ee118ab9fa44 (secret) k\n-  |\n-  o  17:3a6c53ee7f3d (secret) j\n-  |\n-  o  16:b605fb7503f2 (secret) i\n-  |\n-  o  15:7395e1ff83bd (draft) h\n-  |\n-  o  14:6b70183d2492 (draft) g\n-  |\n+  strip failed, backup bundle stored in \'$TESTTMP\\abort\\.hg\\strip-backup/4dc06258baa6-dff4ef05-backup.hg\'\n+  warning: encountered an exception during histedit --abort; the repository may not have been completely cleaned up\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 204, in abort\n+      return abortstate.abortfunc(ui, repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2174, in hgaborthistedit\n+      _aborthistedit(ui, repo, state, nobackup=nobackup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2152, in _aborthistedit\n+      cleanupnode(ui, repo, tmpnodes, nobackup=nobackup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2606, in cleanupnode\n+      repair.strip(ui, repo, roots, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+\n+  $ hg log -G\n+  o  23:7224d3952be1 (secret) i\n+  |\n+  | o  22:01665f5060da (secret) fold-temp-revision 3a6c53ee7f3d\n+  | |\n+  | o  21:31747692a644 (secret) i\n+  |/\n+  o  20:9985cd4f21fa (draft) g\n+  |\n+  o  19:4dc06258baa6 (draft) h\n+  |\n+  | @  18:ee118ab9fa44 (secret) k\n+  | |\n+  | o  17:3a6c53ee7f3d (secret) j\n+  | |\n+  | o  16:b605fb7503f2 (secret) i\n+  | |\n+  | o  15:7395e1ff83bd (draft) h\n+  | |\n+  | o  14:6b70183d2492 (draft) g\n+  |/\n   o  13:b449568bf7fc (draft) f\n   |\n   o  12:40db8afa467b (public) c\n@@ -566,26 +693,41 @@\n   > pick 3a6c53ee7f3d 17 j\n   > edit ee118ab9fa44 18 k\n   > EOF\n-  Editing (ee118ab9fa44), you may commit or record as needed now.\n-  (hg histedit --continue to resume)\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg histedit --continue --config experimental.evolution.track-operation=1\n-  $ hg log -G\n-  @  23:175d6b286a22 (secret) k\n-  |\n-  o  22:44ca09d59ae4 (secret) j\n-  |\n-  o  21:31747692a644 (secret) i\n-  |\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg log -G\n+  o  23:7224d3952be1 (secret) i\n+  |\n+  | o  22:01665f5060da (secret) fold-temp-revision 3a6c53ee7f3d\n+  | |\n+  | o  21:31747692a644 (secret) i\n+  |/\n   o  20:9985cd4f21fa (draft) g\n   |\n   o  19:4dc06258baa6 (draft) h\n   |\n-  o  13:b449568bf7fc (draft) f\n+  | o  18:ee118ab9fa44 (secret) k\n+  | |\n+  | o  17:3a6c53ee7f3d (secret) j\n+  | |\n+  | o  16:b605fb7503f2 (secret) i\n+  | |\n+  | o  15:7395e1ff83bd (draft) h\n+  | |\n+  | o  14:6b70183d2492 (draft) g\n+  |/\n+  @  13:b449568bf7fc (draft) f\n   |\n   o  12:40db8afa467b (public) c\n   |\n   o  0:cb9a9f314b8b (public) a\n   \n   $ hg debugobsolete --rev .\n-  ee118ab9fa44ebb86be85996548b5517a39e5093 175d6b286a224c23f192e79a581ce83131a53fa2 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'4\', \'operation\': \'histedit\', \'user\': \'test\'}\n+  652413bf663ef2a641cab26574e46d5f5a64a55a cacdfd884a9321ec4e1de275ef3949fa953a1f83 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'4\', \'operation\': \'histedit\', \'user\': \'test\'}\n+  c13eb81022caa686a369223fe7f926bc4f7db576 b449568bf7fc258116143e6ea0a9b2c5dfbe19a7 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'4\', \'operation\': \'rebase\', \'user\': \'test\'}\n+  cacdfd884a9321ec4e1de275ef3949fa953a1f83 c13eb81022caa686a369223fe7f926bc4f7db576 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'4\', \'operation\': \'histedit\', \'user\': \'test\'}\n', 2442, 2444, 'truncated \\uXXXX escape') decoding diff, sorry

test-histedit-obsolete.t#abortflag

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-histedit-obsolete.t\n+++ c:/hgdev/src/tests/test-histedit-obsolete.t#abortflag.err\n@@ -80,12 +80,73 @@\n   $ hg commit --amend -X . -m XXXXXX\n   $ hg commit --amend -X . -m b2\n   $ hg --hidden --config extensions.strip= strip \'desc(XXXXXX)\' --no-backup\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\boo\\.hg\\strip-backup/2ca853e48edb-78298152-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\boo\\.hg\\strip-backup/2ca853e48edb-78298152-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg histedit --continue\n-  $ hg log -G\n-  @  8:273c1f3b8626 c\n-  |\n-  o  7:aba7da937030 b2\n-  |\n+  note: commit message saved in .hg/last-message.txt\n+  note: use \'hg commit --logfile .hg/last-message.txt --edit\' to reuse it\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg log -G\n+  @  8:aba7da937030 b2\n+  |\n+  | o  5:46abc7c4d873 b\n+  | |\n+  | o  4:49d44ab2be1b c\n+  |/\n   o  0:cb9a9f314b8b a\n   \n   $ hg debugobsolete\n@@ -94,8 +155,6 @@\n   114f4176969ef342759a8a57e6bccefc4234829b 49d44ab2be1b67a79127568a67c9c99430633b48 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'12\', \'operation\': \'histedit\', \'user\': \'test\'}\n   76f72745eac0643d16530e56e2f86e36e40631f1 2ca853e48edbd6453a0674dc0fe28a0974c51b9c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'1\', \'operation\': \'amend\', \'user\': \'test\'}\n   2ca853e48edbd6453a0674dc0fe28a0974c51b9c aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'1\', \'operation\': \'amend\', \'user\': \'test\'}\n-  49d44ab2be1b67a79127568a67c9c99430633b48 273c1f3b86267ed3ec684bb13af1fa4d6ba56e02 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'4\', \'operation\': \'histedit\', \'user\': \'test\'}\n-  46abc7c4d8738e8563e577f7889e1b6db3da4199 aba7da93703075eec9fb1dbaf143ff2bc1c49d46 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'5\', \'operation\': \'histedit\', \'user\': \'test\'}\n   $ cd ..\n \n Base setup for the rest of the testing\n@@ -540,18 +599,86 @@\n   $ hg abort\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/abort/.hg/strip-backup/4dc06258baa6-dff4ef05-backup.hg\n-\n-  $ hg log -G\n-  @  18:ee118ab9fa44 (secret) k\n-  |\n-  o  17:3a6c53ee7f3d (secret) j\n-  |\n-  o  16:b605fb7503f2 (secret) i\n-  |\n-  o  15:7395e1ff83bd (draft) h\n-  |\n-  o  14:6b70183d2492 (draft) g\n-  |\n+  strip failed, backup bundle stored in \'$TESTTMP\\abort\\.hg\\strip-backup/4dc06258baa6-dff4ef05-backup.hg\'\n+  warning: encountered an exception during histedit --abort; the repository may not have been completely cleaned up\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 204, in abort\n+      return abortstate.abortfunc(ui, repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2174, in hgaborthistedit\n+      _aborthistedit(ui, repo, state, nobackup=nobackup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2152, in _aborthistedit\n+      cleanupnode(ui, repo, tmpnodes, nobackup=nobackup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2606, in cleanupnode\n+      repair.strip(ui, repo, roots, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+\n+  $ hg log -G\n+  o  23:7224d3952be1 (secret) i\n+  |\n+  | o  22:01665f5060da (secret) fold-temp-revision 3a6c53ee7f3d\n+  | |\n+  | o  21:31747692a644 (secret) i\n+  |/\n+  o  20:9985cd4f21fa (draft) g\n+  |\n+  o  19:4dc06258baa6 (draft) h\n+  |\n+  | @  18:ee118ab9fa44 (secret) k\n+  | |\n+  | o  17:3a6c53ee7f3d (secret) j\n+  | |\n+  | o  16:b605fb7503f2 (secret) i\n+  | |\n+  | o  15:7395e1ff83bd (draft) h\n+  | |\n+  | o  14:6b70183d2492 (draft) g\n+  |/\n   o  13:b449568bf7fc (draft) f\n   |\n   o  12:40db8afa467b (public) c\n@@ -566,26 +693,41 @@\n   > pick 3a6c53ee7f3d 17 j\n   > edit ee118ab9fa44 18 k\n   > EOF\n-  Editing (ee118ab9fa44), you may commit or record as needed now.\n-  (hg histedit --continue to resume)\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg histedit --continue --config experimental.evolution.track-operation=1\n-  $ hg log -G\n-  @  23:175d6b286a22 (secret) k\n-  |\n-  o  22:44ca09d59ae4 (secret) j\n-  |\n-  o  21:31747692a644 (secret) i\n-  |\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg log -G\n+  o  23:7224d3952be1 (secret) i\n+  |\n+  | o  22:01665f5060da (secret) fold-temp-revision 3a6c53ee7f3d\n+  | |\n+  | o  21:31747692a644 (secret) i\n+  |/\n   o  20:9985cd4f21fa (draft) g\n   |\n   o  19:4dc06258baa6 (draft) h\n   |\n-  o  13:b449568bf7fc (draft) f\n+  | o  18:ee118ab9fa44 (secret) k\n+  | |\n+  | o  17:3a6c53ee7f3d (secret) j\n+  | |\n+  | o  16:b605fb7503f2 (secret) i\n+  | |\n+  | o  15:7395e1ff83bd (draft) h\n+  | |\n+  | o  14:6b70183d2492 (draft) g\n+  |/\n+  @  13:b449568bf7fc (draft) f\n   |\n   o  12:40db8afa467b (public) c\n   |\n   o  0:cb9a9f314b8b (public) a\n   \n   $ hg debugobsolete --rev .\n-  ee118ab9fa44ebb86be85996548b5517a39e5093 175d6b286a224c23f192e79a581ce83131a53fa2 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'4\', \'operation\': \'histedit\', \'user\': \'test\'}\n+  652413bf663ef2a641cab26574e46d5f5a64a55a cacdfd884a9321ec4e1de275ef3949fa953a1f83 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'4\', \'operation\': \'histedit\', \'user\': \'test\'}\n+  c13eb81022caa686a369223fe7f926bc4f7db576 b449568bf7fc258116143e6ea0a9b2c5dfbe19a7 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'4\', \'operation\': \'rebase\', \'user\': \'test\'}\n+  cacdfd884a9321ec4e1de275ef3949fa953a1f83 c13eb81022caa686a369223fe7f926bc4f7db576 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'4\', \'operation\': \'histedit\', \'user\': \'test\'}\n', 2439, 2441, 'truncated \\uXXXX escape') decoding diff, sorry

test-hook.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-hook.t\n+++ c:/hgdev/src/tests/test-hook.t.err\n@@ -32,49 +32,13 @@\n   $ echo a > a\n   $ hg add a\n   $ hg commit -m a\n-  precommit hook: HG_HOOKNAME=precommit\n-  HG_HOOKTYPE=precommit\n-  HG_PARENT1=0000000000000000000000000000000000000000\n-  \n-  pretxnopen hook: HG_HOOKNAME=pretxnopen\n-  HG_HOOKTYPE=pretxnopen\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=commit\n-  \n-  pretxncommit hook: HG_HOOKNAME=pretxncommit\n-  HG_HOOKTYPE=pretxncommit\n-  HG_NODE=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b\n-  HG_PARENT1=0000000000000000000000000000000000000000\n-  HG_PENDING=$TESTTMP/a\n-  \n-  0:cb9a9f314b8b\n-  pretxnclose hook: HG_HOOKNAME=pretxnclose\n-  HG_HOOKTYPE=pretxnclose\n-  HG_PENDING=$TESTTMP/a\n-  HG_PHASES_MOVED=1\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=commit\n-  \n-  txnclose hook: HG_HOOKNAME=txnclose\n-  HG_HOOKTYPE=txnclose\n-  HG_PHASES_MOVED=1\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=commit\n-  \n-  commit hook: HG_HOOKNAME=commit\n-  HG_HOOKTYPE=commit\n-  HG_NODE=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b\n-  HG_PARENT1=0000000000000000000000000000000000000000\n-  \n-  commit.b hook: HG_HOOKNAME=commit.b\n-  HG_HOOKTYPE=commit\n-  HG_NODE=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b\n-  HG_PARENT1=0000000000000000000000000000000000000000\n-  \n+  /usr/bin/env: python3: $ENOENT$\n+  abort: precommit hook exited with status 127\n+  [255]\n \n   $ hg clone . ../b\n   updating to branch default\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ cd ../b\n \n changegroup hooks can see env vars\n@@ -91,214 +55,40 @@\n   $ cd ../a\n   $ echo b >> a\n   $ hg commit -m a1 -d "1 0"\n-  precommit hook: HG_HOOKNAME=precommit\n-  HG_HOOKTYPE=precommit\n-  HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b\n-  \n-  pretxnopen hook: HG_HOOKNAME=pretxnopen\n-  HG_HOOKTYPE=pretxnopen\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=commit\n-  \n-  pretxncommit hook: HG_HOOKNAME=pretxncommit\n-  HG_HOOKTYPE=pretxncommit\n-  HG_NODE=ab228980c14deea8b9555d91c9581127383e40fd\n-  HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b\n-  HG_PENDING=$TESTTMP/a\n-  \n-  1:ab228980c14d\n-  pretxnclose hook: HG_HOOKNAME=pretxnclose\n-  HG_HOOKTYPE=pretxnclose\n-  HG_PENDING=$TESTTMP/a\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=commit\n-  \n-  txnclose hook: HG_HOOKNAME=txnclose\n-  HG_HOOKTYPE=txnclose\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=commit\n-  \n-  commit hook: HG_HOOKNAME=commit\n-  HG_HOOKTYPE=commit\n-  HG_NODE=ab228980c14deea8b9555d91c9581127383e40fd\n-  HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b\n-  \n-  commit.b hook: HG_HOOKNAME=commit.b\n-  HG_HOOKTYPE=commit\n-  HG_NODE=ab228980c14deea8b9555d91c9581127383e40fd\n-  HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b\n-  \n+  /usr/bin/env: python3: $ENOENT$\n+  abort: precommit hook exited with status 127\n+  [255]\n   $ hg update -C 0\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ echo b > b\n   $ hg add b\n   $ hg commit -m b -d \'1 0\'\n-  precommit hook: HG_HOOKNAME=precommit\n-  HG_HOOKTYPE=precommit\n-  HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b\n-  \n-  pretxnopen hook: HG_HOOKNAME=pretxnopen\n-  HG_HOOKTYPE=pretxnopen\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=commit\n-  \n-  pretxncommit hook: HG_HOOKNAME=pretxncommit\n-  HG_HOOKTYPE=pretxncommit\n-  HG_NODE=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2\n-  HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b\n-  HG_PENDING=$TESTTMP/a\n-  \n-  2:ee9deb46ab31\n-  pretxnclose hook: HG_HOOKNAME=pretxnclose\n-  HG_HOOKTYPE=pretxnclose\n-  HG_PENDING=$TESTTMP/a\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=commit\n-  \n-  created new head\n-  txnclose hook: HG_HOOKNAME=txnclose\n-  HG_HOOKTYPE=txnclose\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=commit\n-  \n-  commit hook: HG_HOOKNAME=commit\n-  HG_HOOKTYPE=commit\n-  HG_NODE=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2\n-  HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b\n-  \n-  commit.b hook: HG_HOOKNAME=commit.b\n-  HG_HOOKTYPE=commit\n-  HG_NODE=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2\n-  HG_PARENT1=cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b\n-  \n+  /usr/bin/env: python3: $ENOENT$\n+  abort: precommit hook exited with status 127\n+  [255]\n   $ hg merge 1\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n+  abort: unknown revision \'1\'\n+  [255]\n   $ hg commit -m merge -d \'2 0\'\n-  precommit hook: HG_HOOKNAME=precommit\n-  HG_HOOKTYPE=precommit\n-  HG_PARENT1=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2\n-  HG_PARENT2=ab228980c14deea8b9555d91c9581127383e40fd\n-  \n-  pretxnopen hook: HG_HOOKNAME=pretxnopen\n-  HG_HOOKTYPE=pretxnopen\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=commit\n-  \n-  pretxncommit hook: HG_HOOKNAME=pretxncommit\n-  HG_HOOKTYPE=pretxncommit\n-  HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2\n-  HG_PARENT1=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2\n-  HG_PARENT2=ab228980c14deea8b9555d91c9581127383e40fd\n-  HG_PENDING=$TESTTMP/a\n-  \n-  3:07f3376c1e65\n-  pretxnclose hook: HG_HOOKNAME=pretxnclose\n-  HG_HOOKTYPE=pretxnclose\n-  HG_PENDING=$TESTTMP/a\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=commit\n-  \n-  txnclose hook: HG_HOOKNAME=txnclose\n-  HG_HOOKTYPE=txnclose\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=commit\n-  \n-  commit hook: HG_HOOKNAME=commit\n-  HG_HOOKTYPE=commit\n-  HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2\n-  HG_PARENT1=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2\n-  HG_PARENT2=ab228980c14deea8b9555d91c9581127383e40fd\n-  \n-  commit.b hook: HG_HOOKNAME=commit.b\n-  HG_HOOKTYPE=commit\n-  HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2\n-  HG_PARENT1=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2\n-  HG_PARENT2=ab228980c14deea8b9555d91c9581127383e40fd\n-  \n+  /usr/bin/env: python3: $ENOENT$\n+  abort: precommit hook exited with status 127\n+  [255]\n \n test generic hooks\n \n   $ hg id\n-  pre-identify hook: HG_ARGS=id\n-  HG_HOOKNAME=pre-identify\n-  HG_HOOKTYPE=pre-identify\n-  HG_OPTS={\'bookmarks\': None, \'branch\': None, \'id\': None, \'insecure\': None, \'num\': None, \'remotecmd\': \'\', \'rev\': \'\', \'ssh\': \'\', \'tags\': None, \'template\': \'\'}\n-  HG_PATS=[]\n-  \n-  abort: pre-identify hook exited with status 1\n+  /usr/bin/env: python3: $ENOENT$\n+  abort: pre-identify hook exited with status 127\n   [255]\n   $ hg cat b\n-  pre-cat hook: HG_ARGS=cat b\n-  HG_HOOKNAME=pre-cat\n-  HG_HOOKTYPE=pre-cat\n-  HG_OPTS={\'decode\': None, \'exclude\': [], \'include\': [], \'output\': \'\', \'rev\': \'\', \'template\': \'\'}\n-  HG_PATS=[\'b\']\n-  \n-  b\n-  post-cat hook: HG_ARGS=cat b\n-  HG_HOOKNAME=post-cat\n-  HG_HOOKTYPE=post-cat\n-  HG_OPTS={\'decode\': None, \'exclude\': [], \'include\': [], \'output\': \'\', \'rev\': \'\', \'template\': \'\'}\n-  HG_PATS=[\'b\']\n-  HG_RESULT=0\n-  \n+  /usr/bin/env: python3: $ENOENT$\n+  abort: pre-cat hook exited with status 127\n+  [255]\n \n   $ cd ../b\n   $ hg pull ../a\n   pulling from ../a\n-  searching for changes\n-  prechangegroup hook: HG_HOOKNAME=prechangegroup\n-  HG_HOOKTYPE=prechangegroup\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/a (glob)\n-  HG_URL=file:$TESTTMP/a\n-  \n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 3 changesets with 2 changes to 2 files\n-  new changesets ab228980c14d:07f3376c1e65\n-  changegroup hook: HG_HOOKNAME=changegroup\n-  HG_HOOKTYPE=changegroup\n-  HG_NODE=ab228980c14deea8b9555d91c9581127383e40fd\n-  HG_NODE_LAST=07f3376c1e655977439df2a814e3cc14b27abac2\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/a (glob)\n-  HG_URL=file:$TESTTMP/a\n-  \n-  incoming hook: HG_HOOKNAME=incoming\n-  HG_HOOKTYPE=incoming\n-  HG_NODE=ab228980c14deea8b9555d91c9581127383e40fd\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/a (glob)\n-  HG_URL=file:$TESTTMP/a\n-  \n-  incoming hook: HG_HOOKNAME=incoming\n-  HG_HOOKTYPE=incoming\n-  HG_NODE=ee9deb46ab31e4cc3310f3cf0c3d668e4d8fffc2\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/a (glob)\n-  HG_URL=file:$TESTTMP/a\n-  \n-  incoming hook: HG_HOOKNAME=incoming\n-  HG_HOOKTYPE=incoming\n-  HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/a (glob)\n-  HG_URL=file:$TESTTMP/a\n-  \n-  (run \'hg update\' to get a working copy)\n+  no changes found\n \n tag hooks can see env vars\n \n@@ -308,68 +98,11 @@\n   > tag = sh -c "HG_PARENT1= HG_PARENT2= printenv.py --line tag"\n   > EOF\n   $ hg tag -d \'3 0\' a\n-  pretag hook: HG_HOOKNAME=pretag\n-  HG_HOOKTYPE=pretag\n-  HG_LOCAL=0\n-  HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2\n-  HG_TAG=a\n-  \n-  precommit hook: HG_HOOKNAME=precommit\n-  HG_HOOKTYPE=precommit\n-  HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2\n-  \n-  pretxnopen hook: HG_HOOKNAME=pretxnopen\n-  HG_HOOKTYPE=pretxnopen\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=commit\n-  \n-  pretxncommit hook: HG_HOOKNAME=pretxncommit\n-  HG_HOOKTYPE=pretxncommit\n-  HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10\n-  HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2\n-  HG_PENDING=$TESTTMP/a\n-  \n-  4:539e4b31b6dc\n-  pretxnclose hook: HG_HOOKNAME=pretxnclose\n-  HG_HOOKTYPE=pretxnclose\n-  HG_PENDING=$TESTTMP/a\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=commit\n-  \n-  tag hook: HG_HOOKNAME=tag\n-  HG_HOOKTYPE=tag\n-  HG_LOCAL=0\n-  HG_NODE=07f3376c1e655977439df2a814e3cc14b27abac2\n-  HG_TAG=a\n-  \n-  txnclose hook: HG_HOOKNAME=txnclose\n-  HG_HOOKTYPE=txnclose\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=commit\n-  \n-  commit hook: HG_HOOKNAME=commit\n-  HG_HOOKTYPE=commit\n-  HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10\n-  HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2\n-  \n-  commit.b hook: HG_HOOKNAME=commit.b\n-  HG_HOOKTYPE=commit\n-  HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10\n-  HG_PARENT1=07f3376c1e655977439df2a814e3cc14b27abac2\n-  \n+  abort: cannot tag null revision\n+  [10]\n   $ hg tag -l la\n-  pretag hook: HG_HOOKNAME=pretag\n-  HG_HOOKTYPE=pretag\n-  HG_LOCAL=1\n-  HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10\n-  HG_TAG=la\n-  \n-  tag hook: HG_HOOKNAME=tag\n-  HG_HOOKTYPE=tag\n-  HG_LOCAL=1\n-  HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10\n-  HG_TAG=la\n-  \n+  abort: cannot tag null revision\n+  [10]\n \n pretag hook can forbid tagging\n \n@@ -377,35 +110,11 @@\n   > pretag.forbid = sh -c "printenv.py --line pretag.forbid 1"\n   > EOF\n   $ hg tag -d \'4 0\' fa\n-  pretag hook: HG_HOOKNAME=pretag\n-  HG_HOOKTYPE=pretag\n-  HG_LOCAL=0\n-  HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10\n-  HG_TAG=fa\n-  \n-  pretag.forbid hook: HG_HOOKNAME=pretag.forbid\n-  HG_HOOKTYPE=pretag\n-  HG_LOCAL=0\n-  HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10\n-  HG_TAG=fa\n-  \n-  abort: pretag.forbid hook exited with status 1\n-  [255]\n+  abort: cannot tag null revision\n+  [10]\n   $ hg tag -l fla\n-  pretag hook: HG_HOOKNAME=pretag\n-  HG_HOOKTYPE=pretag\n-  HG_LOCAL=1\n-  HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10\n-  HG_TAG=fla\n-  \n-  pretag.forbid hook: HG_HOOKNAME=pretag.forbid\n-  HG_HOOKTYPE=pretag\n-  HG_LOCAL=1\n-  HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10\n-  HG_TAG=fla\n-  \n-  abort: pretag.forbid hook exited with status 1\n-  [255]\n+  abort: cannot tag null revision\n+  [10]\n \n pretxncommit hook can see changeset, can roll back txn, changeset no\n more there after\n@@ -417,57 +126,19 @@\n   $ echo z > z\n   $ hg add z\n   $ hg -q tip\n-  4:539e4b31b6dc\n+  -1:000000000000\n   $ hg commit -m \'fail\' -d \'4 0\'\n-  precommit hook: HG_HOOKNAME=precommit\n-  HG_HOOKTYPE=precommit\n-  HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10\n-  \n-  pretxnopen hook: HG_HOOKNAME=pretxnopen\n-  HG_HOOKTYPE=pretxnopen\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=commit\n-  \n-  pretxncommit hook: HG_HOOKNAME=pretxncommit\n-  HG_HOOKTYPE=pretxncommit\n-  HG_NODE=6f611f8018c10e827fee6bd2bc807f937e761567\n-  HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10\n-  HG_PENDING=$TESTTMP/a\n-  \n-  5:6f611f8018c1\n-  5:6f611f8018c1\n-  pretxncommit.forbid hook: HG_HOOKNAME=pretxncommit.forbid1\n-  HG_HOOKTYPE=pretxncommit\n-  HG_NODE=6f611f8018c10e827fee6bd2bc807f937e761567\n-  HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10\n-  HG_PENDING=$TESTTMP/a\n-  \n-  transaction abort!\n-  txnabort Python hook: changes,txnid,txnname\n-  txnabort hook: HG_HOOKNAME=txnabort.1\n-  HG_HOOKTYPE=txnabort\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=commit\n-  \n-  rollback completed\n-  abort: pretxncommit.forbid1 hook exited with status 1\n+  /usr/bin/env: python3: $ENOENT$\n+  abort: precommit hook exited with status 127\n   [255]\n   $ hg -q tip\n-  4:539e4b31b6dc\n+  -1:000000000000\n \n (Check that no \'changelog.i.a\' file were left behind)\n \n   $ ls -1 .hg/store/\n-  00changelog.i\n-  00manifest.i\n-  data\n   fncache (repofncache !)\n-  journal.phaseroots\n-  phaseroots\n-  undo\n   undo.backup.fncache (repofncache !)\n-  undo.backupfiles\n-  undo.phaseroots\n \n \n precommit hook can prevent commit\n@@ -476,18 +147,11 @@\n   > precommit.forbid = sh -c "printenv.py --line precommit.forbid 1"\n   > EOF\n   $ hg commit -m \'fail\' -d \'4 0\'\n-  precommit hook: HG_HOOKNAME=precommit\n-  HG_HOOKTYPE=precommit\n-  HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10\n-  \n-  precommit.forbid hook: HG_HOOKNAME=precommit.forbid\n-  HG_HOOKTYPE=precommit\n-  HG_PARENT1=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10\n-  \n-  abort: precommit.forbid hook exited with status 1\n+  /usr/bin/env: python3: $ENOENT$\n+  abort: precommit hook exited with status 127\n   [255]\n   $ hg -q tip\n-  4:539e4b31b6dc\n+  -1:000000000000\n \n preupdate hook can prevent update\n \n@@ -495,11 +159,8 @@\n   > preupdate = sh -c "printenv.py --line preupdate"\n   > EOF\n   $ hg update 1\n-  preupdate hook: HG_HOOKNAME=preupdate\n-  HG_HOOKTYPE=preupdate\n-  HG_PARENT1=ab228980c14d\n-  \n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: unknown revision \'1\'\n+  [255]\n \n update hook\n \n@@ -507,16 +168,9 @@\n   > update = sh -c "printenv.py --line update"\n   > EOF\n   $ hg update\n-  preupdate hook: HG_HOOKNAME=preupdate\n-  HG_HOOKTYPE=preupdate\n-  HG_PARENT1=539e4b31b6dc\n-  \n-  update hook: HG_ERROR=0\n-  HG_HOOKNAME=update\n-  HG_HOOKTYPE=update\n-  HG_PARENT1=539e4b31b6dc\n-  \n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  /usr/bin/env: python3: $ENOENT$\n+  abort: preupdate hook exited with status 127\n+  [255]\n \n pushkey hook\n \n@@ -527,46 +181,10 @@\n   $ hg bookmark -r null foo\n   $ hg push -B foo ../a\n   pushing to ../a\n-  searching for changes\n-  no changes found\n-  pretxnopen hook: HG_HOOKNAME=pretxnopen\n-  HG_HOOKTYPE=pretxnopen\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=push\n-  \n-  pretxnclose hook: HG_BOOKMARK_MOVED=1\n-  HG_BUNDLE2=1\n-  HG_HOOKNAME=pretxnclose\n-  HG_HOOKTYPE=pretxnclose\n-  HG_PENDING=$TESTTMP/a\n-  HG_SOURCE=push\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=push\n-  HG_URL=file:$TESTTMP/a\n-  \n-  pushkey hook: HG_BUNDLE2=1\n-  HG_HOOKNAME=pushkey\n-  HG_HOOKTYPE=pushkey\n-  HG_KEY=foo\n-  HG_NAMESPACE=bookmarks\n-  HG_NEW=0000000000000000000000000000000000000000\n-  HG_PUSHKEYCOMPAT=1\n-  HG_SOURCE=push\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=push\n-  HG_URL=file:$TESTTMP/a\n-  \n-  txnclose hook: HG_BOOKMARK_MOVED=1\n-  HG_BUNDLE2=1\n-  HG_HOOKNAME=txnclose\n-  HG_HOOKTYPE=txnclose\n-  HG_SOURCE=push\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=push\n-  HG_URL=file:$TESTTMP/a\n-  \n-  exporting bookmark foo\n-  [1]\n+  no changes found\n+  /usr/bin/env: python3: $ENOENT$\n+  abort: pretxnopen hook exited with status 127\n+  [255]\n   $ cd ../a\n \n listkeys hook\n@@ -575,34 +193,16 @@\n   > listkeys = sh -c "printenv.py --line listkeys"\n   > EOF\n   $ hg bookmark -r null bar\n-  pretxnopen hook: HG_HOOKNAME=pretxnopen\n-  HG_HOOKTYPE=pretxnopen\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=bookmark\n-  \n-  pretxnclose hook: HG_BOOKMARK_MOVED=1\n-  HG_HOOKNAME=pretxnclose\n-  HG_HOOKTYPE=pretxnclose\n-  HG_PENDING=$TESTTMP/a\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=bookmark\n-  \n-  txnclose hook: HG_BOOKMARK_MOVED=1\n-  HG_HOOKNAME=txnclose\n-  HG_HOOKTYPE=txnclose\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=bookmark\n-  \n+  /usr/bin/env: python3: $ENOENT$\n+  abort: pretxnopen hook exited with status 127\n+  [255]\n   $ cd ../b\n   $ hg pull -B bar ../a\n   pulling from ../a\n-  listkeys hook: HG_HOOKNAME=listkeys\n-  HG_HOOKTYPE=listkeys\n-  HG_NAMESPACE=bookmarks\n-  HG_VALUES={\'bar\': \'0000000000000000000000000000000000000000\', \'foo\': \'0000000000000000000000000000000000000000\'}\n-  \n-  no changes found\n-  adding remote bookmark bar\n+  /usr/bin/env: python3: $ENOENT$\n+  warning: listkeys hook exited with status 127\n+  abort: remote bookmark bar not found!\n+  [10]\n   $ cd ../a\n \n test that prepushkey can prevent incoming keys\n@@ -614,36 +214,13 @@\n   $ hg bookmark -r null baz\n   $ hg push -B baz ../a\n   pushing to ../a\n-  searching for changes\n-  listkeys hook: HG_HOOKNAME=listkeys\n-  HG_HOOKTYPE=listkeys\n-  HG_NAMESPACE=phases\n-  HG_VALUES={\'cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b\': \'1\', \'publishing\': \'True\'}\n-  \n-  listkeys hook: HG_HOOKNAME=listkeys\n-  HG_HOOKTYPE=listkeys\n-  HG_NAMESPACE=bookmarks\n-  HG_VALUES={\'bar\': \'0000000000000000000000000000000000000000\', \'foo\': \'0000000000000000000000000000000000000000\'}\n-  \n-  no changes found\n-  pretxnopen hook: HG_HOOKNAME=pretxnopen\n-  HG_HOOKTYPE=pretxnopen\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=push\n-  \n-  prepushkey.forbid hook: HG_BUNDLE2=1\n-  HG_HOOKNAME=prepushkey\n-  HG_HOOKTYPE=prepushkey\n-  HG_KEY=baz\n-  HG_NAMESPACE=bookmarks\n-  HG_NEW=0000000000000000000000000000000000000000\n-  HG_PUSHKEYCOMPAT=1\n-  HG_SOURCE=push\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=push\n-  HG_URL=file:$TESTTMP/a\n-  \n-  abort: prepushkey hook exited with status 1\n+  /usr/bin/env: python3: $ENOENT$\n+  warning: listkeys hook exited with status 127\n+  /usr/bin/env: python3: $ENOENT$\n+  warning: listkeys hook exited with status 127\n+  no changes found\n+  /usr/bin/env: python3: $ENOENT$\n+  abort: pretxnopen hook exited with status 127\n   [255]\n   $ cd ../a\n \n@@ -653,32 +230,14 @@\n   > prelistkeys = sh -c "printenv.py --line prelistkeys.forbid 1"\n   > EOF\n   $ hg bookmark -r null quux\n-  pretxnopen hook: HG_HOOKNAME=pretxnopen\n-  HG_HOOKTYPE=pretxnopen\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=bookmark\n-  \n-  pretxnclose hook: HG_BOOKMARK_MOVED=1\n-  HG_HOOKNAME=pretxnclose\n-  HG_HOOKTYPE=pretxnclose\n-  HG_PENDING=$TESTTMP/a\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=bookmark\n-  \n-  txnclose hook: HG_BOOKMARK_MOVED=1\n-  HG_HOOKNAME=txnclose\n-  HG_HOOKTYPE=txnclose\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=bookmark\n-  \n+  /usr/bin/env: python3: $ENOENT$\n+  abort: pretxnopen hook exited with status 127\n+  [255]\n   $ cd ../b\n   $ hg pull -B quux ../a\n   pulling from ../a\n-  prelistkeys.forbid hook: HG_HOOKNAME=prelistkeys\n-  HG_HOOKTYPE=prelistkeys\n-  HG_NAMESPACE=bookmarks\n-  \n-  abort: prelistkeys hook exited with status 1\n+  /usr/bin/env: python3: $ENOENT$\n+  abort: prelistkeys hook exited with status 127\n   [255]\n   $ cd ../a\n   $ rm .hg/hgrc\n@@ -687,24 +246,14 @@\n \n   $ cd ../b\n   $ hg -q tip\n-  3:07f3376c1e65\n+  -1:000000000000\n   $ cat > .hg/hgrc <<EOF\n   > [hooks]\n   > prechangegroup.forbid = sh -c "printenv.py --line prechangegroup.forbid 1"\n   > EOF\n   $ hg pull ../a\n   pulling from ../a\n-  searching for changes\n-  prechangegroup.forbid hook: HG_HOOKNAME=prechangegroup.forbid\n-  HG_HOOKTYPE=prechangegroup\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/a (glob)\n-  HG_URL=file:$TESTTMP/a\n-  \n-  abort: prechangegroup.forbid hook exited with status 1\n-  [255]\n+  no changes found\n \n pretxnchangegroup hook can see incoming changes, can roll back txn,\n incoming changes no longer there after\n@@ -716,28 +265,9 @@\n   > EOF\n   $ hg pull ../a\n   pulling from ../a\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  4:539e4b31b6dc\n-  pretxnchangegroup.forbid hook: HG_HOOKNAME=pretxnchangegroup.forbid1\n-  HG_HOOKTYPE=pretxnchangegroup\n-  HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10\n-  HG_NODE_LAST=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10\n-  HG_PENDING=$TESTTMP/b\n-  HG_SOURCE=pull\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=pull\n-  file:/*/$TESTTMP/a (glob)\n-  HG_URL=file:$TESTTMP/a\n-  \n-  transaction abort!\n-  rollback completed\n-  abort: pretxnchangegroup.forbid1 hook exited with status 1\n-  [255]\n+  no changes found\n   $ hg -q tip\n-  3:07f3376c1e65\n+  -1:000000000000\n \n outgoing hooks can see env vars\n \n@@ -749,25 +279,9 @@\n   > EOF\n   $ hg pull ../a\n   pulling from ../a\n-  searching for changes\n-  preoutgoing hook: HG_HOOKNAME=preoutgoing\n-  HG_HOOKTYPE=preoutgoing\n-  HG_SOURCE=pull\n-  \n-  outgoing hook: HG_HOOKNAME=outgoing\n-  HG_HOOKTYPE=outgoing\n-  HG_NODE=539e4b31b6dc99b3cfbaa6b53cbc1c1f9a1e3a10\n-  HG_SOURCE=pull\n-  \n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  adding remote bookmark quux\n-  added 1 changesets with 1 changes to 1 files\n-  new changesets 539e4b31b6dc\n-  (run \'hg update\' to get a working copy)\n+  no changes found\n   $ hg rollback\n-  repository tip rolled back to revision 3 (undo pull)\n+  repository tip rolled back to revision -1 (undo bookmark)\n \n preoutgoing hook can prevent outgoing changes\n \n@@ -776,17 +290,7 @@\n   > EOF\n   $ hg pull ../a\n   pulling from ../a\n-  searching for changes\n-  preoutgoing hook: HG_HOOKNAME=preoutgoing\n-  HG_HOOKTYPE=preoutgoing\n-  HG_SOURCE=pull\n-  \n-  preoutgoing.forbid hook: HG_HOOKNAME=preoutgoing.forbid\n-  HG_HOOKTYPE=preoutgoing\n-  HG_SOURCE=pull\n-  \n-  abort: preoutgoing.forbid hook exited with status 1\n-  [255]\n+  no changes found\n \n outgoing hooks work for local clones\n \n@@ -797,17 +301,9 @@\n   > outgoing = sh -c "printenv.py --line outgoing"\n   > EOF\n   $ hg clone a c\n-  preoutgoing hook: HG_HOOKNAME=preoutgoing\n-  HG_HOOKTYPE=preoutgoing\n-  HG_SOURCE=clone\n-  \n-  outgoing hook: HG_HOOKNAME=outgoing\n-  HG_HOOKTYPE=outgoing\n-  HG_NODE=0000000000000000000000000000000000000000\n-  HG_SOURCE=clone\n-  \n-  updating to branch default\n-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  /usr/bin/env: python3: $ENOENT$\n+  abort: preoutgoing hook exited with status 127\n+  [255]\n   $ rm -rf c\n \n preoutgoing hook can prevent outgoing changes for local clones\n@@ -816,15 +312,8 @@\n   > preoutgoing.forbid = sh -c "printenv.py --line preoutgoing.forbid 1"\n   > EOF\n   $ hg clone a zzz\n-  preoutgoing hook: HG_HOOKNAME=preoutgoing\n-  HG_HOOKTYPE=preoutgoing\n-  HG_SOURCE=clone\n-  \n-  preoutgoing.forbid hook: HG_HOOKNAME=preoutgoing.forbid\n-  HG_HOOKTYPE=preoutgoing\n-  HG_SOURCE=clone\n-  \n-  abort: preoutgoing.forbid hook exited with status 1\n+  /usr/bin/env: python3: $ENOENT$\n+  abort: preoutgoing hook exited with status 127\n   [255]\n \n   $ cd "$TESTTMP/b"\n@@ -890,98 +379,68 @@\n   $ echo \'[hooks]\' > ../a/.hg/hgrc\n   $ echo \'preoutgoing.broken = python:hooktests.brokenhook\' >> ../a/.hg/hgrc\n   $ hg pull ../a 2>&1 | grep \'raised an exception\'\n-  error: preoutgoing.broken hook raised an exception: unsupported operand type(s) for +: \'int\' and \'dict\'\n+  [1]\n \n   $ echo \'[hooks]\' > ../a/.hg/hgrc\n   $ echo \'preoutgoing.raise = python:hooktests.raisehook\' >> ../a/.hg/hgrc\n   $ hg pull ../a 2>&1 | grep \'raised an exception\'\n-  error: preoutgoing.raise hook raised an exception: exception from hook\n+  [1]\n \n   $ echo \'[hooks]\' > ../a/.hg/hgrc\n   $ echo \'preoutgoing.abort = python:hooktests.aborthook\' >> ../a/.hg/hgrc\n   $ hg pull ../a\n   pulling from ../a\n-  searching for changes\n-  error: preoutgoing.abort hook failed: raise abort from hook\n-  abort: raise abort from hook\n-  [255]\n+  no changes found\n \n   $ echo \'[hooks]\' > ../a/.hg/hgrc\n   $ echo \'preoutgoing.fail = python:hooktests.failhook\' >> ../a/.hg/hgrc\n   $ hg pull ../a\n   pulling from ../a\n-  searching for changes\n-  hook args:\n-    hooktype preoutgoing\n-    source pull\n-  abort: preoutgoing.fail hook failed\n-  [255]\n+  no changes found\n \n   $ echo \'[hooks]\' > ../a/.hg/hgrc\n   $ echo \'preoutgoing.uncallable = python:hooktests.uncallable\' >> ../a/.hg/hgrc\n   $ hg pull ../a\n   pulling from ../a\n-  searching for changes\n-  abort: preoutgoing.uncallable hook is invalid: "hooktests.uncallable" is not callable\n-  [255]\n+  no changes found\n \n   $ echo \'[hooks]\' > ../a/.hg/hgrc\n   $ echo \'preoutgoing.nohook = python:hooktests.nohook\' >> ../a/.hg/hgrc\n   $ hg pull ../a\n   pulling from ../a\n-  searching for changes\n-  abort: preoutgoing.nohook hook is invalid: "hooktests.nohook" is not defined\n-  [255]\n+  no changes found\n \n   $ echo \'[hooks]\' > ../a/.hg/hgrc\n   $ echo \'preoutgoing.nomodule = python:nomodule\' >> ../a/.hg/hgrc\n   $ hg pull ../a\n   pulling from ../a\n-  searching for changes\n-  abort: preoutgoing.nomodule hook is invalid: "nomodule" not in a module\n-  [255]\n+  no changes found\n \n   $ echo \'[hooks]\' > ../a/.hg/hgrc\n   $ echo \'preoutgoing.badmodule = python:nomodule.nowhere\' >> ../a/.hg/hgrc\n   $ hg pull ../a\n   pulling from ../a\n-  searching for changes\n-  abort: preoutgoing.badmodule hook is invalid: import of "nomodule" failed\n-  (run with --traceback for stack trace)\n-  [255]\n+  no changes found\n \n   $ echo \'[hooks]\' > ../a/.hg/hgrc\n   $ echo \'preoutgoing.unreachable = python:hooktests.container.unreachable\' >> ../a/.hg/hgrc\n   $ hg pull ../a\n   pulling from ../a\n-  searching for changes\n-  abort: preoutgoing.unreachable hook is invalid: import of "hooktests.container" failed\n-  (run with --traceback for stack trace)\n-  [255]\n+  no changes found\n \n   $ echo \'[hooks]\' > ../a/.hg/hgrc\n   $ echo \'preoutgoing.syntaxerror = python:syntaxerror.syntaxerror\' >> ../a/.hg/hgrc\n   $ hg pull ../a\n   pulling from ../a\n-  searching for changes\n-  abort: preoutgoing.syntaxerror hook is invalid: import of "syntaxerror" failed\n-  (run with --traceback for stack trace)\n-  [255]\n+  no changes found\n \n   $ hg pull ../a --traceback 2>&1 | egrep \'pulling|searching|^exception|Traceback|SyntaxError|ImportError|ModuleNotFoundError|HookLoadError|abort\'\n   pulling from ../a\n-  searching for changes\n-  exception from first failed import attempt:\n-  Traceback (most recent call last):\n-  SyntaxError: * (glob)\n-  exception from second failed import attempt:\n   Traceback (most recent call last): (py3 !)\n   SyntaxError: * (glob) (py3 !)\n-  Traceback (most recent call last):\n   ImportError: No module named hgext_syntaxerror (no-py3 !)\n   ImportError: No module named \'hgext_syntaxerror\' (py3 no-py36 !)\n   ModuleNotFoundError: No module named \'hgext_syntaxerror\' (py36 !)\n-  Traceback (most recent call last):\n   SyntaxError: * (glob) (py3 !)\n   Traceback (most recent call last): (py3 !)\n   ImportError: No module named \'hgext_syntaxerror\' (py3 no-py36 !)\n@@ -990,23 +449,12 @@\n   HookLoadError: preoutgoing.syntaxerror hook is invalid: import of "syntaxerror" failed (no-py3 !)\n       raise error.HookLoadError( (py38 !)\n   mercurial.error.HookLoadError: preoutgoing.syntaxerror hook is invalid: import of "syntaxerror" failed (py3 !)\n-  abort: preoutgoing.syntaxerror hook is invalid: import of "syntaxerror" failed\n \n   $ echo \'[hooks]\' > ../a/.hg/hgrc\n   $ echo \'preoutgoing.pass = python:hooktests.passhook\' >> ../a/.hg/hgrc\n   $ hg pull ../a\n   pulling from ../a\n-  searching for changes\n-  hook args:\n-    hooktype preoutgoing\n-    source pull\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  adding remote bookmark quux\n-  added 1 changesets with 1 changes to 1 files\n-  new changesets 539e4b31b6dc\n-  (run \'hg update\' to get a working copy)\n+  no changes found\n \n post- python hooks that fail to *run* don\'t cause an abort\n   $ rm ../a/.hg/hgrc\n@@ -1014,7 +462,6 @@\n   $ echo \'post-pull.broken = python:hooktests.brokenhook\' >> .hg/hgrc\n   $ hg pull ../a\n   pulling from ../a\n-  searching for changes\n   no changes found\n   error: post-pull.broken hook raised an exception: unsupported operand type(s) for +: \'int\' and \'dict\'\n   (run with --traceback for stack trace)\n@@ -1024,7 +471,6 @@\n   $ echo \'post-pull.nomodule = python:nomodule\' >> .hg/hgrc\n   $ hg pull ../a\n   pulling from ../a\n-  searching for changes\n   no changes found\n   abort: post-pull.nomodule hook is invalid: "nomodule" not in a module\n   [255]\n@@ -1033,7 +479,6 @@\n   $ echo \'post-pull.badmodule = python:nomodule.nowhere\' >> .hg/hgrc\n   $ hg pull ../a\n   pulling from ../a\n-  searching for changes\n   no changes found\n   abort: post-pull.badmodule hook is invalid: import of "nomodule" failed\n   (run with --traceback for stack trace)\n@@ -1043,7 +488,6 @@\n   $ echo \'post-pull.nohook = python:hooktests.nohook\' >> .hg/hgrc\n   $ hg pull ../a\n   pulling from ../a\n-  searching for changes\n   no changes found\n   abort: post-pull.nohook hook is invalid: "hooktests.nohook" is not defined\n   [255]\n@@ -1055,7 +499,7 @@\n \n   $ echo aa > a\n   $ hg --traceback commit -d \'0 0\' -ma 2>&1 | grep \'^Traceback\'\n-  Traceback (most recent call last):\n+  [1]\n \n   $ cd ..\n   $ hg init c\n@@ -1124,6 +568,7 @@\n   loading pre-identify.npmd hook failed:\n   abort: No module named repo (no-py3 !)\n   abort: No module named \'repo\' (py3 !)\n+  abort: No module named repo\n   [255]\n \n   $ cd ../../b\n@@ -1141,12 +586,9 @@\n \n   $ echo a >> a\n   $ hg --traceback commit -ma 2>&1 | egrep \'^exception|ImportError|ModuleNotFoundError|Traceback|HookLoadError|abort\'\n-  exception from first failed import attempt:\n-  Traceback (most recent call last):\n   ImportError: No module named somebogusmodule (no-py3 !)\n   ImportError: No module named \'somebogusmodule\' (py3 no-py36 !)\n   ModuleNotFoundError: No module named \'somebogusmodule\' (py36 !)\n-  exception from second failed import attempt:\n   Traceback (most recent call last): (py3 !)\n   ImportError: No module named \'somebogusmodule\' (py3 no-py36 !)\n   ModuleNotFoundError: No module named \'somebogusmodule\' (py36 !)\n@@ -1156,15 +598,13 @@\n   Traceback (most recent call last): (py3 !)\n   ImportError: No module named \'somebogusmodule\' (py3 no-py36 !)\n   ModuleNotFoundError: No module named \'somebogusmodule\' (py36 !)\n-  Traceback (most recent call last):\n   ImportError: No module named hgext_importfail (no-py3 !)\n   ImportError: No module named \'hgext_importfail\' (py3 no-py36 !)\n   ModuleNotFoundError: No module named \'hgext_importfail\' (py36 !)\n-  Traceback (most recent call last):\n   HookLoadError: precommit.importfail hook is invalid: import of "importfail" failed (no-py3 !)\n       raise error.HookLoadError( (py38 !)\n   mercurial.error.HookLoadError: precommit.importfail hook is invalid: import of "importfail" failed (py3 !)\n-  abort: precommit.importfail hook is invalid: import of "importfail" failed\n+  [1]\n \n Issue1827: Hooks Update & Commit not completely post operation\n \n@@ -1177,11 +617,12 @@\n   $ echo \'update = hg id\' >> .hg/hgrc\n   $ echo bb > a\n   $ hg ci -ma\n-  223eafe2750c tip\n+  nothing changed\n+  [1]\n   $ hg up 0 --config extensions.largefiles=\n   The fsmonitor extension is incompatible with the largefiles extension and has been disabled. (fsmonitor !)\n-  cb9a9f314b8b\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  000000000000 tip foo\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n \n make sure --verbose (and --quiet/--debug etc.) are propagated to the local ui\n that is passed to pre/post hooks\n@@ -1189,11 +630,11 @@\n   $ echo \'[hooks]\' > .hg/hgrc\n   $ echo \'pre-identify = python:hooktests.verbosehook\' >> .hg/hgrc\n   $ hg id\n-  cb9a9f314b8b\n+  000000000000 tip foo\n   $ hg id --verbose\n   calling hook pre-identify: hooktests.verbosehook\n   verbose output from hook\n-  cb9a9f314b8b\n+  000000000000 tip foo\n \n Ensure hooks can be prioritized\n \n@@ -1209,13 +650,14 @@\n   verbose output from hook\n   calling hook pre-identify.c: hooktests.verbosehook\n   verbose output from hook\n-  cb9a9f314b8b\n+  000000000000 tip foo\n \n new tags must be visible in pretxncommit (issue3210)\n \n   $ echo \'pretxncommit.printtags = python:hooktests.printtags\' >> .hg/hgrc\n   $ hg tag -f foo\n-  [a, foo, tip]\n+  abort: cannot tag null revision\n+  [10]\n \n post-init hooks must not crash (issue4983)\n This also creates the `to` repo for the next test block.\n@@ -1226,13 +668,8 @@\n   > post-init = sh -c "printenv.py --line post-init"\n   > EOF\n   $ HGRCPATH=hgrc-with-post-init-hook hg init to\n-  post-init hook: HG_ARGS=init to\n-  HG_HOOKNAME=post-init\n-  HG_HOOKTYPE=post-init\n-  HG_OPTS={\'insecure\': None, \'remotecmd\': \'\', \'ssh\': \'\'}\n-  HG_PATS=[\'to\']\n-  HG_RESULT=0\n-  \n+  /usr/bin/env: python3: $ENOENT$\n+  warning: post-init hook exited with status 127\n \n new commits must be visible in pretxnchangegroup (issue3428)\n \n@@ -1279,14 +716,58 @@\n   $ hg strip -r 0 --config extensions.strip=\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n   saved backup bundle to * (glob)\n-  transaction abort!\n-  rollback completed\n-  strip failed, backup bundle stored in * (glob)\n-  abort: pretxnclose.error hook exited with status 1\n-  [255]\n+  strip failed, backup bundle stored in \'$TESTTMP\\txnfailure\\.hg\\strip-backup/3903775176ed-54390173-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg recover\n-  no interrupted transaction available\n-  [1]\n+  rolling back interrupted transaction\n+  (verify step skipped, run `hg verify` to check your repository content)\n   $ cd ..\n \n check whether HG_PENDING makes pending changes only in related\n@@ -1301,12 +782,62 @@\n   > EOF\n   $ cd a\n   $ hg tip -q\n-  4:539e4b31b6dc\n+  -1:000000000000\n   $ hg --config hooks.pretxnclose="sh $TESTTMP/savepending.sh" commit -m "invisible"\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnclose hook exited with status 1\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2127, in _docommit\n+      node = cmdutil.commit(ui, repo, commitfunc, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2754, in commit\n+      return commitfunc(ui, repo, message, matcher, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2124, in commitfunc\n+      extra=extra,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cp .hg/store/00changelog.i.a.saved .hg/store/00changelog.i.a\n \n (check (in)visibility of new changeset while transaction running in\n@@ -1325,13 +856,63 @@\n   $ hg add a\n   $ hg --config hooks.pretxnclose="sh $TESTTMP/checkpending.sh" commit -m \'#0\'\n   @a\n-  4:539e4b31b6dc\n+  -1:000000000000\n   @a/nested\n   0:bf5e395ced2c\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnclose hook exited with status 1\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2127, in _docommit\n+      node = cmdutil.commit(ui, repo, commitfunc, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2754, in commit\n+      return commitfunc(ui, repo, message, matcher, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2124, in commitfunc\n+      extra=extra,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Hook from untrusted hgrc are reported as failure\n ================================================\n@@ -1378,10 +959,8 @@\n   > pretxnclose.testing=echo pre-txnclose hook called\n   > EOF\n   $ touch b && hg commit -Aqm a\n-  transaction abort!\n-  rollback completed\n-  abort: untrusted hook pretxnclose.testing not executed\n-  (see \'hg help config.trusted\')\n+  abort: $TESTTMP\\a\\nested\\untrusted\\.hg\\dirstate.pending: $ENOENT$.\n+  Exception OSError: OSError(2, \'C:\\\\Temp\\\\hgtests.dstqqw\\\\child117\\\\test-hook.t\\\\a\\\\nested\\\\untrusted\\\\.hg\\\\dirstate.pending: $ENOENT$.\') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x0000000001724E88>> ignored\n   [255]\n   $ hg log\n   changeset:   0:3903775176ed\n', 34500, 34502, 'truncated \\uXXXX escape') decoding diff, sorry

test-hooklib-enforce_draft_commits.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-hooklib-enforce_draft_commits.t\n+++ c:/hgdev/src/tests/test-hooklib-enforce_draft_commits.t.err\n@@ -21,25 +21,67 @@\n   adding manifests\n   adding file changes\n   error: pretxnclose-phase.enforce_draft_commits hook failed: New changeset 1ea73414a91b in phase \'public\' rejected\n-  transaction abort!\n-  rollback completed\n-  abort: New changeset 1ea73414a91b in phase \'public\' rejected\n-  [255]\n+  ** Unknown exception encountered with possibly-broken third-party extension "hooklib" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "hooklib" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: hooklib\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 5398, in pull\n+      confirm=opts.get(b\'confirm\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1634, in pull\n+      _pullobsolete(pullop)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1462, in release\n+      self._tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg --cwd a phase --force --draft 0\n   $ hg --cwd b pull ../a\n   pulling from ../a\n   requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files\n-  new changesets 1ea73414a91b (1 drafts)\n-  (run \'hg update\' to get a working copy)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg --cwd a phase --public 0\n   $ hg --cwd b pull ../a\n   pulling from ../a\n-  searching for changes\n-  no changes found\n-  error: pretxnclose-phase.enforce_draft_commits hook failed: Phase change from \'draft\' to \'public\' for 1ea73414a91b rejected\n-  abort: Phase change from \'draft\' to \'public\' for 1ea73414a91b rejected\n+  requesting all changes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n', 2497, 2499, 'truncated \\uXXXX escape') decoding diff, sorry

test-hooklib-reject_merge_commits.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-hooklib-reject_merge_commits.t\n+++ c:/hgdev/src/tests/test-hooklib-reject_merge_commits.t.err\n@@ -55,24 +55,63 @@\n   adding manifests\n   adding file changes\n   error: pretxnchangegroup.reject_merge_commits hook failed: a6b287721c3b rejected as merge on the same branch. Please consider rebase.\n-  transaction abort!\n-  rollback completed\n-  abort: a6b287721c3b rejected as merge on the same branch. Please consider rebase.\n-  [255]\n+  ** Unknown exception encountered with possibly-broken third-party extension "hooklib" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "hooklib" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: hooklib\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 5398, in pull\n+      confirm=opts.get(b\'confirm\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1634, in pull\n+      _pullobsolete(pullop)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1462, in release\n+      self._tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg --cwd b pull ../a -r 1ea73414a91b\n   pulling from ../a\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files\n-  new changesets 1ea73414a91b (1 drafts)\n-  (run \'hg update\' to get a working copy)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg --cwd b pull ../a -r a9fb040caedd\n   pulling from ../a\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 3 changesets with 0 changes to 0 files\n-  new changesets 66f7d451a68b:a9fb040caedd (3 drafts)\n-  (run \'hg update\' to get a working copy)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n', 2536, 2538, 'truncated \\uXXXX escape') decoding diff, sorry

test-hooklib-reject_new_heads.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-hooklib-reject_new_heads.t\n+++ c:/hgdev/src/tests/test-hooklib-reject_new_heads.t.err\n@@ -39,15 +39,58 @@\n   adding manifests\n   adding file changes\n   error: pretxnclose.reject_new_heads hook failed: Changes on branch \'default\' resulted in multiple heads\n-  transaction abort!\n-  rollback completed\n-  abort: Changes on branch \'default\' resulted in multiple heads\n-  [255]\n+  ** Unknown exception encountered with possibly-broken third-party extension "hooklib" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "hooklib" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: hooklib\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 5398, in pull\n+      confirm=opts.get(b\'confirm\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1634, in pull\n+      _pullobsolete(pullop)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1462, in release\n+      self._tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg --cwd b pull ../a -r 1ea73414a91b\n   pulling from ../a\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files\n-  new changesets 1ea73414a91b (1 drafts)\n-  (run \'hg update\' to get a working copy)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n', 2478, 2480, 'truncated \\uXXXX escape') decoding diff, sorry

test-http-branchmap.t

--- c:/hgdev/src/tests/test-http-branchmap.t
+++ c:/hgdev/src/tests/test-http-branchmap.t.err
@@ -54,6 +54,8 @@
   summary:     foo
   
   $ killdaemons.py hg.pid
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
 verify 7e7d56fe4833 (encoding fallback in branchmap to maintain compatibility with 1.3.x)
 

test-http-permissions.t

test-impexp-branch.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-impexp-branch.t\n+++ c:/hgdev/src/tests/test-impexp-branch.t.err\n@@ -73,11 +73,61 @@\n \n   $ hg strip --no-backup .\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   >>> import re\n   >>> p = open(\'../r1.patch\', \'rb\').read()\n   >>> p = re.sub(br\'Parent\\s+\', b\'Parent \', p)\n   >>> open(\'../r1-ws.patch\', \'wb\').write(p) and None\n   $ hg import --exact ../r1-ws.patch\n-  applying ../r1-ws.patch\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ cd ..\n', 2116, 2118, 'truncated \\uXXXX escape') decoding diff, sorry

test-import-bypass.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-import-bypass.t\n+++ c:/hgdev/src/tests/test-import-bypass.t.err\n@@ -42,8 +42,50 @@\n   applying ../test.diff\n   unable to find \'a\' for patching\n   (use \'--prefix\' to apply patch relative to the current directory)\n-  abort: patch failed to apply\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: purge\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4163, in import_\n+      repo.savecommitmessage(b\'\\n* * *\\n\'.join(msgs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg st\n   $ shortlog\n   o  1:4e322f7ce8e3 test 0 0 - foo - changea\n@@ -56,14 +98,14 @@\n   $ hg up 0\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg import --bypass --u test2 -d \'1 0\' -m patch2 ../test.diff\n-  applying ../test.diff\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat .hg/last-message.txt\n-  patch2 (no-eol)\n-  $ shortlog\n-  o  2:2e127d1da504 test2 1 0 - default - patch2\n-  |\n-  | o  1:4e322f7ce8e3 test 0 0 - foo - changea\n-  |/\n+  changea (no-eol)\n+  $ shortlog\n+  o  1:4e322f7ce8e3 test 0 0 - foo - changea\n+  |\n   @  0:07f494440405 test 0 0 - default - adda\n   \n   $ hg rollback\n@@ -74,14 +116,17 @@\n patch contains the commit message, regardless of \'--edit\')\n \n   $ HGEDITOR=cat hg import --bypass --import-branch --edit ../test.diff\n-  applying ../test.diff\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ shortlog\n   o  1:4e322f7ce8e3 test 0 0 - foo - changea\n   |\n   @  0:07f494440405 test 0 0 - default - adda\n   \n   $ hg rollback\n-  repository tip rolled back to revision 1 (undo import)\n+  no rollback information available\n+  [1]\n \n Test --strip\n \n@@ -101,9 +146,12 @@\n   >  a\n   > +a\n   > EOF\n-  applying patch from stdin\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg rollback\n-  repository tip rolled back to revision 1 (undo import)\n+  no rollback information available\n+  [1]\n \n Test --strip with --bypass\n \n@@ -115,12 +163,13 @@\n   adding dir/d\n   adding dir/dir2/b\n   adding dir/dir2/c\n-  $ shortlog\n-  @  2:d805bc8236b6 test 0 0 - default - addabcd\n-  |\n-  | o  1:4e322f7ce8e3 test 0 0 - foo - changea\n-  |/\n-  o  0:07f494440405 test 0 0 - default - adda\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ shortlog\n+  o  1:4e322f7ce8e3 test 0 0 - foo - changea\n+  |\n+  @  0:07f494440405 test 0 0 - default - adda\n   \n   $ hg import --bypass --strip 2 --prefix dir/ - <<EOF\n   > # HG changeset patch\n@@ -150,40 +199,23 @@\n   > @@ -1,1 +0,0 @@\n   > -d\n   > EOF\n-  applying patch from stdin\n-\n-  $ shortlog\n-  o  3:5bd46886ca3e test 0 0 - default - changeabcd\n-  |\n-  @  2:d805bc8236b6 test 0 0 - default - addabcd\n-  |\n-  | o  1:4e322f7ce8e3 test 0 0 - foo - changea\n-  |/\n-  o  0:07f494440405 test 0 0 - default - adda\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+  $ shortlog\n+  o  1:4e322f7ce8e3 test 0 0 - foo - changea\n+  |\n+  @  0:07f494440405 test 0 0 - default - adda\n   \n   $ hg diff --change 3 --git\n-  diff --git a/dir/a b/dir/a\n-  new file mode 100644\n-  --- /dev/null\n-  +++ b/dir/a\n-  @@ -0,0 +1,1 @@\n-  +a\n-  diff --git a/dir/d b/dir/d\n-  deleted file mode 100644\n-  --- a/dir/d\n-  +++ /dev/null\n-  @@ -1,1 +0,0 @@\n-  -d\n-  diff --git a/dir/dir2/b b/dir/dir2/b2\n-  rename from dir/dir2/b\n-  rename to dir/dir2/b2\n-  diff --git a/dir/dir2/c b/dir/dir2/c\n-  --- a/dir/dir2/c\n-  +++ b/dir/dir2/c\n-  @@ -1,1 +1,2 @@\n-   cc\n-  +cc\n+  abort: unknown revision \'3\'\n+  [255]\n   $ hg -q --config extensions.strip= strip .\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo-options\\.hg\\strip-backup/07f494440405-4394d8b1-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Test unsupported combinations\n \n@@ -211,17 +243,9 @@\n   > +c\n   > EOF\n   $ HGEDITOR=cat hg import --bypass ../test.diff\n-  applying ../test.diff\n-  \n-  \n-  HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  HG: Leave message empty to abort commit.\n-  HG: --\n-  HG: user: test\n-  HG: branch \'default\'\n-  HG: changed a\n-  abort: empty commit message\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Test patch.eol is handled\n (this also tests that editor is not invoked for \'--bypass\', if the\n@@ -229,21 +253,19 @@\n \n   $ "$PYTHON" -c \'open("a", "wb").write(b"a\\r\\n")\'\n   $ hg ci -m makeacrlf\n+  nothing changed\n+  [1]\n   $ HGEDITOR=cat hg import -m \'should fail because of eol\' --edit --bypass ../test.diff\n-  applying ../test.diff\n-  patching file a\n-  Hunk #1 FAILED at 0\n-  abort: patch failed to apply\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg --config patch.eol=auto import -d \'0 0\' -m \'test patch.eol\' --bypass ../test.diff\n-  applying ../test.diff\n-  $ shortlog\n-  o  3:c606edafba99 test 0 0 - default - test patch.eol\n-  |\n-  @  2:872023de769d test 0 0 - default - makeacrlf\n-  |\n-  | o  1:4e322f7ce8e3 test 0 0 - foo - changea\n-  |/\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ shortlog\n+  o  1:4e322f7ce8e3 test 0 0 - foo - changea\n+  |\n   o  0:07f494440405 test 0 0 - default - adda\n   \n \n@@ -252,13 +274,25 @@\n   $ hg up -qC 0\n   $ echo e > e\n   $ hg ci -Am adde\n+  adding dir/d\n+  adding dir/dir2/b\n+  adding dir/dir2/c\n   adding e\n-  created new head\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg export . > ../patch1.diff\n   $ hg up -qC 1\n   $ echo f > f\n   $ hg ci -Am addf\n+  adding dir/d\n+  adding dir/dir2/b\n+  adding dir/dir2/c\n+  adding e\n   adding f\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg export . > ../patch2.diff\n   $ cd ..\n   $ hg clone -r1 repo-options repo-multi1\n@@ -274,14 +308,54 @@\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg import --bypass ../patch1.diff ../patch2.diff\n   applying ../patch1.diff\n-  applying ../patch2.diff\n-  $ shortlog\n-  o  3:bc8ca3f8a7c4 test 0 0 - default - addf\n-  |\n-  o  2:16581080145e test 0 0 - default - adde\n-  |\n-  | o  1:4e322f7ce8e3 test 0 0 - foo - changea\n-  |/\n+  file a already exists\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: purge\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4163, in import_\n+      repo.savecommitmessage(b\'\\n* * *\\n\'.join(msgs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ shortlog\n+  o  1:4e322f7ce8e3 test 0 0 - foo - changea\n+  |\n   @  0:07f494440405 test 0 0 - default - adda\n   \n \n@@ -301,12 +375,8 @@\n   applying ../patch1.diff\n   applying ../patch2.diff\n   $ shortlog\n-  o  3:d60cb8989666 test 0 0 - foo - addf\n-  |\n-  | o  2:16581080145e test 0 0 - default - adde\n-  | |\n-  @ |  1:4e322f7ce8e3 test 0 0 - foo - changea\n-  |/\n+  @  1:4e322f7ce8e3 test 0 0 - foo - changea\n+  |\n   o  0:07f494440405 test 0 0 - default - adda\n   \n \n@@ -319,15 +389,24 @@\n \n   $ echo a >> a\n   $ hg commit -m \' \'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg tip -T "{node}\\n"\n-  1b77bc7d1db9f0e7f1716d515b630516ab386c89\n+  4e322f7ce8e3e4203950eac9ece27bf7e45ffa6c\n   $ hg export -o ../empty-log.diff .\n   $ hg update -q -C ".^1"\n   $ hg --config extensions.strip= strip -q tip\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo-options\\.hg\\strip-backup/4e322f7ce8e3-60ddd5c0-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ HGEDITOR=cat hg import --exact --bypass ../empty-log.diff\n-  applying ../empty-log.diff\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg tip -T "{node}\\n"\n-  1b77bc7d1db9f0e7f1716d515b630516ab386c89\n+  4e322f7ce8e3e4203950eac9ece27bf7e45ffa6c\n \n   $ cd ..\n \n', 2183, 2185, 'truncated \\uXXXX escape') decoding diff, sorry

test-import-eol.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-import-eol.t\n+++ c:/hgdev/src/tests/test-import-eol.t.err\n@@ -42,20 +42,86 @@\n \n   $ hg --config patch.eol=\'LFCR\' import eol.diff\n   applying eol.diff\n-  abort: unsupported line endings type: LFCR\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4163, in import_\n+      repo.savecommitmessage(b\'\\n* * *\\n\'.join(msgs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg revert -a\n \n \n force LF\n \n   $ hg --traceback --config patch.eol=\'LF\' import eol.diff\n-  applying eol.diff\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4123, in import_\n+      with lock(), tr(), dsguard():\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4117, in <lambda>\n+      tr = lambda: repo.transaction(b\'import\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2153, in transaction\n+      hint=_(b"run \'hg recover\' to clean up transaction"),\n+  RepoError: abandoned transaction found\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg id\n-  9e4ef7b3d4af tip\n+  064e24ef79fc tip\n   $ cat a\n   a\n-  yyyy\n+  bbb\n   cc\n   \n   d\n@@ -66,68 +132,147 @@\n \n   $ hg up -qC 0\n   $ hg --config patch.eol=\'LF\' import eol-empty-crlf.diff\n-  applying eol-empty-crlf.diff\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg id\n-  9e4ef7b3d4af tip\n+  064e24ef79fc tip\n \n   $ hg up -qC 0\n   $ hg --config patch.eol=\'LF\' import eol-empty-stripped-lf.diff\n-  applying eol-empty-stripped-lf.diff\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg id\n-  9e4ef7b3d4af tip\n+  064e24ef79fc tip\n \n   $ hg up -qC 0\n   $ hg --config patch.eol=\'LF\' import eol-empty-stripped-crlf.diff\n-  applying eol-empty-stripped-crlf.diff\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg id\n-  9e4ef7b3d4af tip\n+  064e24ef79fc tip\n \n force CRLF\n \n   $ hg up -C 0\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg --traceback --config patch.eol=\'CRLF\' import eol.diff\n-  applying eol.diff\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4123, in import_\n+      with lock(), tr(), dsguard():\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4117, in <lambda>\n+      tr = lambda: repo.transaction(b\'import\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2153, in transaction\n+      hint=_(b"run \'hg recover\' to clean up transaction"),\n+  RepoError: abandoned transaction found\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ cat a\n+  a\n+  bbb\n+  cc\n+  \n+  d\n+  e (no-eol)\n+  $ hg st\n+\n+\n+auto EOL on LF file\n+\n+  $ hg up -C 0\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  $ hg --traceback --config patch.eol=\'auto\' import eol.diff\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4123, in import_\n+      with lock(), tr(), dsguard():\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4117, in <lambda>\n+      tr = lambda: repo.transaction(b\'import\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2153, in transaction\n+      hint=_(b"run \'hg recover\' to clean up transaction"),\n+  RepoError: abandoned transaction found\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ cat a\n+  a\n+  bbb\n+  cc\n+  \n+  d\n+  e (no-eol)\n+  $ hg st\n+\n+\n+auto EOL on CRLF file\n+\n+  $ "$PYTHON" -c \'open("a", "wb").write(b"a\\r\\nbbb\\r\\ncc\\r\\n\\r\\nd\\r\\ne")\'\n+  $ hg commit -m \'switch EOLs in a\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg --traceback --config patch.eol=\'auto\' import eol.diff\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4113, in import_\n+      cmdutil.bailifchanged(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 1093, in bailifchanged\n+      raise error.StateError(_(b\'uncommitted changes\'), hint=hint)\n+  StateError: uncommitted changes\n+  abort: uncommitted changes\n+  [20]\n   $ cat a\n   a\\r (esc)\n-  yyyy\\r (esc)\n+  bbb\\r (esc)\n   cc\\r (esc)\n   \\r (esc)\n   d\\r (esc)\n   e (no-eol)\n   $ hg st\n-\n-\n-auto EOL on LF file\n-\n-  $ hg up -C 0\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ hg --traceback --config patch.eol=\'auto\' import eol.diff\n-  applying eol.diff\n-  $ cat a\n-  a\n-  yyyy\n-  cc\n-  \n-  d\n-  e (no-eol)\n-  $ hg st\n-\n-\n-auto EOL on CRLF file\n-\n-  $ "$PYTHON" -c \'open("a", "wb").write(b"a\\r\\nbbb\\r\\ncc\\r\\n\\r\\nd\\r\\ne")\'\n-  $ hg commit -m \'switch EOLs in a\'\n-  $ hg --traceback --config patch.eol=\'auto\' import eol.diff\n-  applying eol.diff\n-  $ cat a\n-  a\\r (esc)\n-  yyyy\\r (esc)\n-  cc\\r (esc)\n-  \\r (esc)\n-  d\\r (esc)\n-  e (no-eol)\n-  $ hg st\n+  M a\n \n \n auto EOL on new file or source without any EOL\n@@ -135,6 +280,9 @@\n   $ "$PYTHON" -c \'open("noeol", "wb").write(b"noeol")\'\n   $ hg add noeol\n   $ hg commit -m \'add noeol\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ "$PYTHON" -c \'open("noeol", "wb").write(b"noeol\\r\\nnoeol\\n")\'\n   $ "$PYTHON" -c \'open("neweol", "wb").write(b"neweol\\nneweol\\r\\n")\'\n   $ hg add neweol\n@@ -142,14 +290,37 @@\n   $ hg revert --no-backup noeol neweol\n   $ rm neweol\n   $ hg --traceback --config patch.eol=\'auto\' import -m noeol noeol.diff\n-  applying noeol.diff\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4113, in import_\n+      cmdutil.bailifchanged(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 1093, in bailifchanged\n+      raise error.StateError(_(b\'uncommitted changes\'), hint=hint)\n+  StateError: uncommitted changes\n+  abort: uncommitted changes\n+  [20]\n   $ cat noeol\n   noeol\\r (esc)\n   noeol\n   $ cat neweol\n-  neweol\n-  neweol\\r (esc)\n-  $ hg st\n+  cat: neweol: $ENOENT$\n+  [1]\n+  $ hg st\n+  M a\n+  ? noeol\n \n \n Test --eol and binary patches\n@@ -157,17 +328,26 @@\n   $ "$PYTHON" -c \'open("b", "wb").write(b"a\\x00\\nb\\r\\nd")\'\n   $ hg ci -Am addb\n   adding b\n+  adding noeol\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ "$PYTHON" -c \'open("b", "wb").write(b"a\\x00\\nc\\r\\nd")\'\n   $ hg diff --git > bin.diff\n   $ hg revert --no-backup b\n+  file not managed: b\n \n binary patch with --eol\n \n   $ hg import --config patch.eol=\'CRLF\' -m changeb bin.diff\n-  applying bin.diff\n+  abort: uncommitted changes\n+  [20]\n   $ cat b\n   a\\x00 (esc)\n   c\\r (esc)\n   d (no-eol)\n   $ hg st\n+  M a\n+  ? b\n+  ? noeol\n   $ cd ..\n', 2131, 2133, 'truncated \\uXXXX escape') decoding diff, sorry

test-import-git.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-import-git.t\n+++ c:/hgdev/src/tests/test-import-git.t.err\n@@ -518,8 +518,50 @@\n   > \n   > EOF\n   applying patch from stdin\n-  abort: could not decode "binary2" binary patch: bad base85 character at position 6\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4163, in import_\n+      repo.savecommitmessage(b\'\\n* * *\\n\'.join(msgs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg revert -aq\n   $ hg import -d "1000000 0" -m rename-as-binary - <<"EOF"\n@@ -532,8 +574,8 @@\n   > Mc$`b*O5$Pw00T?_*Z=?k\n   > \n   > EOF\n-  applying patch from stdin\n-  abort: "binary2" length is 5 bytes, should be 6\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n   $ hg revert -aq\n@@ -546,8 +588,8 @@\n   > Mc$`b*O5$Pw00T?_*Z=?k\n   > \n   > EOF\n-  applying patch from stdin\n-  abort: could not extract "binary2" binary data\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n Simulate a copy/paste turning LF into CRLF (issue2870)\n', 2143, 2145, 'truncated \\uXXXX escape') decoding diff, sorry

test-import-merge.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-import-merge.t\n+++ c:/hgdev/src/tests/test-import-merge.t.err\n@@ -67,62 +67,136 @@\n   3:102a90ea7b4a addb\n   $ hg strip --no-backup tip\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Test without --exact and diff.p1 != workingdir.p1\n \n   $ hg up 2\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg import ../merge.diff\n-  applying ../merge.diff\n-  warning: import the patch as a normal revision\n-  (use --exact to import the patch as a merge)\n-  $ tipparents\n-  2:890ecaa90481 addc\n-  $ hg strip --no-backup tip\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ tipparents\n+  1:540395c44225 changea\n+  3:102a90ea7b4a addb\n+  $ hg strip --no-backup tip\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+Test with --exact\n+\n+  $ hg import --exact ../merge.diff\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ tipparents\n+  1:540395c44225 changea\n+  3:102a90ea7b4a addb\n+  $ hg strip --no-backup tip\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+Test with --bypass and diff.p1 == workingdir.p1\n+\n+  $ hg up 1\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-\n-Test with --exact\n-\n-  $ hg import --exact ../merge.diff\n-  applying ../merge.diff\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ tipparents\n-  1:540395c44225 changea\n-  3:102a90ea7b4a addb\n-  $ hg strip --no-backup tip\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-\n-Test with --bypass and diff.p1 == workingdir.p1\n-\n-  $ hg up 1\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg import --bypass ../merge.diff\n-  applying ../merge.diff\n-  $ tipparents\n-  1:540395c44225 changea\n-  3:102a90ea7b4a addb\n-  $ hg strip --no-backup tip\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ tipparents\n+  1:540395c44225 changea\n+  3:102a90ea7b4a addb\n+  $ hg strip --no-backup tip\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Test with --bypass and diff.p1 != workingdir.p1\n \n   $ hg up 2\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg import --bypass ../merge.diff\n-  applying ../merge.diff\n-  warning: import the patch as a normal revision\n-  (use --exact to import the patch as a merge)\n-  $ tipparents\n-  2:890ecaa90481 addc\n-  $ hg strip --no-backup tip\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ tipparents\n+  1:540395c44225 changea\n+  3:102a90ea7b4a addb\n+  $ hg strip --no-backup tip\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Test with --bypass and --exact\n \n   $ hg import --bypass --exact ../merge.diff\n-  applying ../merge.diff\n-  $ tipparents\n-  1:540395c44225 changea\n-  3:102a90ea7b4a addb\n-  $ hg strip --no-backup tip\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ tipparents\n+  1:540395c44225 changea\n+  3:102a90ea7b4a addb\n+  $ hg strip --no-backup tip\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ cd ..\n \n@@ -155,13 +229,73 @@\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   patching file a\n   Hunk #1 succeeded at 1 with fuzz 1 (offset -1 lines).\n-  transaction abort!\n-  rollback completed\n-  abort: patch is damaged or loses information\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4205, in mqimport\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4163, in import_\n+      repo.savecommitmessage(b\'\\n* * *\\n\'.join(msgs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg verify\n+  abandoned transaction found - run hg recover\n   checking changesets\n   checking manifests\n+   manifest@?: rev 2 points to nonexistent changeset 2\n+   manifest@?: f8f1c7ab3d67 not in changesets\n   crosschecking files in changesets and manifests\n   checking files\n-  checked 2 changesets with 2 changes to 1 files\n+   a@?: rev 2 points to nonexistent changeset 2\n+   (expected )\n+  checked 2 changesets with 3 changes to 1 files\n+  1 warnings encountered!\n+  3 integrity errors encountered!\n+  [1]\n', 2142, 2144, 'truncated \\uXXXX escape') decoding diff, sorry

test-import.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-import.t\n+++ c:/hgdev/src/tests/test-import.t.err\n@@ -126,23 +126,74 @@\n   HG: user: test\n   HG: branch \'default\'\n   HG: changed a\n-  abort: empty commit message\n-  [10]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4163, in import_\n+      repo.savecommitmessage(b\'\\n* * *\\n\'.join(msgs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Test avoiding editor invocation at applying the patch with --exact,\n even if commit message is empty\n \n   $ echo a >> b/a\n   $ hg --cwd b commit -m \' \'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg --cwd b tip -T "{node}\\n"\n-  d8804f3f5396d800812f579c8452796a5993bdb2\n+  80971e65b4311420b1d3638e4b38096e0606ea65\n   $ hg --cwd b export -o ../empty-log.diff .\n   $ hg --cwd b update -q -C ".^1"\n   $ hg --cwd b --config extensions.strip= strip -q tip\n+  strip failed, backup bundle stored in \'$TESTTMP\\b\\.hg\\strip-backup/80971e65b431-822eb282-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ HGEDITOR=cat hg --cwd b import --exact ../empty-log.diff\n-  applying ../empty-log.diff\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg --cwd b tip -T "{node}\\n"\n-  d8804f3f5396d800812f579c8452796a5993bdb2\n+  80971e65b4311420b1d3638e4b38096e0606ea65\n \n   $ rm -r b\n \n@@ -233,8 +284,50 @@\n   $ sed \'s/1,1/foo/\' < diffed-tip.patch > broken.patch\n   $ hg --cwd b import -mpatch ../broken.patch\n   applying ../broken.patch\n-  abort: bad hunk #1\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4163, in import_\n+      repo.savecommitmessage(b\'\\n* * *\\n\'.join(msgs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ rm -r b\n \n hg -R repo import\n@@ -373,8 +466,50 @@\n   2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ egrep -v \'^(Subject|email)\' msg.patch | hg --cwd b import -\n   applying patch from stdin\n-  abort: empty commit message\n-  [10]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4163, in import_\n+      repo.savecommitmessage(b\'\\n* * *\\n\'.join(msgs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ rm -r b\n \n \n@@ -458,32 +593,85 @@\n   $ hg --cwd b phase\n   1: secret\n   $ hg --cwd b --config extensions.strip= strip 1 --no-backup --quiet\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ HGEDITOR=cat hg --cwd b import --secret --edit ../exported-tip.patch\n-  applying ../exported-tip.patch\n-  second change\n-  \n-  \n-  HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  HG: Leave message empty to abort commit.\n-  HG: --\n-  HG: user: someone\n-  HG: branch \'default\'\n-  HG: changed a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg --cwd b diff -c . --nodates\n-  diff -r 80971e65b431 -r 1d4bd90af0e4 a\n-  --- a/a\n+  diff -r 000000000000 -r 80971e65b431 a\n+  --- /dev/null\n   +++ b/a\n-  @@ -1,1 +1,2 @@\n-   line 1\n-  +line 2\n+  @@ -0,0 +1,1 @@\n+  +line 1\n+  diff -r 000000000000 -r 80971e65b431 d1/d2/a\n+  --- /dev/null\n+  +++ b/d1/d2/a\n+  @@ -0,0 +1,1 @@\n+  +line 1\n   $ hg --cwd b phase\n-  1: secret\n+  0: public\n   $ hg --cwd b --config extensions.strip= strip 1 --no-backup --quiet\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg --cwd b import --bypass --secret ../exported-tip.patch\n-  applying ../exported-tip.patch\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg --cwd b phase -r tip\n   1: secret\n   $ hg --cwd b --config extensions.strip= strip 1 --no-backup --quiet\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rm -r b\n \n \n@@ -575,6 +763,55 @@\n \n   $ hg --cwd b update -q -C 0\n   $ hg --cwd b --config extensions.strip= strip -q 1\n+  strip failed, backup bundle stored in \'$TESTTMP\\b\\.hg\\strip-backup/3c5fbb1febd4-4f4ff4a1-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Test visibility of in-memory dirstate changes inside transaction to\n external process\n@@ -603,119 +840,31 @@\n   ====\n \n   $ HGEDITOR="sh $TESTTMP/checkvisibility.sh" hg --cwd b import -v --edit ../patch1 ../patch2 ../patch3\n-  applying ../patch1\n-  patching file a\n-  ====\n-  VISIBLE 0:80971e65b431\n-  M a\n-  ACTUAL  0:80971e65b431\n-  M a\n-  ====\n-  committing files:\n-  a\n-  committing manifest\n-  committing changelog\n-  created 1d4bd90af0e4\n-  applying ../patch2\n-  patching file a\n-  ====\n-  VISIBLE 1:1d4bd90af0e4\n-  M a\n-  ACTUAL  0:80971e65b431\n-  M a\n-  ====\n-  committing files:\n-  a\n-  committing manifest\n-  committing changelog\n-  created 6d019af21222\n-  applying ../patch3\n-  patching file foo\n-  adding foo\n-  ====\n-  VISIBLE 2:6d019af21222\n-  A foo\n-  ACTUAL  0:80971e65b431\n-  M a\n-  ====\n-  committing files:\n-  foo\n-  committing manifest\n-  committing changelog\n-  created 55e3f75b2378\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg --cwd b rollback -q\n+  no rollback information available\n+  [1]\n \n (content of file "a" is already changed and it should be recognized as\n "M", even though dirstate is restored to one before "hg import")\n-\n-  $ (cd b && sh "$TESTTMP/checkvisibility.sh")\n-  ====\n-  VISIBLE 0:80971e65b431\n-  M a\n-  ACTUAL  0:80971e65b431\n-  M a\n-  ====\n-  $ hg --cwd b revert --no-backup a\n-  $ rm -f b/foo\n-\n-== test visibility to precommit external hook\n-\n-  $ cat >> b/.hg/hgrc <<EOF\n-  > [hooks]\n-  > precommit.visibility = sh $TESTTMP/checkvisibility.sh\n-  > EOF\n \n   $ (cd b && sh "$TESTTMP/checkvisibility.sh")\n   ====\n   VISIBLE 0:80971e65b431\n   ACTUAL  0:80971e65b431\n   ====\n-\n-  $ hg --cwd b import ../patch1 ../patch2 ../patch3\n-  applying ../patch1\n-  ====\n-  VISIBLE 0:80971e65b431\n-  M a\n-  ACTUAL  0:80971e65b431\n-  M a\n-  ====\n-  applying ../patch2\n-  ====\n-  VISIBLE 1:1d4bd90af0e4\n-  M a\n-  ACTUAL  0:80971e65b431\n-  M a\n-  ====\n-  applying ../patch3\n-  ====\n-  VISIBLE 2:6d019af21222\n-  A foo\n-  ACTUAL  0:80971e65b431\n-  M a\n-  ====\n-\n-  $ hg --cwd b rollback -q\n-  $ (cd b && sh "$TESTTMP/checkvisibility.sh")\n-  ====\n-  VISIBLE 0:80971e65b431\n-  M a\n-  ACTUAL  0:80971e65b431\n-  M a\n-  ====\n   $ hg --cwd b revert --no-backup a\n+  no changes needed to a\n   $ rm -f b/foo\n+\n+== test visibility to precommit external hook\n \n   $ cat >> b/.hg/hgrc <<EOF\n   > [hooks]\n-  > precommit.visibility =\n-  > EOF\n-\n-== test visibility to pretxncommit external hook\n-\n-  $ cat >> b/.hg/hgrc <<EOF\n-  > [hooks]\n-  > pretxncommit.visibility = sh $TESTTMP/checkvisibility.sh\n+  > precommit.visibility = sh $TESTTMP/checkvisibility.sh\n   > EOF\n \n   $ (cd b && sh "$TESTTMP/checkvisibility.sh")\n@@ -725,37 +874,55 @@\n   ====\n \n   $ hg --cwd b import ../patch1 ../patch2 ../patch3\n-  applying ../patch1\n-  ====\n-  VISIBLE 0:80971e65b431\n-  M a\n-  ACTUAL  0:80971e65b431\n-  M a\n-  ====\n-  applying ../patch2\n-  ====\n-  VISIBLE 1:1d4bd90af0e4\n-  M a\n-  ACTUAL  0:80971e65b431\n-  M a\n-  ====\n-  applying ../patch3\n-  ====\n-  VISIBLE 2:6d019af21222\n-  A foo\n-  ACTUAL  0:80971e65b431\n-  M a\n-  ====\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg --cwd b rollback -q\n+  no rollback information available\n+  [1]\n   $ (cd b && sh "$TESTTMP/checkvisibility.sh")\n   ====\n   VISIBLE 0:80971e65b431\n-  M a\n   ACTUAL  0:80971e65b431\n-  M a\n   ====\n   $ hg --cwd b revert --no-backup a\n+  no changes needed to a\n+  $ rm -f b/foo\n+\n+  $ cat >> b/.hg/hgrc <<EOF\n+  > [hooks]\n+  > precommit.visibility =\n+  > EOF\n+\n+== test visibility to pretxncommit external hook\n+\n+  $ cat >> b/.hg/hgrc <<EOF\n+  > [hooks]\n+  > pretxncommit.visibility = sh $TESTTMP/checkvisibility.sh\n+  > EOF\n+\n+  $ (cd b && sh "$TESTTMP/checkvisibility.sh")\n+  ====\n+  VISIBLE 0:80971e65b431\n+  ACTUAL  0:80971e65b431\n+  ====\n+\n+  $ hg --cwd b import ../patch1 ../patch2 ../patch3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+  $ hg --cwd b rollback -q\n+  no rollback information available\n+  [1]\n+  $ (cd b && sh "$TESTTMP/checkvisibility.sh")\n+  ====\n+  VISIBLE 0:80971e65b431\n+  ACTUAL  0:80971e65b431\n+  ====\n+  $ hg --cwd b revert --no-backup a\n+  no changes needed to a\n   $ rm -f b/foo\n \n   $ cat >> b/.hg/hgrc <<EOF\n@@ -833,8 +1000,50 @@\n   patching file a\n   Hunk #1 FAILED at 0\n   1 out of 1 hunks FAILED -- saving rejects to file a.rej\n-  abort: patch failed to apply\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4163, in import_\n+      repo.savecommitmessage(b\'\\n* * *\\n\'.join(msgs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg import --no-commit -v fuzzy-tip.patch\n   applying fuzzy-tip.patch\n   patching file a\n@@ -848,20 +1057,13 @@\n   $ sed \'s/^# Parent .*/# Parent \'"`hg log -r. -T \'{node}\'`"\'/\' \\\n   > < fuzzy-tip.patch > fuzzy-reparent.patch\n   $ hg import --config patch.fuzz=0 --exact fuzzy-reparent.patch\n-  applying fuzzy-reparent.patch\n-  patching file a\n-  Hunk #1 FAILED at 0\n-  1 out of 1 hunks FAILED -- saving rejects to file a.rej\n-  abort: patch failed to apply\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg up -qC\n   $ hg import --config patch.fuzz=2 --exact fuzzy-reparent.patch\n-  applying fuzzy-reparent.patch\n-  patching file a\n-  Hunk #1 succeeded at 2 with fuzz 1 (offset 0 lines).\n-  transaction abort!\n-  rollback completed\n-  abort: patch is damaged or loses information\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg up -qC\n \n@@ -874,9 +1076,8 @@\n   > --- b/a\tThu Jan 01 00:00:00 1970 +0000\n   > EOF\n   $ hg import --exact empty.patch\n-  applying empty.patch\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  abort: patch is damaged or loses information\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg up -qC\n \n@@ -1083,8 +1284,50 @@\n   > rename to bar\n   > EOF\n   applying patch from stdin\n-  abort: path contains illegal component: ../outside/foo\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4163, in import_\n+      repo.savecommitmessage(b\'\\n* * *\\n\'.join(msgs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cd ..\n \n \n@@ -1169,14 +1412,57 @@\n   $ hg import a.patch empty.patch\n   applying a.patch\n   applying empty.patch\n-  transaction abort!\n-  rollback completed\n-  abort: empty.patch: no diffs found\n-  [10]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4163, in import_\n+      repo.savecommitmessage(b\'\\n* * *\\n\'.join(msgs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg tip --template \'{rev}  {desc|firstline}\\n\'\n+  warning: ignoring unknown working parent 41cb93bb6d69!\n   0  commit\n   $ hg -q status\n+  warning: ignoring unknown working parent 41cb93bb6d69!\n   M a\n+  M b\n   $ cd ..\n \n create file when source is not /dev/null\n@@ -2053,8 +2339,52 @@\n   unable to find \'file1\' for patching\n   (use \'--prefix\' to apply patch relative to the current directory)\n   1 out of 1 hunks FAILED -- saving rejects to file file1.rej\n-  abort: patch failed to apply\n-  [255]\n+  ** Unknown exception encountered with possibly-broken third-party extension "parseextra" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "parseextra" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: parseextra\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4163, in import_\n+      repo.savecommitmessage(b\'\\n* * *\\n\'.join(msgs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n test import crash (issue5375)\n   $ cd ..\n@@ -2063,8 +2393,52 @@\n   $ printf "diff --git a/a b/b\\nrename from a\\nrename to b" | hg import -\n   applying patch from stdin\n   a not tracked!\n-  abort: source file \'a\' does not exist\n-  [255]\n+  ** Unknown exception encountered with possibly-broken third-party extension "parseextra" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "parseextra" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: parseextra\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4163, in import_\n+      repo.savecommitmessage(b\'\\n* * *\\n\'.join(msgs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n test immature end of hunk\n \n@@ -2074,8 +2448,8 @@\n   > --- b/foo\n   > @@ -0,0 +1,1 @@\n   > EOF\n-  applying patch from stdin\n-  abort: bad hunk #1: incomplete hunk\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n   $ hg import - <<\'EOF\'\n@@ -2085,6 +2459,6 @@\n   > @@ -0,0 +1,1 @@\n   > \\ No newline at end of file\n   > EOF\n-  applying patch from stdin\n-  abort: bad hunk #1: incomplete hunk\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n', 2095, 2097, 'truncated \\uXXXX escape') decoding diff, sorry

test-init.t

--- c:/hgdev/src/tests/test-init.t
+++ c:/hgdev/src/tests/test-init.t.err
@@ -289,4 +289,5 @@
   >     echo $x >> `expr $x % 5 + 1`
   >     hg commit -m $x
   > done
+  /usr/bin/env: python3: $ENOENT$
   $ cd ..

test-install.t

--- c:/hgdev/src/tests/test-install.t
+++ c:/hgdev/src/tests/test-install.t.err
@@ -5,10 +5,11 @@
   checking Python implementation (*) (glob)
   checking Python version (2.*) (glob) (no-py3 !)
   checking Python version (3.*) (glob) (py3 !)
-  checking Python lib (.*[Ll]ib.*)... (re)
-  checking Python security support (*) (glob)
-    TLS 1.2 not supported by Python install; network connections lack modern security (?)
-    SNI not supported by Python install; may have connectivity issues with some servers (?)
+    TLS 1.2 not supported by Python install; network connections lack modern security (?)
+    SNI not supported by Python install; may have connectivity issues with some servers (?)
+  checking Python version (2.7.18)
+  checking Python lib (.*[Ll]ib.*)... (re)
+  checking Python security support (*) (glob)
   checking Rust extensions \((installed|missing)\) (re)
   checking Mercurial version (*) (glob)
   checking Mercurial custom build (*) (glob)
@@ -39,6 +40,7 @@
     "encoding": "ascii",
     "encodingerror": null,
     "extensionserror": null, (no-pure !)
+    "extensionserror": null,
     "hgmodulepolicy": "*", (glob)
     "hgmodules": "*mercurial", (glob)
     "hgver": "*", (glob)
@@ -64,10 +66,11 @@
   checking Python implementation (*) (glob)
   checking Python version (2.*) (glob) (no-py3 !)
   checking Python version (3.*) (glob) (py3 !)
-  checking Python lib (.*[Ll]ib.*)... (re)
-  checking Python security support (*) (glob)
-    TLS 1.2 not supported by Python install; network connections lack modern security (?)
-    SNI not supported by Python install; may have connectivity issues with some servers (?)
+    TLS 1.2 not supported by Python install; network connections lack modern security (?)
+    SNI not supported by Python install; may have connectivity issues with some servers (?)
+  checking Python version (2.7.18)
+  checking Python lib (.*[Ll]ib.*)... (re)
+  checking Python security support (*) (glob)
   checking Rust extensions \((installed|missing)\) (re)
   checking Mercurial version (*) (glob)
   checking Mercurial custom build (*) (glob)
@@ -97,6 +100,7 @@
     "defaulttemplateerror": null,
     "encodingerror": "unknown encoding: invalidenc",
     "extensionserror": null, (no-pure !)
+    "extensionserror": null,
     "usernameerror": "no username supplied",
 
 path variables are expanded (~ is the same as $TESTTMP)
@@ -111,10 +115,11 @@
   checking Python implementation (*) (glob)
   checking Python version (2.*) (glob) (no-py3 !)
   checking Python version (3.*) (glob) (py3 !)
-  checking Python lib (.*[Ll]ib.*)... (re)
-  checking Python security support (*) (glob)
-    TLS 1.2 not supported by Python install; network connections lack modern security (?)
-    SNI not supported by Python install; may have connectivity issues with some servers (?)
+    TLS 1.2 not supported by Python install; network connections lack modern security (?)
+    SNI not supported by Python install; may have connectivity issues with some servers (?)
+  checking Python version (2.7.18)
+  checking Python lib (.*[Ll]ib.*)... (re)
+  checking Python security support (*) (glob)
   checking Rust extensions \((installed|missing)\) (re)
   checking Mercurial version (*) (glob)
   checking Mercurial custom build (*) (glob)
@@ -138,25 +143,28 @@
   checking Python implementation (*) (glob)
   checking Python version (2.*) (glob) (no-py3 !)
   checking Python version (3.*) (glob) (py3 !)
-  checking Python lib (.*[Ll]ib.*)... (re)
-  checking Python security support (*) (glob)
-    TLS 1.2 not supported by Python install; network connections lack modern security (?)
-    SNI not supported by Python install; may have connectivity issues with some servers (?)
-  checking Rust extensions \((installed|missing)\) (re)
-  checking Mercurial version (*) (glob)
-  checking Mercurial custom build (*) (glob)
-  checking module policy (*) (glob)
-  checking installed modules (*mercurial)... (glob)
-  checking registered compression engines (*zlib*) (glob)
-  checking available compression engines (*zlib*) (glob)
-  checking available compression engines for wire protocol (*zlib*) (glob)
-  checking "re2" regexp engine \((available|missing)\) (re)
-  checking templates (*mercurial?templates)... (glob)
-  checking default template (*mercurial?templates?map-cmdline.default) (glob)
+    TLS 1.2 not supported by Python install; network connections lack modern security (?)
+    SNI not supported by Python install; may have connectivity issues with some servers (?)
   checking commit editor... (c:ooaraz.exe) (windows !)
    Can't find editor 'c:ooaraz.exe' in PATH (windows !)
   checking commit editor... (c:foobarbaz.exe) (no-windows !)
    Can't find editor 'c:foobarbaz.exe' in PATH (no-windows !)
+  checking Python version (2.7.18)
+  checking Python lib (.*[Ll]ib.*)... (re)
+  checking Python security support (*) (glob)
+  checking Rust extensions \((installed|missing)\) (re)
+  checking Mercurial version (*) (glob)
+  checking Mercurial custom build (*) (glob)
+  checking module policy (*) (glob)
+  checking installed modules (*mercurial)... (glob)
+  checking registered compression engines (*zlib*) (glob)
+  checking available compression engines (*zlib*) (glob)
+  checking available compression engines for wire protocol (*zlib*) (glob)
+  checking "re2" regexp engine \((available|missing)\) (re)
+  checking templates (*mercurial?templates)... (glob)
+  checking default template (*mercurial?templates?map-cmdline.default) (glob)
+  checking commit editor... (c:ooaraz.exe)
+   Can't find editor 'c:ooaraz.exe' in PATH
    (specify a commit editor in your configuration file)
   checking username (test)
   1 problems detected, please check your install!

test-issue672.t

--- c:/hgdev/src/tests/test-issue672.t
+++ c:/hgdev/src/tests/test-issue672.t.err
@@ -63,8 +63,9 @@
   resolving manifests
    branchmerge: True, force: False, partial: False
    ancestor: c64f439569a9, local: f4a9cff3cd0b+, remote: 746e9549ea96
+  starting 4 threads for background file closing
+  starting 4 threads for background file closing (?)
    preserving 1a for resolve of 1a
-  starting 4 threads for background file closing (?)
    1a: local copied/moved from 1 -> m (premerge)
   picked tool ':merge' for 1a (binary False symlink False changedelete False)
   merging 1a and 1 to 1a
@@ -86,9 +87,10 @@
   resolving manifests
    branchmerge: True, force: False, partial: False
    ancestor: c64f439569a9, local: 746e9549ea96+, remote: f4a9cff3cd0b
+  starting 4 threads for background file closing
    preserving 1 for resolve of 1a
+  starting 4 threads for background file closing (?)
   removing 1
-  starting 4 threads for background file closing (?)
    1a: remote moved from 1 -> m (premerge)
   picked tool ':merge' for 1a (binary False symlink False changedelete False)
   merging 1 and 1a to 1a

test-known.t

--- c:/hgdev/src/tests/test-known.t
+++ c:/hgdev/src/tests/test-known.t.err
@@ -34,4 +34,6 @@
   
   $ cat error.log
   $ killdaemons.py
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 

test-largefiles-misc.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-largefiles-misc.t\n+++ c:/hgdev/src/tests/test-largefiles-misc.t.err\n@@ -1099,6 +1099,81 @@\n   $ hg -R no-largefiles -q pull --rebase\n   Invoking status precommit hook\n   A normal3\n+  strip failed, backup bundle stored in \'$TESTTMP\\individualenabling\\no-largefiles\\.hg\\strip-backup/f3c7f05ee7f0-d9658dd7-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\individualenabling\\no-largefiles\\.hg\\strip-backup/f3c7f05ee7f0-446f2741-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\individualenabling\\no-largefiles\\.hg\\strip-backup/f3c7f05ee7f0-446f2741-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: largefiles, purge, rebase, transplant\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2153, in pullrebase\n+      rebase(ui, repo, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\largefiles\\overrides.py", line 1120, in overriderebasecmd\n+      return orig(ui, repo, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\largefiles\\overrides.py", line 1145, in _dorebase\n+      return orig(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n (test reverting)\n \n@@ -1131,6 +1206,7 @@\n   $ hg -R subrepo-root extdiff -p echo -S --config extensions.extdiff=\n   "*\\\\no-largefiles\\\\normal1" "*\\\\no-largefiles\\\\normal1" (glob) (windows !)\n   */no-largefiles/normal1 */no-largefiles/normal1 (glob) (no-windows !)\n+  "c:\\\\temp\\\\extdiff.ucuaib\\\\subrepo-root.0b5e0928b798\\\\no-largefiles\\\\normal1" "$TESTTMP\\\\individualenabling\\\\subrepo-root\\\\no-largefiles\\\\normal1"\\r (esc)\n   [1]\n   $ hg -R subrepo-root revert --all\n   reverting subrepo-root/.hglf/large\n', 2574, 2576, 'truncated \\uXXXX escape') decoding diff, sorry

test-largefiles.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-largefiles.t\n+++ c:/hgdev/src/tests/test-largefiles.t.err\n@@ -1215,10 +1215,86 @@\n   M sub/normal4\n   M sub2/large6\n   saved backup bundle to $TESTTMP/d/.hg/strip-backup/f574fb32bb45-dd1d9f80-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\d\\.hg\\strip-backup/f574fb32bb45-dd1d9f80-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\d\\.hg\\strip-backup/f574fb32bb45-e586d974-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\d\\.hg\\strip-backup/f574fb32bb45-e586d974-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: largefiles, purge, rebase, transplant\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2153, in pullrebase\n+      rebase(ui, repo, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\largefiles\\overrides.py", line 1129, in overriderebasecmd\n+      return orig(ui, repo, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\largefiles\\overrides.py", line 1145, in _dorebase\n+      return orig(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ [ -f .hg/largefiles/e166e74c7303192238d60af5a9c4ce9bef0b7928 ]\n   $ hg log --template \'{rev}:{node|short}  {desc|firstline}\\n\'\n-  9:598410d3eb9a  modify normal file largefile in repo d\n-  8:a381d2c8c80e  modify normal file and largefile in repo b\n+  10:598410d3eb9a  modify normal file largefile in repo d\n+  9:a381d2c8c80e  modify normal file and largefile in repo b\n+  8:f574fb32bb45  modify normal file largefile in repo d\n   7:daea875e9014  add/edit more largefiles\n   6:4355d653f84f  edit files yet again\n   5:9d5af5072dbd  edit files again\n@@ -1228,10 +1304,12 @@\n   1:ce8896473775  edit files\n   0:30d30fe6a5be  add files\n   $ hg log -G --template \'{rev}:{node|short}  {desc|firstline}\\n\'\n-  @  9:598410d3eb9a  modify normal file largefile in repo d\n-  |\n-  o  8:a381d2c8c80e  modify normal file and largefile in repo b\n-  |\n+  @  10:598410d3eb9a  modify normal file largefile in repo d\n+  |\n+  o  9:a381d2c8c80e  modify normal file and largefile in repo b\n+  |\n+  | o  8:f574fb32bb45  modify normal file largefile in repo d\n+  |/\n   o  7:daea875e9014  add/edit more largefiles\n   |\n   o  6:4355d653f84f  edit files yet again\n@@ -1274,9 +1352,85 @@\n   M sub/normal4\n   M sub2/large6\n   saved backup bundle to $TESTTMP/e/.hg/strip-backup/f574fb32bb45-dd1d9f80-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\e\\.hg\\strip-backup/f574fb32bb45-dd1d9f80-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\e\\.hg\\strip-backup/f574fb32bb45-e586d974-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\e\\.hg\\strip-backup/f574fb32bb45-e586d974-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: largefiles, purge, rebase, transplant\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\largefiles\\overrides.py", line 1129, in overriderebasecmd\n+      return orig(ui, repo, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\largefiles\\overrides.py", line 1145, in _dorebase\n+      return orig(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log --template \'{rev}:{node|short}  {desc|firstline}\\n\'\n-  9:598410d3eb9a  modify normal file largefile in repo d\n-  8:a381d2c8c80e  modify normal file and largefile in repo b\n+  10:598410d3eb9a  modify normal file largefile in repo d\n+  9:a381d2c8c80e  modify normal file and largefile in repo b\n+  8:f574fb32bb45  modify normal file largefile in repo d\n   7:daea875e9014  add/edit more largefiles\n   6:4355d653f84f  edit files yet again\n   5:9d5af5072dbd  edit files again\n@@ -1300,12 +1454,12 @@\n \n - same output\n   $ hg log --template \'{rev}:{node|short}  {desc|firstline}\\n\' .hglf/sub/large4\n-  8:a381d2c8c80e  modify normal file and largefile in repo b\n+  9:a381d2c8c80e  modify normal file and largefile in repo b\n   6:4355d653f84f  edit files yet again\n   5:9d5af5072dbd  edit files again\n   4:74c02385b94c  move files\n   $ hg log -G --template \'{rev}:{node|short}  {desc|firstline}\\n\' .hglf/sub/large4\n-  o  8:a381d2c8c80e  modify normal file and largefile in repo b\n+  o  9:a381d2c8c80e  modify normal file and largefile in repo b\n   :\n   o  6:4355d653f84f  edit files yet again\n   |\n@@ -1315,12 +1469,12 @@\n   |\n   ~\n   $ hg log --template \'{rev}:{node|short}  {desc|firstline}\\n\' sub/large4\n-  8:a381d2c8c80e  modify normal file and largefile in repo b\n+  9:a381d2c8c80e  modify normal file and largefile in repo b\n   6:4355d653f84f  edit files yet again\n   5:9d5af5072dbd  edit files again\n   4:74c02385b94c  move files\n   $ hg log -G --template \'{rev}:{node|short}  {desc|firstline}\\n\' .hglf/sub/large4\n-  o  8:a381d2c8c80e  modify normal file and largefile in repo b\n+  o  9:a381d2c8c80e  modify normal file and largefile in repo b\n   :\n   o  6:4355d653f84f  edit files yet again\n   |\n@@ -1332,14 +1486,14 @@\n \n - .hglf only matches largefiles, without .hglf it matches 9 bco sub/normal\n   $ hg log --template \'{rev}:{node|short}  {desc|firstline}\\n\' .hglf/sub\n-  8:a381d2c8c80e  modify normal file and largefile in repo b\n+  9:a381d2c8c80e  modify normal file and largefile in repo b\n   6:4355d653f84f  edit files yet again\n   5:9d5af5072dbd  edit files again\n   4:74c02385b94c  move files\n   1:ce8896473775  edit files\n   0:30d30fe6a5be  add files\n   $ hg log -G --template \'{rev}:{node|short}  {desc|firstline}\\n\' .hglf/sub\n-  o  8:a381d2c8c80e  modify normal file and largefile in repo b\n+  o  9:a381d2c8c80e  modify normal file and largefile in repo b\n   :\n   o  6:4355d653f84f  edit files yet again\n   |\n@@ -1352,18 +1506,21 @@\n   o  0:30d30fe6a5be  add files\n   \n   $ hg log --template \'{rev}:{node|short}  {desc|firstline}\\n\' sub\n-  9:598410d3eb9a  modify normal file largefile in repo d\n-  8:a381d2c8c80e  modify normal file and largefile in repo b\n+  10:598410d3eb9a  modify normal file largefile in repo d\n+  9:a381d2c8c80e  modify normal file and largefile in repo b\n+  8:f574fb32bb45  modify normal file largefile in repo d\n   6:4355d653f84f  edit files yet again\n   5:9d5af5072dbd  edit files again\n   4:74c02385b94c  move files\n   1:ce8896473775  edit files\n   0:30d30fe6a5be  add files\n   $ hg log -G --template \'{rev}:{node|short}  {desc|firstline}\\n\' sub\n-  @  9:598410d3eb9a  modify normal file largefile in repo d\n-  |\n-  o  8:a381d2c8c80e  modify normal file and largefile in repo b\n+  @  10:598410d3eb9a  modify normal file largefile in repo d\n+  |\n+  o  9:a381d2c8c80e  modify normal file and largefile in repo b\n   :\n+  : o  8:f574fb32bb45  modify normal file largefile in repo d\n+  :/\n   o  6:4355d653f84f  edit files yet again\n   |\n   o  5:9d5af5072dbd  edit files again\n@@ -1376,18 +1533,21 @@\n   \n - globbing gives same result\n   $ hg log --template \'{rev}:{node|short}  {desc|firstline}\\n\' \'glob:sub/*\'\n-  9:598410d3eb9a  modify normal file largefile in repo d\n-  8:a381d2c8c80e  modify normal file and largefile in repo b\n+  10:598410d3eb9a  modify normal file largefile in repo d\n+  9:a381d2c8c80e  modify normal file and largefile in repo b\n+  8:f574fb32bb45  modify normal file largefile in repo d\n   6:4355d653f84f  edit files yet again\n   5:9d5af5072dbd  edit files again\n   4:74c02385b94c  move files\n   1:ce8896473775  edit files\n   0:30d30fe6a5be  add files\n   $ hg log -G --template \'{rev}:{node|short}  {desc|firstline}\\n\' \'glob:sub/*\'\n-  @  9:598410d3eb9a  modify normal file largefile in repo d\n-  |\n-  o  8:a381d2c8c80e  modify normal file and largefile in repo b\n+  @  10:598410d3eb9a  modify normal file largefile in repo d\n+  |\n+  o  9:a381d2c8c80e  modify normal file and largefile in repo b\n   :\n+  : o  8:f574fb32bb45  modify normal file largefile in repo d\n+  :/\n   o  6:4355d653f84f  edit files yet again\n   |\n   o  5:9d5af5072dbd  edit files again\n@@ -1402,16 +1562,17 @@\n \n   $ echo large4-modified-again > sub/large4\n   $ hg commit -m "Modify large4 again"\n-  Invoking status precommit hook\n-  M sub/large4\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg rollback\n-  repository tip rolled back to revision 9 (undo commit)\n-  working directory now based on revision 9\n+  repository tip rolled back to revision 10 (undo cleanup)\n   $ hg st\n   M sub/large4\n   $ hg log --template \'{rev}:{node|short}  {desc|firstline}\\n\'\n-  9:598410d3eb9a  modify normal file largefile in repo d\n-  8:a381d2c8c80e  modify normal file and largefile in repo b\n+  10:598410d3eb9a  modify normal file largefile in repo d\n+  9:a381d2c8c80e  modify normal file and largefile in repo b\n+  8:f574fb32bb45  modify normal file largefile in repo d\n   7:daea875e9014  add/edit more largefiles\n   6:4355d653f84f  edit files yet again\n   5:9d5af5072dbd  edit files again\n@@ -1425,8 +1586,9 @@\n \n "update --check" refuses to update with uncommitted changes.\n   $ hg update --check 8\n-  abort: uncommitted changes\n-  [255]\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n "update --clean" leaves correct largefiles in working copy, even when there is\n .orig files from revert in .hglf.\n@@ -1440,16 +1602,19 @@\n   $ test ! -f .hglf/sub2/large7.orig\n \n   $ hg -q update --clean -r null\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg update --clean\n-  getting changed largefiles\n-  3 largefiles updated, 0 removed\n-  5 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ cat normal3\n   normal3-modified\n   $ cat sub/normal4\n   normal4-modified\n   $ cat sub/large4\n-  large4-modified\n+  large4-modified-again\n   $ cat sub2/large6\n   large6-modified\n   $ cat sub2/large7\n@@ -1460,28 +1625,36 @@\n \n verify that largefile .orig file no longer is overwritten on every update -C:\n   $ hg update --clean\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ cat sub2/large7.orig\n   mistake\n   $ rm sub2/large7.orig\n \n Now "update check" is happy.\n   $ hg update --check 8\n-  getting changed largefiles\n-  1 largefiles updated, 0 removed\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg update --check\n-  getting changed largefiles\n-  1 largefiles updated, 0 removed\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n Test removing empty largefiles directories on update\n   $ test -d sub2 && echo "sub2 exists"\n   sub2 exists\n   $ hg update -q null\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ test -d sub2 && echo "error: sub2 should not exist anymore"\n-  [1]\n+  error: sub2 should not exist anymore\n   $ hg update -q\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n Test hg remove removes empty largefiles directories\n   $ test -d sub2 && echo "sub2 exists"\n@@ -1531,10 +1704,10 @@\n \n revert some files to an older revision\n   $ hg revert --no-backup -r 8 sub2\n+  $ cat sub2/large6\n+  large6-modified\n+  $ hg revert --no-backup -C -r \'.^\' sub2\n   reverting .hglf/sub2/large6\n-  $ cat sub2/large6\n-  large6\n-  $ hg revert --no-backup -C -r \'.^\' sub2\n   $ hg revert --no-backup sub2\n   reverting .hglf/sub2/large6\n   $ hg status\n@@ -1548,11 +1721,12 @@\n   default = $TESTTMP/d\n \n   $ hg verify --large\n+  abandoned transaction found - run hg recover\n   checking changesets\n   checking manifests\n   crosschecking files in changesets and manifests\n   checking files\n-  checked 10 changesets with 28 changes to 10 files\n+  checked 11 changesets with 28 changes to 10 files\n   searching 1 changesets for largefiles\n   verified existence of 3 revisions of 3 largefiles\n \n@@ -1562,20 +1736,22 @@\n   $ mv $TESTTMP/d/.hg/largefiles/e166e74c7303192238d60af5a9c4ce9bef0b7928 .\n   $ rm .hg/largefiles/e166e74c7303192238d60af5a9c4ce9bef0b7928\n   $ hg verify --large\n+  abandoned transaction found - run hg recover\n   checking changesets\n   checking manifests\n   crosschecking files in changesets and manifests\n   checking files\n-  checked 10 changesets with 28 changes to 10 files\n+  checked 11 changesets with 28 changes to 10 files\n   searching 1 changesets for largefiles\n-  changeset 9:598410d3eb9a: sub/large4 references missing $TESTTMP/d/.hg/largefiles/e166e74c7303192238d60af5a9c4ce9bef0b7928\n+  changeset 10:598410d3eb9a: sub/large4 references missing $TESTTMP/d/.hg/largefiles/e166e74c7303192238d60af5a9c4ce9bef0b7928\n   verified existence of 3 revisions of 3 largefiles\n   [1]\n \n - introduce corruption and make sure that it is caught when checking content:\n   $ echo \'5 cents\' > $TESTTMP/d/.hg/largefiles/e166e74c7303192238d60af5a9c4ce9bef0b7928\n   $ hg verify -q --large --lfc\n-  changeset 9:598410d3eb9a: sub/large4 references corrupted $TESTTMP/d/.hg/largefiles/e166e74c7303192238d60af5a9c4ce9bef0b7928\n+  abandoned transaction found - run hg recover\n+  changeset 10:598410d3eb9a: sub/large4 references corrupted $TESTTMP/d/.hg/largefiles/e166e74c7303192238d60af5a9c4ce9bef0b7928\n   [1]\n \n - cleanup\n@@ -1585,6 +1761,7 @@\n - verifying all revisions will fail because we didn\'t clone all largefiles to d:\n   $ echo \'T-shirt\' > $TESTTMP/d/.hg/largefiles/eb7338044dc27f9bc59b8dd5a246b065ead7a9c4\n   $ hg verify -q --lfa --lfc\n+  abandoned transaction found - run hg recover\n   changeset 0:30d30fe6a5be: large1 references missing $TESTTMP/d/.hg/largefiles/4669e532d5b2c093a78eca010077e708a071bb64\n   changeset 0:30d30fe6a5be: sub/large2 references missing $TESTTMP/d/.hg/largefiles/1deebade43c8c498a3c8daddac0244dc55d1331d\n   changeset 1:ce8896473775: large1 references missing $TESTTMP/d/.hg/largefiles/5f78770c0e77ba4287ad6ef3071c9bf9c379742f\n@@ -1605,55 +1782,58 @@\n \n   $ rm ${USERCACHE}/7838695e10da2bb75ac1156565f40a2595fa2fa0\n   $ hg up -r 6\n-  getting changed largefiles\n-  large3: largefile 7838695e10da2bb75ac1156565f40a2595fa2fa0 not available from file:/*/$TESTTMP/d (glob)\n-  1 largefiles updated, 2 removed\n-  4 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ rm normal3\n   $ echo >> sub/normal4\n   $ hg ci -m \'commit with missing files\'\n-  Invoking status precommit hook\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+  $ hg st\n   M sub/normal4\n-  ! large3\n-  ! normal3\n-  created new head\n-  $ hg st\n-  ! large3\n   ! normal3\n   $ hg up -r.\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg st\n-  ! large3\n+  M sub/normal4\n   ! normal3\n   $ hg up -Cr.\n-  getting changed largefiles\n-  large3: largefile 7838695e10da2bb75ac1156565f40a2595fa2fa0 not available from file:/*/$TESTTMP/d (glob)\n-  0 largefiles updated, 0 removed\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg st\n-  ! large3\n+  M sub/normal4\n+  ! normal3\n   $ hg rollback\n-  repository tip rolled back to revision 9 (undo commit)\n-  working directory now based on revision 6\n+  no rollback information available\n+  [1]\n \n Merge with revision with missing largefile - and make sure it tries to fetch it.\n \n   $ hg up -Cqr null\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo f > f\n   $ hg ci -Am branch\n-  adding f\n-  Invoking status precommit hook\n-  A f\n-  created new head\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg merge -r 6\n-  getting changed largefiles\n-  large3: largefile 7838695e10da2bb75ac1156565f40a2595fa2fa0 not available from file:/*/$TESTTMP/d (glob)\n-  1 largefiles updated, 0 removed\n-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n+  abort: merging with a working directory ancestor has no effect\n+  [255]\n \n   $ hg rollback -q\n+  no rollback information available\n+  [1]\n   $ hg up -Cq\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n Pulling 0 revisions with --all-largefiles should not fetch for all revisions\n \n@@ -1697,32 +1877,25 @@\n   adding changesets\n   adding manifests\n   adding file changes\n-  added 2 changesets with 4 changes to 4 files (+1 heads)\n-  new changesets a381d2c8c80e:598410d3eb9a (2 drafts)\n+  added 3 changesets with 4 changes to 4 files (+2 heads)\n+  new changesets f574fb32bb45:598410d3eb9a (3 drafts)\n   (run \'hg heads\' to see heads, \'hg merge\' to merge)\n   2 largefiles cached\n   $ hg merge\n-  largefile sub/large4 has a merge conflict\n-  ancestor was 971fb41e78fea4f8e0ba5244784239371cb00591\n-  you can keep (l)ocal d846f26643bfa8ec210be40cc93cc6b7ff1128ea or take (o)ther e166e74c7303192238d60af5a9c4ce9bef0b7928.\n-  what do you want to do? l\n-  getting changed largefiles\n-  1 largefiles updated, 0 removed\n-  3 files updated, 1 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n+  abort: branch \'default\' has 3 heads - please merge with an explicit rev\n+  (run \'hg heads .\' to see heads, specify rev with -r)\n+  [255]\n   $ hg commit -m "Merge repos e and f"\n-  Invoking status precommit hook\n-  M normal3\n-  M sub/normal4\n-  M sub2/large6\n+  nothing changed\n+  [1]\n   $ cat normal3\n-  normal3-modified\n+  normal33\n   $ cat sub/normal4\n-  normal4-modified\n+  normal44\n   $ cat sub/large4\n   large4-merge-test\n   $ cat sub2/large6\n-  large6-modified\n+  large6\n   $ cat sub2/large7\n   large7\n \n@@ -1740,22 +1913,18 @@\n   M normal3\n   created new head\n   $ hg merge\n-  getting changed largefiles\n-  1 largefiles updated, 0 removed\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n+  abort: branch \'default\' has 4 heads - please merge with an explicit rev\n+  (run \'hg heads .\' to see heads, specify rev with -r)\n+  [255]\n   $ hg status\n-  M large\n \n - make sure update of merge with removed largefiles fails as expected\n   $ hg rm sub2/large6\n   $ hg up -r.\n-  abort: outstanding uncommitted merge\n-  [255]\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n \n - revert should be able to revert files introduced in a pending merge\n   $ hg revert --all -r .\n-  removing .hglf/large\n   undeleting .hglf/sub2/large6\n \n Test that a normal file and a largefile with the same name and path cannot\n@@ -1774,7 +1943,7 @@\n   adding manifests\n   adding file changes\n   added 9 changesets with 26 changes to 10 files\n-  new changesets 30d30fe6a5be:a381d2c8c80e (9 drafts)\n+  new changesets 30d30fe6a5be:f574fb32bb45 (9 drafts)\n   updating to branch default\n   getting changed largefiles\n   3 largefiles updated, 0 removed\n@@ -1782,15 +1951,18 @@\n   $ cd g\n   $ hg transplant -s ../d 598410d3eb9a\n   searching for changes\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 2 changes to 2 files\n-  new changesets 598410d3eb9a (1 drafts)\n+  applying 598410d3eb9a\n+  patching file .hglf/sub2/large6\n+  Hunk #1 FAILED at 0\n+  1 out of 1 hunks FAILED -- saving rejects to file .hglf/sub2/large6.rej\n+  patching file sub/normal4\n+  Hunk #1 FAILED at 0\n+  1 out of 1 hunks FAILED -- saving rejects to file sub/normal4.rej\n+  patch failed to apply\n+  abort: fix up the working directory and run hg transplant --continue\n+  [255]\n   $ hg log --template \'{rev}:{node|short}  {desc|firstline}\\n\'\n-  9:598410d3eb9a  modify normal file largefile in repo d\n-  8:a381d2c8c80e  modify normal file and largefile in repo b\n+  8:f574fb32bb45  modify normal file largefile in repo d\n   7:daea875e9014  add/edit more largefiles\n   6:4355d653f84f  edit files yet again\n   5:9d5af5072dbd  edit files again\n@@ -1800,11 +1972,11 @@\n   1:ce8896473775  edit files\n   0:30d30fe6a5be  add files\n   $ cat normal3\n-  normal3-modified\n+  normal33\n   $ cat sub/normal4\n   normal4-modified\n   $ cat sub/large4\n-  large4-modified\n+  large44\n   $ cat sub2/large6\n   large6-modified\n   $ cat sub2/large7\n@@ -1812,46 +1984,55 @@\n \n Cat a largefile\n   $ hg cat normal3\n-  normal3-modified\n+  normal33\n   $ hg cat sub/large4\n-  large4-modified\n+  large44\n   $ rm "${USERCACHE}"/*\n   $ hg cat -r a381d2c8c80e -o cat.out sub/large4\n+  abort: unknown revision \'a381d2c8c80e\'\n+  [255]\n   $ cat cat.out\n-  large4-modified\n+  cat: cat.out: $ENOENT$\n+  [1]\n   $ rm cat.out\n+  rm: cannot lstat `cat.out\': $ENOENT$\n+  [1]\n   $ hg cat -r a381d2c8c80e normal3\n-  normal3-modified\n+  abort: unknown revision \'a381d2c8c80e\'\n+  [255]\n   $ hg cat -r \'.^\' normal3\n-  normal3-modified\n+  normal33\n   $ hg cat -r \'.^\' sub/large4 doesntexist\n-  large4-modified\n-  doesntexist: no such file in rev a381d2c8c80e\n+  large44\n+  doesntexist: no such file in rev daea875e9014\n   $ hg --cwd sub cat -r \'.^\' large4\n-  large4-modified\n+  large44\n   $ hg --cwd sub cat -r \'.^\' ../normal3\n-  normal3-modified\n+  normal33\n Cat a standin\n   $ hg cat .hglf/sub/large4\n-  e166e74c7303192238d60af5a9c4ce9bef0b7928\n+  971fb41e78fea4f8e0ba5244784239371cb00591\n   $ hg cat .hglf/normal3\n-  .hglf/normal3: no such file in rev 598410d3eb9a\n+  .hglf/normal3: no such file in rev f574fb32bb45\n   [1]\n \n Test that renaming a largefile results in correct output for status\n \n   $ hg rename sub/large4 large4-renamed\n   $ hg commit -m "test rename output"\n-  Invoking status precommit hook\n-  A large4-renamed\n-  R sub/large4\n+  abort: transplant in progress\n+  (use \'hg transplant --continue\' or \'hg transplant --stop\')\n+  [20]\n   $ cat large4-renamed\n-  large4-modified\n+  large44\n   $ cd sub2\n   $ hg rename large6 large6-renamed\n   $ hg st\n+  A large4-renamed\n   A sub2/large6-renamed\n+  R sub/large4\n   R sub2/large6\n+  ? sub/normal4.rej\n   $ cd ..\n \n Test --normal flag\n@@ -1871,6 +2052,8 @@\n \n   $ hg up -qC\n   $ hg forget normal3 large4-renamed\n+  not removing large4-renamed: file is already untracked\n+  [1]\n   $ hg add --large normal3\n   $ hg add large4-renamed\n   $ hg commit -m \'swap\' normal3 large4-renamed\n@@ -1878,9 +2061,11 @@\n   A large4-renamed\n   A normal3\n   ? new-largefile\n+  ? sub/normal4.rej\n   ? sub2/large6-renamed\n   $ hg mani\n   .hglf/normal3\n+  .hglf/sub/large4\n   .hglf/sub2/large6\n   .hglf/sub2/large7\n   large4-renamed\n', 2503, 2505, 'truncated \\uXXXX escape') decoding diff, sorry

test-lfconvert.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-lfconvert.t\n+++ c:/hgdev/src/tests/test-lfconvert.t.err\n@@ -68,21 +68,74 @@\n   $ cd bigfile-repo\n   $ hg strip --no-backup 2\n   0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: convert, share, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cd ..\n   $ rm -rf largefiles-repo largefiles-repo-symlink\n \n   $ hg lfconvert --size 0.2 bigfile-repo largefiles-repo\n   initializing destination largefiles-repo\n+  skipping incorrectly formatted tag IncorrectlyFormattedTag!\n+  skipping incorrectly formatted id invalidhash\n+  no mapping for id 0123456789abcdef\n \n "lfconvert" converts content correctly\n   $ cd largefiles-repo\n   $ hg up\n   getting changed largefiles\n-  2 largefiles updated, 0 removed\n-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  3 largefiles updated, 0 removed\n+  6 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg locate\n   .hglf/large\n+  .hglf/large2\n   .hglf/sub/maybelarge.dat\n+  .hgtags\n   normal1\n   sub/normal2\n   $ cat normal1\n@@ -90,8 +143,8 @@\n   $ cat sub/normal2\n   alsonormal\n   $ md5sum.py large sub/maybelarge.dat\n-  ec87a838931d4d5d2e94a04644788a55  large\n-  1276481102f218c981e0324180bafd9f  sub/maybelarge.dat\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n "lfconvert" adds \'largefiles\' to .hg/requires.\n   $ cat .hg/requires\n@@ -114,41 +167,48 @@\n   $ cd bigfile-repo\n   $ hg mv -q sub stuff\n   $ hg commit -m"rename sub/ to stuff/"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg update -q 1\n   $ echo blah >> normal3\n   $ echo blah >> sub/normal2\n+  $TESTTMP.sh: line 102: sub/normal2: $ENOENT$\n+  [1]\n   $ echo blah >> sub/maybelarge.dat\n+  $TESTTMP.sh: line 104: sub/maybelarge.dat: $ENOENT$\n+  [1]\n   $ md5sum.py sub/maybelarge.dat\n-  1dd0b99ff80e19cff409702a1d3f5e15  sub/maybelarge.dat\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ hg commit -A -m"add normal3, modify sub/*"\n   adding normal3\n-  created new head\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg rm large normal3\n+  not removing normal3: file is untracked\n+  [1]\n   $ hg commit -q -m"remove large, normal3"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg merge\n-  tool internal:merge (for pattern stuff/maybelarge.dat) can\'t handle binary\n-  no tool found to merge stuff/maybelarge.dat\n-  file \'stuff/maybelarge.dat\' needs to be resolved.\n-  You can keep (l)ocal [working copy], take (o)ther [merge rev], or leave (u)nresolved.\n-  What do you want to do? u\n-  merging sub/normal2 and stuff/normal2 to stuff/normal2\n-  0 files updated, 1 files merged, 0 files removed, 1 files unresolved\n-  use \'hg resolve\' to retry unresolved file merges or \'hg merge --abort\' to abandon\n-  [1]\n+  abort: nothing to merge\n+  (use \'hg update\' instead)\n+  [255]\n   $ hg cat -r . sub/maybelarge.dat > stuff/maybelarge.dat\n   $ hg resolve -m stuff/maybelarge.dat\n-  (no more unresolved files)\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg commit -m"merge"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -G --template "{rev}:{node|short}  {desc|firstline}\\n"\n-  @    5:4884f215abda  merge\n-  |\\\n-  | o  4:7285f817b77e  remove large, normal3\n-  | |\n-  | o  3:67e3892e3534  add normal3, modify sub/*\n-  | |\n-  o |  2:c96c8beb5d56  rename sub/ to stuff/\n-  |/\n-  o  1:020c65d24e11  add sub/*\n+  o  2:5caa4bef4527  add large2\n+  |\n+  @  1:020c65d24e11  add sub/*\n   |\n   o  0:117b8328f97a  add large, normal1\n   \n@@ -158,50 +218,48 @@\n   $ rm -rf largefiles-repo\n   $ hg lfconvert --size 0.2 bigfile-repo largefiles-repo\n   initializing destination largefiles-repo\n+  skipping incorrectly formatted tag IncorrectlyFormattedTag!\n+  skipping incorrectly formatted id invalidhash\n+  no mapping for id 0123456789abcdef\n   $ cd largefiles-repo\n   $ hg log -G --template "{rev}:{node|short}  {desc|firstline}\\n"\n-  o    5:9cc5aa7204f0  merge\n-  |\\\n-  | o  4:a5a02de7a8e4  remove large, normal3\n-  | |\n-  | o  3:55759520c76f  add normal3, modify sub/*\n-  | |\n-  o |  2:261ad3f3f037  rename sub/ to stuff/\n-  |/\n+  o  2:016f2d0bc43e  add large2\n+  |\n   o  1:334e5237836d  add sub/*\n   |\n   o  0:d4892ec57ce2  add large, normal1\n   \n   $ hg locate -r 2\n   .hglf/large\n-  .hglf/stuff/maybelarge.dat\n+  .hglf/large2\n+  .hglf/sub/maybelarge.dat\n+  .hgtags\n   normal1\n-  stuff/normal2\n+  sub/normal2\n   $ hg locate -r 3\n   .hglf/large\n   .hglf/sub/maybelarge.dat\n   normal1\n-  normal3\n   sub/normal2\n   $ hg locate -r 4\n-  .hglf/sub/maybelarge.dat\n-  normal1\n-  sub/normal2\n+  abort: unknown revision \'4\'\n+  [255]\n   $ hg locate -r 5\n-  .hglf/stuff/maybelarge.dat\n-  normal1\n-  stuff/normal2\n+  abort: unknown revision \'5\'\n+  [255]\n   $ hg update\n   getting changed largefiles\n-  1 largefiles updated, 0 removed\n-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  3 largefiles updated, 0 removed\n+  6 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ cat stuff/normal2\n-  alsonormal\n-  blah\n+  cat: stuff/normal2: $ENOENT$\n+  [1]\n   $ md5sum.py stuff/maybelarge.dat\n-  1dd0b99ff80e19cff409702a1d3f5e15  stuff/maybelarge.dat\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ cat .hglf/stuff/maybelarge.dat\n-  76236b6a2c6102826c61af4297dd738fb3b1de38\n+  cat: .hglf/stuff/maybelarge.dat: $ENOENT$\n+  [1]\n   $ cd ..\n \n "lfconvert" error cases\n@@ -244,14 +302,11 @@\n   scanning source...\n   sorting...\n   converting...\n-  7 add large, normal1\n-  6 add sub/*\n-  5 rename sub/ to stuff/\n-  4 add normal3, modify sub/*\n-  3 remove large, normal3\n-  2 merge\n+  4 add large, normal1\n+  3 add sub/*\n+  2 add large2\n   1 add anotherlarge (should be a largefile)\n-  0 Added tag mytag for changeset 17126745edfd\n+  0 Added tag mytag for changeset bf1fb7f17bb2\n   $ cd ../normal-repo\n   $ cat >> .hg/hgrc <<EOF\n   > [extensions]\n@@ -259,30 +314,26 @@\n   > EOF\n \n   $ hg log -G --template "{rev}:{node|short}  {desc|firstline}\\n"\n-  o  7:b5fedc110b9d  Added tag mytag for changeset 867ab992ecf4\n-  |\n-  o  6:867ab992ecf4  add anotherlarge (should be a largefile)\n-  |\n-  o    5:4884f215abda  merge\n-  |\\\n-  | o  4:7285f817b77e  remove large, normal3\n-  | |\n-  | o  3:67e3892e3534  add normal3, modify sub/*\n-  | |\n-  o |  2:c96c8beb5d56  rename sub/ to stuff/\n-  |/\n+  o  4:212274bef996  Added tag mytag for changeset 6e1a26fd2c06\n+  |\n+  o  3:6e1a26fd2c06  add anotherlarge (should be a largefile)\n+  |\n+  o  2:e5b3a291af7d  add large2\n+  |\n   o  1:020c65d24e11  add sub/*\n   |\n   o  0:117b8328f97a  add large, normal1\n   \n   $ hg update\n-  5 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  7 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg locate\n   .hgtags\n   anotherlarge\n+  large\n+  large2\n   normal1\n-  stuff/maybelarge.dat\n-  stuff/normal2\n+  sub/maybelarge.dat\n+  sub/normal2\n   $ [ -d .hg/largefiles ] && echo fail || echo pass\n   pass\n \n@@ -297,28 +348,19 @@\n   scanning source...\n   sorting...\n   converting...\n-  7 add large, normal1\n-  6 add sub/*\n-  5 rename sub/ to stuff/\n-  4 add normal3, modify sub/*\n-  3 remove large, normal3\n-  2 merge\n+  4 add large, normal1\n+  3 add sub/*\n+  2 add large2\n   1 add anotherlarge (should be a largefile)\n-  0 Added tag mytag for changeset 17126745edfd\n+  0 Added tag mytag for changeset bf1fb7f17bb2\n \n   $ hg -R largefiles-repo-hg log -G --template "{rev}:{node|short}  {desc|firstline}\\n"\n-  o  7:2f08f66459b7  Added tag mytag for changeset 17126745edfd\n-  |\n-  o  6:17126745edfd  add anotherlarge (should be a largefile)\n-  |\n-  o    5:9cc5aa7204f0  merge\n-  |\\\n-  | o  4:a5a02de7a8e4  remove large, normal3\n-  | |\n-  | o  3:55759520c76f  add normal3, modify sub/*\n-  | |\n-  o |  2:261ad3f3f037  rename sub/ to stuff/\n-  |/\n+  o  4:de841e182b29  Added tag mytag for changeset bf1fb7f17bb2\n+  |\n+  o  3:bf1fb7f17bb2  add anotherlarge (should be a largefile)\n+  |\n+  o  2:016f2d0bc43e  add large2\n+  |\n   o  1:334e5237836d  add sub/*\n   |\n   o  0:d4892ec57ce2  add large, normal1\n@@ -341,15 +383,13 @@\n   checking manifests\n   crosschecking files in changesets and manifests\n   checking files\n-  checked 8 changesets with 13 changes to 9 files\n-  searching 7 changesets for largefiles\n+  checked 5 changesets with 8 changes to 7 files\n+  searching 4 changesets for largefiles\n   changeset 0:d4892ec57ce2: large references missing $TESTTMP/largefiles-repo-hg/.hg/largefiles/2e000fa7e85759c7f4c254d4d9c33ef481e459a7\n   changeset 1:334e5237836d: sub/maybelarge.dat references missing $TESTTMP/largefiles-repo-hg/.hg/largefiles/34e163be8e43c5631d8b92e9c43ab0bf0fa62b9c\n-  changeset 2:261ad3f3f037: stuff/maybelarge.dat references missing $TESTTMP/largefiles-repo-hg/.hg/largefiles/34e163be8e43c5631d8b92e9c43ab0bf0fa62b9c\n-  changeset 3:55759520c76f: sub/maybelarge.dat references missing $TESTTMP/largefiles-repo-hg/.hg/largefiles/76236b6a2c6102826c61af4297dd738fb3b1de38\n-  changeset 5:9cc5aa7204f0: stuff/maybelarge.dat references missing $TESTTMP/largefiles-repo-hg/.hg/largefiles/76236b6a2c6102826c61af4297dd738fb3b1de38\n-  changeset 6:17126745edfd: anotherlarge references missing $TESTTMP/largefiles-repo-hg/.hg/largefiles/3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3\n-  verified existence of 6 revisions of 4 largefiles\n+  changeset 2:016f2d0bc43e: large2 references missing $TESTTMP/largefiles-repo-hg/.hg/largefiles/2e000fa7e85759c7f4c254d4d9c33ef481e459a7\n+  changeset 3:bf1fb7f17bb2: anotherlarge references missing $TESTTMP/largefiles-repo-hg/.hg/largefiles/3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3\n+  verified existence of 4 revisions of 4 largefiles\n   [1]\n   $ hg -R largefiles-repo-hg showconfig paths\n   [1]\n@@ -364,18 +404,15 @@\n   $ hg -R issue3519 ci -m \'change branch name only\'\n   $ hg lfconvert --to-normal issue3519 normalized3519\n   initializing destination normalized3519\n-  4 additional largefiles cached\n+  3 additional largefiles cached\n   scanning source...\n   sorting...\n   converting...\n-  8 add large, normal1\n-  7 add sub/*\n-  6 rename sub/ to stuff/\n-  5 add normal3, modify sub/*\n-  4 remove large, normal3\n-  3 merge\n+  5 add large, normal1\n+  4 add sub/*\n+  3 add large2\n   2 add anotherlarge (should be a largefile)\n-  1 Added tag mytag for changeset 17126745edfd\n+  1 Added tag mytag for changeset bf1fb7f17bb2\n   0 change branch name only\n \n Ensure empty commits aren\'t lost in the conversion\n@@ -393,15 +430,14 @@\n   large: largefile 2e000fa7e85759c7f4c254d4d9c33ef481e459a7 not available from file:/*/$TESTTMP/largefiles-repo (glob)\n   sub/maybelarge.dat: largefile 34e163be8e43c5631d8b92e9c43ab0bf0fa62b9c not available from file:/*/$TESTTMP/largefiles-repo (glob)\n   large: largefile 2e000fa7e85759c7f4c254d4d9c33ef481e459a7 not available from file:/*/$TESTTMP/largefiles-repo (glob)\n-  stuff/maybelarge.dat: largefile 34e163be8e43c5631d8b92e9c43ab0bf0fa62b9c not available from file:/*/$TESTTMP/largefiles-repo (glob)\n+  large2: largefile 2e000fa7e85759c7f4c254d4d9c33ef481e459a7 not available from file:/*/$TESTTMP/largefiles-repo (glob)\n+  sub/maybelarge.dat: largefile 34e163be8e43c5631d8b92e9c43ab0bf0fa62b9c not available from file:/*/$TESTTMP/largefiles-repo (glob)\n+  anotherlarge: largefile 3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3 not available from file:/*/$TESTTMP/largefiles-repo (glob)\n   large: largefile 2e000fa7e85759c7f4c254d4d9c33ef481e459a7 not available from file:/*/$TESTTMP/largefiles-repo (glob)\n-  sub/maybelarge.dat: largefile 76236b6a2c6102826c61af4297dd738fb3b1de38 not available from file:/*/$TESTTMP/largefiles-repo (glob)\n-  sub/maybelarge.dat: largefile 76236b6a2c6102826c61af4297dd738fb3b1de38 not available from file:/*/$TESTTMP/largefiles-repo (glob)\n-  stuff/maybelarge.dat: largefile 76236b6a2c6102826c61af4297dd738fb3b1de38 not available from file:/*/$TESTTMP/largefiles-repo (glob)\n-  anotherlarge: largefile 3b71f43ff30f4b15b5cd85dd9e95ebc7e84eb5a3 not available from file:/*/$TESTTMP/largefiles-repo (glob)\n-  stuff/maybelarge.dat: largefile 76236b6a2c6102826c61af4297dd738fb3b1de38 not available from file:/*/$TESTTMP/largefiles-repo (glob)\n+  large2: largefile 2e000fa7e85759c7f4c254d4d9c33ef481e459a7 not available from file:/*/$TESTTMP/largefiles-repo (glob)\n+  sub/maybelarge.dat: largefile 34e163be8e43c5631d8b92e9c43ab0bf0fa62b9c not available from file:/*/$TESTTMP/largefiles-repo (glob)\n   0 additional largefiles cached\n-  11 largefiles failed to download\n+  10 largefiles failed to download\n   abort: all largefiles must be present locally\n   [255]\n \n', 2143, 2145, 'truncated \\uXXXX escape') decoding diff, sorry

test-log.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-log.t\n+++ c:/hgdev/src/tests/test-log.t.err\n@@ -557,6 +557,54 @@\n \n   $ hg --config extensions.strip= strip -r. --no-backup\n   1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n follow files from the specified revisions across copies with -p/--patch\n \n@@ -613,6 +661,7 @@\n log copies with --copies\n \n   $ hg log -vC --template \'{rev} {file_copies}\\n\'\n+  5 dir/b/g (g)\n   4 e (dir/b)\n   3 b (a)g (f)\n   2 dir/b (b)\n@@ -622,6 +671,7 @@\n log copies switch without --copies, with old filecopy template\n \n   $ hg log -v --template \'{rev} {file_copies_switch%filecopy}\\n\'\n+  5 \n   4 \n   3 \n   2 \n@@ -631,6 +681,7 @@\n log copies switch with --copies\n \n   $ hg log -vC --template \'{rev} {file_copies_switch}\\n\'\n+  5 dir/b/g (g)\n   4 e (dir/b)\n   3 b (a)g (f)\n   2 dir/b (b)\n@@ -642,7 +693,6 @@\n \n   $ hg log -vC -r4\n   changeset:   4:7e4639b4691b\n-  tag:         tip\n   user:        test\n   date:        Thu Jan 01 00:00:05 1970 +0000\n   files:       dir/b e\n@@ -653,7 +703,6 @@\n   \n   $ hg log -vC -r4 --style=default\n   changeset:   4:7e4639b4691b\n-  tag:         tip\n   user:        test\n   date:        Thu Jan 01 00:00:05 1970 +0000\n   files:       dir/b e\n@@ -675,7 +724,7 @@\n     "parents": ["2ca5ba7019804f1f597249caddf22a64d34df0ba"],\n     "phase": "draft",\n     "rev": 4,\n-    "tags": ["tip"],\n+    "tags": [],\n     "user": "test"\n    }\n   ]\n@@ -688,9 +737,11 @@\n   $ echo foo > foo\n   $ hg ci -Ame2 -d \'6 0\'\n   adding foo\n-  created new head\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -v --template \'{rev} {file_copies}\\n\' -r 5\n-  5 e (dir/b)\n+  5 dir/b/g (g)\n \n \n log copies, execute bit set\n@@ -2796,114 +2847,45 @@\n   adding a\n ---- now we are going to add 300 lines to a\n   $ for i in `$TESTDIR/seq.py 1 300`; do echo $i >> a; done\n+  /usr/bin/env: python3: $ENOENT$\n   $ hg ci -m \'modify a\'\n+  nothing changed\n+  [1]\n   $ hg log\n-  changeset:   1:a98683e6a834\n+  changeset:   0:ac82d8b1f7c4\n   tag:         tip\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     modify a\n-  \n-  changeset:   0:ac82d8b1f7c4\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n   summary:     add a\n   \n ---- now visualise the changes we made without template\n   $ hg log -l1 -r a98683e6a834 --stat -G\n-  @  changeset:   1:a98683e6a834\n-  |  tag:         tip\n-  ~  user:        test\n-     date:        Thu Jan 01 00:00:00 1970 +0000\n-     summary:     modify a\n-  \n-      a |  300 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n-      1 files changed, 300 insertions(+), 0 deletions(-)\n-  \n+  abort: unknown revision \'a98683e6a834\'\n+  [255]\n ---- with template\n   $ hg log -l1 -r a98683e6a834 --stat -G -T bisect\n-  @  changeset:   1:a98683e6a834\n-  |  bisect:\n-  ~  tag:         tip\n-     user:        test\n-     date:        Thu Jan 01 00:00:00 1970 +0000\n-     summary:     modify a\n-  \n-      a |  300 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n-      1 files changed, 300 insertions(+), 0 deletions(-)\n-  \n+  abort: unknown revision \'a98683e6a834\'\n+  [255]\n   $ hg log -l1 -r a98683e6a834 --stat -G -T changelog\n-  1970-01-01  test  <test>\n-  \n-  @  \t* a:\n-  |  \tmodify a\n-  ~  \t[a98683e6a834] [tip]\n-  \n-      a |  300 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n-      1 files changed, 300 insertions(+), 0 deletions(-)\n-  \n+  abort: unknown revision \'a98683e6a834\'\n+  [255]\n   $ hg log -l1 -r a98683e6a834 --stat -G -T compact\n-  @  1[tip]   a98683e6a834   1970-01-01 00:00 +0000   test\n-  |    modify a\n-  ~\n-      a |  300 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n-      1 files changed, 300 insertions(+), 0 deletions(-)\n-  \n+  abort: unknown revision \'a98683e6a834\'\n+  [255]\n   $ hg log -l1 -r a98683e6a834 --stat -G -T default\n-  @  changeset:   1:a98683e6a834\n-  |  tag:         tip\n-  ~  user:        test\n-     date:        Thu Jan 01 00:00:00 1970 +0000\n-     summary:     modify a\n-  \n-      a |  300 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n-      1 files changed, 300 insertions(+), 0 deletions(-)\n-  \n+  abort: unknown revision \'a98683e6a834\'\n+  [255]\n   $ hg log -l1 -r a98683e6a834 --stat -G -T phases\n-  @  changeset:   1:a98683e6a834\n-  |  tag:         tip\n-  ~  phase:       draft\n-     user:        test\n-     date:        Thu Jan 01 00:00:00 1970 +0000\n-     summary:     modify a\n-  \n-      a |  300 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n-      1 files changed, 300 insertions(+), 0 deletions(-)\n-  \n+  abort: unknown revision \'a98683e6a834\'\n+  [255]\n   $ hg log -l1 -r a98683e6a834 --stat -G -T show\n-  @  changeset:   1:a98683e6a834\n-  |  tag:         tip\n-  ~  user:        test\n-     date:        Thu Jan 01 00:00:00 1970 +0000\n-     summary:     modify a\n-  \n-      a |  300 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n-      1 files changed, 300 insertions(+), 0 deletions(-)\n-  \n+  abort: unknown revision \'a98683e6a834\'\n+  [255]\n   $ hg log -l1 -r a98683e6a834 --stat -G -T status\n-  @  changeset:   1:a98683e6a834\n-  |  tag:         tip\n-  ~  user:        test\n-     date:        Thu Jan 01 00:00:00 1970 +0000\n-     summary:     modify a\n-     files:\n-     M a\n-  \n-      a |  300 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n-      1 files changed, 300 insertions(+), 0 deletions(-)\n-  \n+  abort: unknown revision \'a98683e6a834\'\n+  [255]\n   $ hg log -l1 -r a98683e6a834 --stat -G -T xml\n-  <?xml version="1.0"?>\n-  <log>\n-  @  <logentry revision="1" node="a98683e6a8340830a7683909768b62871e84bc9d">\n-  |  <tag>tip</tag>\n-  ~  <author email="test">test</author>\n-     <date>1970-01-01T00:00:00+00:00</date>\n-     <msg xml:space="preserve">modify a</msg>\n-     </logentry>\n-      a |  300 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n-      1 files changed, 300 insertions(+), 0 deletions(-)\n-  \n-  </log>\n+  abort: unknown revision \'a98683e6a834\'\n+  [255]\n \n   $ cd ..\n', 2126, 2128, 'truncated \\uXXXX escape') decoding diff, sorry

test-logexchange.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-logexchange.t\n+++ c:/hgdev/src/tests/test-logexchange.t.err\n@@ -414,12 +414,57 @@\n   $ echo foo > watwat\n   $ hg ci -Aqm "added watwat"\n   $ hg bookmark bar\n-  abort: bookmark \'bar\' already exists (use -f to force)\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: remotenames, show\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 1278, in bookmark\n+      bookmarks.deactivate(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg up ec24\n   3 files updated, 0 files merged, 2 files removed, 0 files unresolved\n   $ echo i > i\n   $ hg ci -Aqm "added i"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ cd ../client2\n   $ echo "[paths]" >> .hg/hgrc\n@@ -430,24 +475,21 @@\n   adding changesets\n   adding manifests\n   adding file changes\n-  added 2 changesets with 2 changes to 2 files\n-  new changesets f34adec73c21:bf433e48adea\n+  added 1 changesets with 1 changes to 1 files\n+  new changesets f34adec73c21\n   (run \'hg update\' to get a working copy)\n \n   $ hg log -Gr \'remotenames()\' -T \'{rev}:{node|short} {desc}\\n({remotebranches})  [{remotebookmarks}]\\n\\n\'\n-  o  10:bf433e48adea added i\n-  |  (server2/default)  []\n-  |\n-  | o  9:f34adec73c21 added watwat\n-  | |  (server2/wat)  []\n-  | |\n-  | o  8:3e1487808078 added bar\n-  | :  (default/wat)  [default/foo]\n-  | :\n-  @ :  7:ec2426147f0e Added h\n-  | :  (default/default)  []\n-  | :\n-  o :  6:87d6d6676308 Added g\n+  o  9:f34adec73c21 added watwat\n+  |  (server2/wat)  []\n+  |\n+  o  8:3e1487808078 added bar\n+  :  (default/wat)  [default/foo]\n+  :\n+  : @  7:ec2426147f0e Added h\n+  : |  (default/default server2/default)  []\n+  : |\n+  : o  6:87d6d6676308 Added g\n   :/   ()  [default/bar server2/bar]\n   :\n   o  3:62615734edd5 Added d\n@@ -467,12 +509,10 @@\n   ~\n \n   $ hg log -r \'remotenames("re:default")\' -GT "{rev}:{node|short} {remotenames}\\n"\n-  o  10:bf433e48adea server2/default\n-  |\n-  | o  8:3e1487808078 default/foo default/wat\n-  | |\n-  | ~\n-  @  7:ec2426147f0e default/default\n+  o  8:3e1487808078 default/foo default/wat\n+  |\n+  ~\n+  @  7:ec2426147f0e default/default server2/default\n   |\n   o  6:87d6d6676308 default/bar server2/bar\n   |\n@@ -513,21 +553,19 @@\n Testing pattern matching\n \n   $ hg log -r \'remotenames("re:def")\' -GT "{rev}:{node|short} {remotenames}\\n"\n-  o  10:bf433e48adea server2/default\n-  |\n-  | o  8:3e1487808078 default/foo default/wat\n-  | |\n-  | ~\n-  @  7:ec2426147f0e default/default\n+  o  8:3e1487808078 default/foo default/wat\n+  |\n+  ~\n+  @  7:ec2426147f0e default/default server2/default\n   |\n   o  6:87d6d6676308 default/bar server2/bar\n   |\n   ~\n \n   $ hg log -r \'remotebranches("re:ser.*2")\' -GT "{rev}:{node|short} {remotebranches}\\n"\n-  o  10:bf433e48adea server2/default\n-  |\n-  ~\n   o  9:f34adec73c21 server2/wat\n   |\n   ~\n+  @  7:ec2426147f0e default/default server2/default\n+  |\n+  ~\n', 2166, 2168, 'truncated \\uXXXX escape') decoding diff, sorry

test-mactext.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-mactext.t\n+++ c:/hgdev/src/tests/test-mactext.t.err\n@@ -24,13 +24,63 @@\n   $ hg ci -m 2\n   attempt to commit or push text file(s) using CR line endings\n   in dea860dc51ec: f\n-  transaction abort!\n-  rollback completed\n-  abort: pretxncommit.cr hook failed\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2127, in _docommit\n+      node = cmdutil.commit(ui, repo, commitfunc, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2754, in commit\n+      return commitfunc(ui, repo, message, matcher, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2124, in commitfunc\n+      extra=extra,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg cat f | f --hexdump\n-  \n-  0000: 68 65 6c 6c 6f 0a                               |hello.|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ f --hexdump f\n-  f:\n-  0000: 68 65 6c 6c 6f 0d                               |hello.|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n', 2190, 2192, 'truncated \\uXXXX escape') decoding diff, sorry

test-merge-combination.t

--- c:/hgdev/src/tests/test-merge-combination.t
+++ c:/hgdev/src/tests/test-merge-combination.t.err
@@ -89,57 +89,10 @@
   > }
 
   $ genmerges
-  1111  : agree on ""
-  1112  : agree on "a"
-  111-  : agree on "a"
-  1121  : agree on "a"
-  1122  : agree on ""
-  1123  : agree on "a"
-  112-  : agree on "a"
-  11-1  : hg said "", expected "a"
-  11-2  : agree on "a"
-  11--  : agree on ""
-  1211  : agree on "a"
-  1212  : agree on ""
-  1213  : agree on "a"
-  121-  : agree on "a"
-  1221  : agree on "a"
-  1222  : agree on ""
-  1223  : agree on "a"
-  122-  : agree on "a"
-  1231 C: agree on "a"
-  1232 C: agree on "a"
-  1233 C: agree on "a"
-  1234 C: agree on "a"
-  123- C: agree on "a"
-  12-1 C: agree on "a"
-  12-2 C: hg said "", expected "a"
-  12-3 C: agree on "a"
-  12-- C: agree on "a"
-  1-11  : hg said "", expected "a"
-  1-12  : agree on "a"
-  1-1-  : agree on ""
-  1-21 C: agree on "a"
-  1-22 C: hg said "", expected "a"
-  1-23 C: agree on "a"
-  1-2- C: agree on "a"
-  1--1  : agree on "a"
-  1--2  : agree on "a"
-  1---  : agree on ""
-  -111  : agree on ""
-  -112  : agree on "a"
-  -11-  : agree on "a"
-  -121 C: agree on "a"
-  -122 C: agree on "a"
-  -123 C: agree on "a"
-  -12- C: agree on "a"
-  -1-1  : agree on ""
-  -1-2  : agree on "a"
-  -1--  : agree on "a"
-  --11  : agree on ""
-  --12  : agree on "a"
-  --1-  : agree on "a"
-  ---1  : agree on "a"
+  /usr/bin/env: python3: $ENOENT$
+  /usr/bin/env: python3: $ENOENT$
+  /usr/bin/env: python3: $ENOENT$
+  /usr/bin/env: python3: $ENOENT$
   ----  : agree on ""
 
 All the merges of executable bit.

test-merge-commit.t

--- c:/hgdev/src/tests/test-merge-commit.t
+++ c:/hgdev/src/tests/test-merge-commit.t.err
@@ -70,8 +70,9 @@
   resolving manifests
    branchmerge: True, force: False, partial: False
    ancestor: 0f2ff26688b9, local: 2263c1be0967+, remote: 0555950ead28
+  starting 4 threads for background file closing
+  starting 4 threads for background file closing (?)
    preserving bar for resolve of bar
-  starting 4 threads for background file closing (?)
    bar: versions differ -> m (premerge)
   picked tool ':merge' for bar (binary False symlink False changedelete False)
   merging bar
@@ -157,8 +158,9 @@
   resolving manifests
    branchmerge: True, force: False, partial: False
    ancestor: 0f2ff26688b9, local: 2263c1be0967+, remote: 3ffa6b9e35f0
+  starting 4 threads for background file closing
+  starting 4 threads for background file closing (?)
    preserving bar for resolve of bar
-  starting 4 threads for background file closing (?)
    bar: versions differ -> m (premerge)
   picked tool ':merge' for bar (binary False symlink False changedelete False)
   merging bar

test-merge-criss-cross.t#newfilenode

--- c:/hgdev/src/tests/test-merge-criss-cross.t
+++ c:/hgdev/src/tests/test-merge-criss-cross.t#newfilenode.err
@@ -105,30 +105,8 @@
   [1]
 
   $ f --dump *
-  f1:
-  >>>
-  5 second change
-  <<<
-  f2:
-  >>>
-  6 second change
-  <<<
-  f2.base:
-  >>>
-  0 base
-  <<<
-  f2.local:
-  >>>
-  6 second change
-  <<<
-  f2.orig:
-  >>>
-  6 second change
-  <<<
-  f2.other:
-  >>>
-  2 first change
-  <<<
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
   $ hg up -qC .
   $ hg merge -v --tool internal:dump 5 --config merge.preferancestor="null 40663881 3b08d"
@@ -179,14 +157,8 @@
   (branch merge, don't forget to commit)
 
   $ f --dump *
-  f1:
-  >>>
-  5 second change
-  <<<
-  f2:
-  >>>
-  6 second change
-  <<<
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
 
 The other way around:
@@ -228,14 +200,8 @@
   (branch merge, don't forget to commit)
 
   $ f --dump *
-  f1:
-  >>>
-  5 second change
-  <<<
-  f2:
-  >>>
-  6 second change
-  <<<
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
 Verify how the output looks and and how verbose it is:
 
@@ -602,6 +568,7 @@
   $ hg update 'desc("updating-both-file")'
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved (newfilenode !)
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved (old !)
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg merge 'desc("delete-the-file")' -t :local
   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
@@ -635,6 +602,7 @@
   |   +---o  38a4c3e7cac8 merge-keeping-the-file-from-deleted (newfilenode !)
   +---o  e9b708131723 merge-keeping-the-file-from-deleted (old !)
+  +---o  e9b708131723 merge-keeping-the-file-from-deleted
   | |/
   +---o  a4e0e44229dc merge-deleting-the-file-from-updated
   | |/
@@ -708,6 +676,7 @@
   $ hg update --clean 'desc("merge-deleting-the-file-from-deleted")'
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved (newfilenode !)
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved (old !)
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg merge          'desc("merge-keeping-the-file-from-updated")'
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
@@ -776,6 +745,7 @@
   $ hg update --clean 'desc("merge-deleting-the-file-from-updated")'
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved (newfilenode !)
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved (old !)
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg merge          'desc("merge-keeping-the-file-from-updated")'
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
@@ -793,6 +763,7 @@
   $ hg merge          'desc("merge-keeping-the-file-from-deleted")'
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved (newfilenode !)
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved (old !)
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
   $ ls -1
   other-file
@@ -813,6 +784,7 @@
   $ hg update --clean 'desc("merge-keeping-the-file-from-updated")'
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved (newfilenode !)
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved (old !)
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg merge          'desc("merge-deleting-the-file-from-deleted")'
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
@@ -845,6 +817,7 @@
   $ hg update --clean 'desc("merge-keeping-the-file-from-deleted")'
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved (newfilenode !)
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved (old !)
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg merge          'desc("merge-keeping-the-file-from-updated")'
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)

test-merge-criss-cross.t#old

--- c:/hgdev/src/tests/test-merge-criss-cross.t
+++ c:/hgdev/src/tests/test-merge-criss-cross.t#old.err
@@ -105,30 +105,8 @@
   [1]
 
   $ f --dump *
-  f1:
-  >>>
-  5 second change
-  <<<
-  f2:
-  >>>
-  6 second change
-  <<<
-  f2.base:
-  >>>
-  0 base
-  <<<
-  f2.local:
-  >>>
-  6 second change
-  <<<
-  f2.orig:
-  >>>
-  6 second change
-  <<<
-  f2.other:
-  >>>
-  2 first change
-  <<<
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
   $ hg up -qC .
   $ hg merge -v --tool internal:dump 5 --config merge.preferancestor="null 40663881 3b08d"
@@ -179,14 +157,8 @@
   (branch merge, don't forget to commit)
 
   $ f --dump *
-  f1:
-  >>>
-  5 second change
-  <<<
-  f2:
-  >>>
-  6 second change
-  <<<
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
 
 The other way around:
@@ -228,14 +200,8 @@
   (branch merge, don't forget to commit)
 
   $ f --dump *
-  f1:
-  >>>
-  5 second change
-  <<<
-  f2:
-  >>>
-  6 second change
-  <<<
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
 Verify how the output looks and and how verbose it is:
 
@@ -602,6 +568,7 @@
   $ hg update 'desc("updating-both-file")'
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved (newfilenode !)
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved (old !)
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg merge 'desc("delete-the-file")' -t :local
   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
@@ -635,6 +602,7 @@
   |   +---o  38a4c3e7cac8 merge-keeping-the-file-from-deleted (newfilenode !)
   +---o  e9b708131723 merge-keeping-the-file-from-deleted (old !)
+  +---o  e9b708131723 merge-keeping-the-file-from-deleted
   | |/
   +---o  a4e0e44229dc merge-deleting-the-file-from-updated
   | |/
@@ -708,6 +676,7 @@
   $ hg update --clean 'desc("merge-deleting-the-file-from-deleted")'
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved (newfilenode !)
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved (old !)
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg merge          'desc("merge-keeping-the-file-from-updated")'
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
@@ -776,6 +745,7 @@
   $ hg update --clean 'desc("merge-deleting-the-file-from-updated")'
   0 files updated, 0 files merged, 1 files removed, 0 files unresolved (newfilenode !)
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved (old !)
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg merge          'desc("merge-keeping-the-file-from-updated")'
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
@@ -793,6 +763,7 @@
   $ hg merge          'desc("merge-keeping-the-file-from-deleted")'
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved (newfilenode !)
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved (old !)
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
   $ ls -1
   other-file
@@ -813,6 +784,7 @@
   $ hg update --clean 'desc("merge-keeping-the-file-from-updated")'
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved (newfilenode !)
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved (old !)
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg merge          'desc("merge-deleting-the-file-from-deleted")'
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
@@ -845,6 +817,7 @@
   $ hg update --clean 'desc("merge-keeping-the-file-from-deleted")'
   1 files updated, 0 files merged, 0 files removed, 0 files unresolved (newfilenode !)
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved (old !)
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg merge          'desc("merge-keeping-the-file-from-updated")'
   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)

test-merge-no-file-change.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-merge-no-file-change.t\n+++ c:/hgdev/src/tests/test-merge-no-file-change.t.err\n@@ -356,21 +356,82 @@\n   $ hg ci -qm2\n   $ echo foo > a\n   $ hg ci -qm3 --amend\n-\n-  $ hg merge\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n-  $ hg ci --debug -m merge\n-  reusing manifest from p1 (no file change)\n-  committing changelog\n-  updating the branch cache\n-  committed changeset 3:314e5bc5adf5c58ea571efabe33eedba20a201aa\n+  strip failed, backup bundle stored in \'$TESTTMP\\amend-p1\\.hg\\strip-backup/d08977d2ef2b-531698f1-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\amend-p1\\.hg\\strip-backup/d08977d2ef2b-58849c28-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\amend-p1\\.hg\\strip-backup/d08977d2ef2b-58849c28-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: convert\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+\n+  $ hg merge\n+  abort: branch \'default\' has 3 heads - please merge with an explicit rev\n+  (run \'hg heads .\' to see heads, specify rev with -r)\n+  [255]\n+  $ hg ci --debug -m merge\n+  nothing to commit, clearing merge state\n+  nothing changed\n+  [1]\n   $ hg log -GT\'{l} branch={branch}\'\n-  @    3:314e5bc5adf5 p=2,1 m=1:d33ea248bd73 f=[] branch=default\n-  |\\\n-  | o  2:de9c64f226a3 p=0,-1 m=1:d33ea248bd73 f=["a"] branch=default\n-  | |\n-  o |  1:6a74aec01b3c p=0,-1 m=1:d33ea248bd73 f=["a"] branch=default\n+  @  3:de9c64f226a3 p=0,-1 m=1:d33ea248bd73 f=["a"] branch=default\n+  |\n+  | o  2:d08977d2ef2b p=0,-1 m=2:0ad560680a25 f=["a"] branch=default\n+  |/\n+  | o  1:6a74aec01b3c p=0,-1 m=1:d33ea248bd73 f=["a"] branch=default\n   |/\n   o  0:487a0a245cea p=-1,-1 m=0:8515d4bfda76 f=["a"] branch=default\n   \n', 2771, 2773, 'truncated \\uXXXX escape') decoding diff, sorry

test-merge-tools.t

--- c:/hgdev/src/tests/test-merge-tools.t
+++ c:/hgdev/src/tests/test-merge-tools.t.err
@@ -1031,7 +1031,8 @@
   # hg update -C 1
   $ hg update -q 0
   $ f -s f
-  f: size=17
+  /usr/bin/env: python3: $ENOENT$
+  [127]
   $ touch -t 200001010000 f
   $ hg debugrebuildstate
   $ cat >> $HGRCPATH <<EOF
@@ -1044,7 +1045,8 @@
   > fakedirstatewritetime = !
   > EOF
   $ f -s f
-  f: size=17
+  /usr/bin/env: python3: $ENOENT$
+  [127]
   $ touch -t 200001010000 f
   $ hg status f
   M f
@@ -1076,7 +1078,8 @@
   # hg update -C 1
   $ hg update -q 0
   $ f -s f
-  f: size=17
+  /usr/bin/env: python3: $ENOENT$
+  [127]
   $ touch -t 200001010000 f
   $ hg debugrebuildstate
   $ cat >> $HGRCPATH <<EOF
@@ -1089,7 +1092,8 @@
   > fakedirstatewritetime = !
   > EOF
   $ f -s f
-  f: size=17
+  /usr/bin/env: python3: $ENOENT$
+  [127]
   $ touch -t 200001010000 f
   $ hg status f
   M f
@@ -1936,8 +1940,8 @@
 internal merge tools is checked strictly.
 
   $ f --hexdump b
-  b:
-  0000: 03 02 01 00                                     |....|
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
 (for merge-patterns)
 
@@ -1949,8 +1953,8 @@
   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
   $ f --hexdump b
-  b:
-  0000: 00 01 02 03                                     |....|
+  /usr/bin/env: python3: $ENOENT$
+  [127]
   $ hg merge --abort -q
 
 (for ui.merge)
@@ -1960,8 +1964,8 @@
   0 files updated, 1 files merged, 0 files removed, 0 files unresolved
   (branch merge, don't forget to commit)
   $ f --hexdump b
-  b:
-  0000: 00 01 02 03                                     |....|
+  /usr/bin/env: python3: $ENOENT$
+  [127]
   $ hg merge --abort -q
 
 Check that the extra information is printed correctly
@@ -1977,6 +1981,7 @@
   
   Running merge tool for b ("*/bin/echo.exe"): (glob) (windows !)
   Running merge tool for b (*/bin/echo): (glob) (no-windows !)
+  Running merge tool for b ("C:\hgdev\MinGW\msys.0in\echo.exe"):
   - local (working copy): 10:2d1f533d add binary file (#2) tip default
   -          base (base): -1:00000000  default
   -    other (merge rev): 9:1e7ad7d7 add binary file (#1) default

test-merge1.t

--- c:/hgdev/src/tests/test-merge1.t
+++ c:/hgdev/src/tests/test-merge1.t.err
@@ -32,6 +32,7 @@
   $ hg up
   abort: Unlinking directory not permitted: *$TESTTMP/t/b* (glob) (windows !)
   abort: Directory not empty: '?\$TESTTMP/t/b'? (re) (no-windows !)
+  abort: Unlinking directory not permitted: '$TESTTMP	'
   [255]
   $ hg ci
   abort: last update was interrupted

test-merge7.t

--- c:/hgdev/src/tests/test-merge7.t
+++ c:/hgdev/src/tests/test-merge7.t.err
@@ -84,8 +84,9 @@
   resolving manifests
    branchmerge: True, force: False, partial: False
    ancestor: 96b70246a118, local: 50c3a7e29886+, remote: 40d11a4173a8
+  starting 4 threads for background file closing
+  starting 4 threads for background file closing (?)
    preserving test.txt for resolve of test.txt
-  starting 4 threads for background file closing (?)
    test.txt: versions differ -> m (premerge)
   picked tool ':merge' for test.txt (binary False symlink False changedelete False)
   merging test.txt

test-mq-eol.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-mq-eol.t\n+++ c:/hgdev/src/tests/test-mq-eol.t.err\n@@ -69,86 +69,140 @@\n   [2]\n   $ hg qpop\n   popping eol.diff\n-  patch queue now empty\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3582, in pop\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1863, in pop\n+      strip(self.ui, repo, [rev], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n invalid eol\n \n   $ hg --config patch.eol=\'LFCR\' qpush\n-  applying eol.diff\n-  patch failed, unable to continue (try -v)\n-  patch failed, rejects left in working directory\n-  errors during apply, please fix and qrefresh eol.diff\n-  [2]\n-  $ hg qpop\n-  popping eol.diff\n-  patch queue now empty\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n+  $ hg qpop\n+  popping eol.diff\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n force LF\n \n   $ hg --config patch.eol=\'CRLF\' qpush\n-  applying eol.diff\n-  now at: eol.diff\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n   $ hg qrefresh\n+  abort: working directory revision is not qtip\n+  [255]\n   $ "$PYTHON" ../cateol.py .hg/patches/eol.diff\n-  # HG changeset patch<LF>\n-  # Parent  0d0bf99a8b7a3842c6f8ef09e34f69156c4bd9d0<LF>\n-  test message<LF>\n-  <LF>\n-  diff -r 0d0bf99a8b7a a<LF>\n-  --- a/a<LF>\n-  +++ b/a<LF>\n-  @@ -1,5 +1,5 @@<LF>\n-  -a<LF>\n-  -b<LF>\n-  -c<LF>\n-  -d<LF>\n-  -e<LF>\n-  \\ No newline at end of file<LF>\n-  +a<CR><LF>\n-  +y<CR><LF>\n-  +c<CR><LF>\n-  +d<CR><LF>\n-  +z<LF>\n-  \\ No newline at end of file<LF>\n+  test message<LF>\\r (esc)\n+  diff --git a/a b/a<LF>\\r (esc)\n+  --- a/a<LF>\\r (esc)\n+  +++ b/a<LF>\\r (esc)\n+  @@ -1,5 +1,5 @@<LF>\\r (esc)\n+   a<LF>\\r (esc)\n+  -b<CR><LF>\\r (esc)\n+  +y<CR><LF>\\r (esc)\n+   c<CR><LF>\\r (esc)\n+   d<LF>\\r (esc)\n+  -e<LF>\\r (esc)\n+  \\\\ No newline at end of file<LF>\\r (esc)\n+  +z<CR><LF>\\r (esc)\n+  \\\\ No newline at end of file<CR><LF>\\r (esc)\n   $ "$PYTHON" ../cateol.py a\n-  a<CR><LF>\n-  y<CR><LF>\n-  c<CR><LF>\n-  d<CR><LF>\n-  z\n-  $ hg qpop\n-  popping eol.diff\n-  patch queue now empty\n+  a<LF>\\r (esc)\n+  b<LF>\\r (esc)\n+  c<LF>\\r (esc)\n+  d<LF>\\r (esc)\n+  e\\r (esc)\n+  $ hg qpop\n+  popping eol.diff\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n push again forcing LF and compare revisions\n \n   $ hg --config patch.eol=\'CRLF\' qpush\n-  applying eol.diff\n-  now at: eol.diff\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n   $ "$PYTHON" ../cateol.py a\n-  a<CR><LF>\n-  y<CR><LF>\n-  c<CR><LF>\n-  d<CR><LF>\n-  z\n-  $ hg qpop\n-  popping eol.diff\n-  patch queue now empty\n+  a<LF>\\r (esc)\n+  b<LF>\\r (esc)\n+  c<LF>\\r (esc)\n+  d<LF>\\r (esc)\n+  e\\r (esc)\n+  $ hg qpop\n+  popping eol.diff\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n push again without LF and compare revisions\n \n   $ hg qpush\n-  applying eol.diff\n-  now at: eol.diff\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n   $ "$PYTHON" ../cateol.py a\n-  a<CR><LF>\n-  y<CR><LF>\n-  c<CR><LF>\n-  d<CR><LF>\n-  z\n-  $ hg qpop\n-  popping eol.diff\n-  patch queue now empty\n+  a<LF>\\r (esc)\n+  b<LF>\\r (esc)\n+  c<LF>\\r (esc)\n+  d<LF>\\r (esc)\n+  e\\r (esc)\n+  $ hg qpop\n+  popping eol.diff\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cd ..\n \n \n@@ -163,53 +217,85 @@\n   $ hg qnew patch1\n   $ hg qpop\n   popping patch1\n-  patch queue now empty\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3582, in pop\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1863, in pop\n+      strip(self.ui, repo, [rev], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ "$PYTHON" -c "open(\'a\', \'wb\').write(b\'1\\r\\n22\\r\\n33\\r\\n4\')"\n   $ hg ci -m changea\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg --config \'patch.eol=LF\' qpush\n-  applying patch1\n-  patching file a\n-  Hunk #1 FAILED at 0\n-  1 out of 1 hunks FAILED -- saving rejects to file a.rej\n-  patch failed, unable to continue (try -v)\n-  patch failed, rejects left in working directory\n-  errors during apply, please fix and qrefresh patch1\n-  [2]\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n   $ hg qpop\n   popping patch1\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat a.rej\n-  --- a\n-  +++ a\n-  @@ -1,4 +1,4 @@\n-   1\\r (esc)\n-   2\\r (esc)\n-  -3\\r (esc)\n-  +33\\r (esc)\n-   4\n-  \\ No newline at end of file\n+  cat: a.rej: $ENOENT$\n+  [1]\n \n   $ hg --config \'patch.eol=auto\' qpush\n-  applying patch1\n-  patching file a\n-  Hunk #1 FAILED at 0\n-  1 out of 1 hunks FAILED -- saving rejects to file a.rej\n-  patch failed, unable to continue (try -v)\n-  patch failed, rejects left in working directory\n-  errors during apply, please fix and qrefresh patch1\n-  [2]\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n   $ hg qpop\n   popping patch1\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat a.rej\n-  --- a\n-  +++ a\n-  @@ -1,4 +1,4 @@\n-   1\\r (esc)\n-   2\\r (esc)\n-  -3\\r (esc)\n-  +33\\r (esc)\n-   4\n-  \\ No newline at end of file\n+  cat: a.rej: $ENOENT$\n+  [1]\n   $ cd ..\n', 2070, 2072, 'truncated \\uXXXX escape') decoding diff, sorry

test-mq-git.t

--- c:/hgdev/src/tests/test-mq-git.t
+++ c:/hgdev/src/tests/test-mq-git.t.err
@@ -63,13 +63,17 @@
 git=auto: regular patch after qrefresh without --git:
 
   $ hg qrefresh -d '0 0'
+  abort: $TESTTMP
epo-auto\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child524\test-mq-git.t\repo-auto\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x0000000001644088>> ignored
+  [255]
 
   $ cat .hg/patches/git
   # HG changeset patch
   # Date 0 0
   # Parent  99586d5f048c399e20f81cee41fbb3809c0e735d
   
-  diff -r 99586d5f048c regular
+  diff --git a/regular b/regular
+  new file mode 100644
   --- /dev/null
   +++ b/regular
   @@ -0,0 +1,1 @@
@@ -104,18 +108,20 @@
 
   $ echo a >> a
   $ hg qrefresh -d '0 0'
-
-  $ cat .hg/patches/git
-  # HG changeset patch
-  # Date 0 0
-  # Parent  0000000000000000000000000000000000000000
-  
-  diff --git a/a b/a
-  new file mode 100644
-  --- /dev/null
-  +++ b/a
-  @@ -0,0 +1,2 @@
-  +a
+  abort: $TESTTMP
epo-keep\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child524\test-mq-git.t\repo-keep\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x0000000001774088>> ignored
+  [255]
+
+  $ cat .hg/patches/git
+  # HG changeset patch
+  # Date 0 0
+  # Parent  0000000000000000000000000000000000000000
+  
+  diff --git a/a b/a
+  new file mode 100644
+  --- /dev/null
+  +++ b/a
+  @@ -0,0 +1,1 @@
   +a
   $ cd ..
 
@@ -146,18 +152,20 @@
 
   $ echo a >> a
   $ hg qrefresh -d '0 0'
-
-  $ cat .hg/patches/git
-  # HG changeset patch
-  # Date 0 0
-  # Parent  0000000000000000000000000000000000000000
-  
-  diff --git a/a b/a
-  new file mode 100644
-  --- /dev/null
-  +++ b/a
-  @@ -0,0 +1,2 @@
-  +a
+  abort: $TESTTMP
epo-yes\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child524\test-mq-git.t\repo-yes\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x0000000001704088>> ignored
+  [255]
+
+  $ cat .hg/patches/git
+  # HG changeset patch
+  # Date 0 0
+  # Parent  0000000000000000000000000000000000000000
+  
+  diff --git a/a b/a
+  new file mode 100644
+  --- /dev/null
+  +++ b/a
+  @@ -0,0 +1,1 @@
   +a
   $ cd ..
 
@@ -191,20 +199,18 @@
 
   $ hg cp a c
   $ hg qrefresh -d '0 0'
+  abort: $TESTTMP
epo-no\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child524\test-mq-git.t\repo-no\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x00000000017B4088>> ignored
+  [255]
 
   $ cat .hg/patches/regular
   # HG changeset patch
   # Date 0 0
   # Parent  ef8dafc9fa4caff80f6e243eb0171bcd60c455b4
   
-  diff -r ef8dafc9fa4c b
+  diff -r ef8dafc9fa4c -r a70404f79ba3 b
   --- /dev/null
   +++ b/b
-  @@ -0,0 +1,1 @@
-  +a
-  diff -r ef8dafc9fa4c c
-  --- /dev/null
-  +++ b/c
   @@ -0,0 +1,1 @@
   +a
 
@@ -225,45 +231,21 @@
 
   $ echo ' a' > a
   $ hg qnew prepare -d '0 0'
+  abort: working directory revision is not qtip
+  [255]
   $ echo '  a' > a
   $ printf '' > b
   $ echo >> c
   $ hg qnew diff -d '0 0'
+  abort: working directory revision is not qtip
+  [255]
 
   $ cat .hg/patches/prepare
-  # HG changeset patch
-  # Date 0 0
-  # Parent  cf0bfe72686a47d8d7d7b4529a3adb8b0b449a9f
-  
-  diff -r cf0bfe72686a -r fb9c4422b0f3 a
-  --- a/a
-  +++ b/a
-  @@ -1,1 +1,1 @@
-  -a
-  + a
+  cat: .hg/patches/prepare: $ENOENT$
+  [1]
   $ cat .hg/patches/diff
-  # HG changeset patch
-  # Date 0 0
-  # Parent  fb9c4422b0f37dd576522dd9a3f99b825c177efe
-  
-  diff --git a/a b/a
-  --- a/a
-  +++ b/a
-  @@ -1,1 +1,1 @@
-  - a
-  +  a
-  diff --git a/b b/b
-  index 78981922613b2afb6025042ff6bd878ac1994e85..f76dd238ade08917e6712764a16a22005a50573d
-  GIT binary patch
-  literal 1
-  Ic${MZ000310RR91
-  
-  diff --git a/c b/c
-  --- a/c
-  +++ b/c
-  @@ -1,1 +1,2 @@
-   a
-  +
-
-  $ cd ..
-
+  cat: .hg/patches/diff: $ENOENT$
+  [1]
+
+  $ cd ..
+

test-mq-guards.t

--- c:/hgdev/src/tests/test-mq-guards.t
+++ c:/hgdev/src/tests/test-mq-guards.t.err
@@ -12,22 +12,33 @@
   $ echo a > a
   $ hg add a
   $ hg qrefresh
+  abort: $TESTTMP\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child321\test-mq-guards.t\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x00000000016E4EC8>> ignored
+  [255]
 
   $ hg qnew b.patch
+  abort: working directory revision is not qtip
+  [255]
   $ echo b > b
   $ hg add b
   $ hg qrefresh
+  abort: working directory revision is not qtip
+  [255]
 
   $ hg qnew c.patch
+  abort: working directory revision is not qtip
+  [255]
   $ echo c > c
   $ hg add c
   $ hg qrefresh
-
-  $ hg qpop -a
-  popping c.patch
-  popping b.patch
-  popping a.patch
-  patch queue now empty
+  abort: working directory revision is not qtip
+  [255]
+
+  $ hg qpop -a
+  popping a.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
 
 
 should fail
@@ -40,12 +51,11 @@
 should fail
 
   $ hg qguard +fail
-  abort: no patches applied
-  [255]
-
-  $ hg qpush
-  applying a.patch
-  now at: a.patch
+
+  $ hg qpush
+  (working directory not at a head)
+  patch series already fully applied
+  [1]
 
 should guard a.patch
 
@@ -57,14 +67,16 @@
   a.patch: +a
   $ hg qpop
   popping a.patch
-  patch queue now empty
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
 
 
 should fail
 
   $ hg qpush a.patch
-  cannot push 'a.patch' - guarded by '+a'
-  [1]
+  (working directory not at a head)
+  qpush: a.patch is already at the top
 
   $ hg qguard a.patch
   a.patch: +a
@@ -72,12 +84,15 @@
 should push b.patch
 
   $ hg qpush
-  applying b.patch
-  now at: b.patch
+  (working directory not at a head)
+  patch series already fully applied
+  [1]
 
   $ hg qpop
-  popping b.patch
-  patch queue now empty
+  popping a.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
 
 test selection of an empty guard
 
@@ -85,28 +100,31 @@
   abort: guard cannot be an empty string
   [255]
   $ hg qselect a
-  number of unguarded, unapplied patches has changed from 2 to 3
+  number of guarded, applied patches has changed from 1 to 0
 
 should push a.patch
 
   $ hg qpush
-  applying a.patch
-  now at: a.patch
+  (working directory not at a head)
+  patch series already fully applied
+  [1]
 
   $ hg qguard -- c.patch -a
+  abort: no patch named c.patch
+  [255]
 
 should print -a
 
   $ hg qguard c.patch
-  c.patch: -a
+  abort: patch c.patch not in series
+  [255]
 
 
 should skip c.patch
 
   $ hg qpush -a
-  applying b.patch
-  skipping c.patch - guarded by '-a'
-  now at: b.patch
+  (working directory not at a head)
+  all patches are currently applied
   $ hg qnext
   all patches applied
   [1]
@@ -114,131 +132,142 @@
 should display b.patch
 
   $ hg qtop
-  b.patch
+  a.patch
 
   $ hg qguard -n c.patch
+  abort: no patch named c.patch
+  [255]
 
 should push c.patch
 
   $ hg qpush -a
-  applying c.patch
-  now at: c.patch
-
-  $ hg qpop -a
-  popping c.patch
-  popping b.patch
-  popping a.patch
-  patch queue now empty
+  (working directory not at a head)
+  all patches are currently applied
+
+  $ hg qpop -a
+  popping a.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
   $ hg qselect -n
   guards deactivated
-  number of unguarded, unapplied patches has changed from 3 to 2
+  number of guarded, applied patches has changed from 0 to 1
 
 should push all
 
   $ hg qpush -a
-  applying b.patch
-  applying c.patch
-  now at: c.patch
-
-  $ hg qpop -a
-  popping c.patch
-  popping b.patch
-  patch queue now empty
+  (working directory not at a head)
+  all patches are currently applied
+
+  $ hg qpop -a
+  popping a.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
   $ hg qguard a.patch +1
   $ hg qguard b.patch +2
+  abort: no patch named b.patch
+  [255]
   $ hg qselect 1
-  number of unguarded, unapplied patches has changed from 1 to 2
+  number of guarded, applied patches has changed from 1 to 0
 
 should push a.patch, not b.patch
 
   $ hg qpush
-  applying a.patch
-  now at: a.patch
-  $ hg qpush
-  applying c.patch
-  now at: c.patch
-  $ hg qpop -a
-  popping c.patch
-  popping a.patch
-  patch queue now empty
+  (working directory not at a head)
+  patch series already fully applied
+  [1]
+  $ hg qpush
+  (working directory not at a head)
+  patch series already fully applied
+  [1]
+  $ hg qpop -a
+  popping a.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
 
   $ hg qselect 2
+  number of guarded, applied patches has changed from 0 to 1
 
 should push b.patch
 
   $ hg qpush
-  applying b.patch
-  now at: b.patch
-  $ hg qpush -a
-  applying c.patch
-  now at: c.patch
+  (working directory not at a head)
+  patch series already fully applied
+  [1]
+  $ hg qpush -a
+  (working directory not at a head)
+  all patches are currently applied
   $ hg qprev
-  b.patch
+  only one patch applied
+  [1]
 
 Used to be an issue with holes in the patch sequence
 So, put one hole on the base and ask for topmost patch.
 
   $ hg qtop
-  c.patch
-  $ hg qpop -a
-  popping c.patch
-  popping b.patch
-  patch queue now empty
+  a.patch
+  $ hg qpop -a
+  popping a.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
 
   $ hg qselect 1 2
-  number of unguarded, unapplied patches has changed from 2 to 3
+  number of guarded, applied patches has changed from 1 to 0
 
 should push a.patch, b.patch
 
   $ hg qpush
-  applying a.patch
-  now at: a.patch
-  $ hg qpush
-  applying b.patch
-  now at: b.patch
-  $ hg qpop -a
-  popping b.patch
-  popping a.patch
-  patch queue now empty
+  (working directory not at a head)
+  patch series already fully applied
+  [1]
+  $ hg qpush
+  (working directory not at a head)
+  patch series already fully applied
+  [1]
+  $ hg qpop -a
+  popping a.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
 
   $ hg qguard -- a.patch +1 +2 -3
   $ hg qselect 1 2 3
-  number of unguarded, unapplied patches has changed from 3 to 2
+  number of guarded, applied patches has changed from 0 to 1
 
 
 list patches and guards
 
   $ hg qguard -l
   a.patch: +1 +2 -3
-  b.patch: +2
-  c.patch: unguarded
 
 have at least one patch applied to test coloring
 
   $ hg qpush
-  applying b.patch
-  now at: b.patch
+  (working directory not at a head)
+  patch series already fully applied
+  [1]
 
 list patches and guards with color
 
   $ hg --config extensions.color= qguard --config color.mode=ansi    >     -l --color=always
-  a.patch: +1 +2 -3 (esc)
-  b.patch: +2 (esc)
-  c.patch: unguarded (esc)
+  a.patch: +1 +2 -3 (esc)
 
 should pop b.patch
 
   $ hg qpop
-  popping b.patch
-  patch queue now empty
+  popping a.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
 
 list series
 
   $ hg qseries -v
-  0 G a.patch
-  1 U b.patch
-  2 U c.patch
+  0 A a.patch
 
 list guards
 
@@ -250,31 +279,20 @@
 should push b.patch
 
   $ hg qpush
-  applying b.patch
-  now at: b.patch
-
-  $ hg qpush -a
-  applying c.patch
-  now at: c.patch
+  (working directory not at a head)
+  patch series already fully applied
+  [1]
+
+  $ hg qpush -a
+  (working directory not at a head)
+  all patches are currently applied
   $ hg qselect -n --reapply -v
   guards deactivated
   popping guarded patches
-  popping c.patch
-  popping b.patch
-  patch queue now empty
-  reapplying unguarded patches
-  skipping a.patch - guarded by '+1' '+2'
-  skipping b.patch - guarded by '+2'
-  skipping a.patch - guarded by '+1' '+2'
-  skipping b.patch - guarded by '+2'
-  applying c.patch
-  patching file c
-  adding c
-  committing files:
-  c
-  committing manifest
-  committing changelog
-  now at: c.patch
+  popping a.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
 
 guards in series file: +1 +2 -3
 
@@ -286,7 +304,7 @@
 should show c.patch
 
   $ hg qapplied
-  c.patch
+  a.patch
 
   $ hg qrename a.patch new.patch
 
@@ -303,13 +321,15 @@
 
   $ hg qguard -l
   new.patch: +1 +2 -3
-  b.patch: +2
-  c.patch: unguarded
 
   $ hg qnew d.patch
+  abort: working directory revision is not qtip
+  [255]
   $ hg qpop
-  popping d.patch
-  now at: c.patch
+  popping new.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
 
 should show new.patch and b.patch as Guarded, c.patch as Applied
 
@@ -317,28 +337,21 @@
 and d.patch as Unapplied
 
   $ hg qseries -v
-  0 G new.patch
-  1 G b.patch
-  2 A c.patch
-  3 U d.patch
+  0 A new.patch
 
 qseries again, but with color
 
   $ hg --config extensions.color= --config color.mode=ansi qseries -v --color=always
-  0 G new.patch (esc)
-  1 G b.patch (esc)
-  2 A c.patch (esc)
-  3 U d.patch (esc)
+  0 A new.patch (esc)
 
   $ hg qguard d.patch +2
+  abort: no patch named d.patch
+  [255]
 
 new.patch, b.patch: Guarded. c.patch: Applied. d.patch: Guarded.
 
   $ hg qseries -v
-  0 G new.patch
-  1 G b.patch
-  2 A c.patch
-  3 G d.patch
+  0 A new.patch
 
   $ qappunappv()
   > {
@@ -349,67 +362,46 @@
   > }
 
   $ hg qpop -a
-  popping c.patch
-  patch queue now empty
+  popping new.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
   $ hg qguard -l
   new.patch: +1 +2 -3
-  b.patch: +2
-  c.patch: unguarded
-  d.patch: +2
-  $ qappunappv
-  % hg qapplied
-  % hg qapplied -v
-  % hg qunapplied
-  c.patch
-  % hg qunapplied -v
-  0 G new.patch
-  1 G b.patch
-  2 U c.patch
-  3 G d.patch
-  $ hg qselect 1
-  number of unguarded, unapplied patches has changed from 1 to 2
-  $ qappunappv
-  % hg qapplied
-  % hg qapplied -v
-  % hg qunapplied
-  new.patch
-  c.patch
-  % hg qunapplied -v
-  0 U new.patch
-  1 G b.patch
-  2 U c.patch
-  3 G d.patch
-  $ hg qpush -a
-  applying new.patch
-  skipping b.patch - guarded by '+2'
-  applying c.patch
-  skipping d.patch - guarded by '+2'
-  now at: c.patch
   $ qappunappv
   % hg qapplied
   new.patch
-  c.patch
   % hg qapplied -v
   0 A new.patch
-  1 G b.patch
-  2 A c.patch
   % hg qunapplied
   % hg qunapplied -v
-  3 G d.patch
-  $ hg qselect 2
-  number of unguarded, unapplied patches has changed from 0 to 1
+  $ hg qselect 1
+  number of guarded, applied patches has changed from 1 to 0
   $ qappunappv
   % hg qapplied
   new.patch
-  c.patch
   % hg qapplied -v
   0 A new.patch
-  1 U b.patch
-  2 A c.patch
   % hg qunapplied
-  d.patch
   % hg qunapplied -v
-  3 U d.patch
+  $ hg qpush -a
+  (working directory not at a head)
+  all patches are currently applied
+  $ qappunappv
+  % hg qapplied
+  new.patch
+  % hg qapplied -v
+  0 A new.patch
+  % hg qunapplied
+  % hg qunapplied -v
+  $ hg qselect 2
+  $ qappunappv
+  % hg qapplied
+  new.patch
+  % hg qapplied -v
+  0 A new.patch
+  % hg qunapplied
+  % hg qunapplied -v
 
   $ for patch in `hg qseries`; do
   >     echo % hg qapplied $patch
@@ -420,128 +412,85 @@
   % hg qapplied new.patch
   new.patch
   % hg qunapplied new.patch
-  b.patch
-  d.patch
-  % hg qapplied b.patch
-  new.patch
-  % hg qunapplied b.patch
-  d.patch
-  % hg qapplied c.patch
-  new.patch
-  c.patch
-  % hg qunapplied c.patch
-  d.patch
-  % hg qapplied d.patch
-  new.patch
-  c.patch
-  % hg qunapplied d.patch
 
 
 hg qseries -m: only b.patch should be shown
 the guards file was not ignored in the past
 
   $ hg qdelete -k b.patch
+  abort: patch b.patch not in series
+  [255]
   $ hg qseries -m
-  b.patch
 
 hg qseries -m with color
 
   $ hg --config extensions.color= --config color.mode=ansi qseries -m --color=always
-  b.patch (esc)
 
 
 excercise corner cases in "qselect --reapply"
 
   $ hg qpop -a
-  popping c.patch
   popping new.patch
-  patch queue now empty
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
   $ hg qguard -- new.patch -not-new
   $ hg qguard -- c.patch -not-c
+  abort: no patch named c.patch
+  [255]
   $ hg qguard -- d.patch -not-d
-  $ hg qpush -a
-  applying new.patch
-  applying c.patch
-  applying d.patch
-  patch d.patch is empty
-  now at: d.patch
+  abort: no patch named d.patch
+  [255]
+  $ hg qpush -a
+  (working directory not at a head)
+  all patches are currently applied
   $ hg qguard -l
   new.patch: -not-new
-  c.patch: -not-c
-  d.patch: -not-d
   $ hg qselect --reapply not-d
-  popping guarded patches
-  popping d.patch
-  now at: c.patch
-  reapplying unguarded patches
-  cannot push 'd.patch' - guarded by '-not-d'
   $ hg qser -v
   0 A new.patch
-  1 A c.patch
-  2 G d.patch
   $ hg qselect --reapply -n
   guards deactivated
   $ hg qpush
-  applying d.patch
-  patch d.patch is empty
-  now at: d.patch
+  (working directory not at a head)
+  patch series already fully applied
+  [1]
   $ hg qser -v
   0 A new.patch
-  1 A c.patch
-  2 A d.patch
   $ hg qselect --reapply not-c
-  popping guarded patches
-  popping d.patch
-  popping c.patch
-  now at: new.patch
-  reapplying unguarded patches
-  applying d.patch
-  patch d.patch is empty
-  now at: d.patch
   $ hg qser -v
   0 A new.patch
-  1 G c.patch
-  2 A d.patch
   $ hg qselect --reapply not-new
   popping guarded patches
-  popping d.patch
   popping new.patch
-  patch queue now empty
-  reapplying unguarded patches
-  applying c.patch
-  applying d.patch
-  patch d.patch is empty
-  now at: d.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
   $ hg qser -v
-  0 G new.patch
-  1 A c.patch
-  2 A d.patch
+  0 A new.patch
 
 test that qselect shows "number of guarded, applied patches" correctly
 
   $ hg qimport -q -e b.patch
-  adding b.patch to series file
+  abort: patch b.patch does not exist
+  [255]
   $ hg qguard -- b.patch -not-b
+  abort: no patch named b.patch
+  [255]
   $ hg qpop -a -q
-  patch queue now empty
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
   $ hg qunapplied -v
-  0 G new.patch
-  1 U c.patch
-  2 U d.patch
-  3 U b.patch
   $ hg qselect not-new not-c
-  number of unguarded, unapplied patches has changed from 3 to 2
   $ hg qpush -q -a
-  patch d.patch is empty
-  now at: b.patch
+  all patches are currently applied
 
   $ hg qapplied -v
-  0 G new.patch
-  1 G c.patch
-  2 A d.patch
-  3 A b.patch
+  0 A new.patch
   $ hg qselect --none
   guards deactivated
+  number of guarded, applied patches has changed from 1 to 0
   $ hg qselect not-new not-c not-d
   number of guarded, applied patches has changed from 0 to 1
 
@@ -550,44 +499,35 @@
 guarded (= not yet applied) one.
 
   $ hg qpop -q -a
-  patch queue now empty
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
   $ hg qselect not-new not-c
-  number of unguarded, unapplied patches has changed from 1 to 2
   $ hg qpush -q -a
-  patch d.patch is empty
-  now at: b.patch
+  all patches are currently applied
   $ hg qapplied -v
-  0 G new.patch
-  1 G c.patch
-  2 A d.patch
-  3 A b.patch
+  0 A new.patch
   $ hg qselect -q --reapply not-c not-b
-  now at: d.patch
-  cannot push 'b.patch' - guarded by '-not-b'
   $ hg qseries -v
-  0 U new.patch
-  1 G c.patch
-  2 A d.patch
-  3 G b.patch
+  0 A new.patch
 
 test that "qselect --reapply" checks applied patches correctly when no
 applied patches becomes guarded but some of unapplied ones become
 unguarded.
 
   $ hg qpop -q -a
-  patch queue now empty
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
   $ hg qselect not-new not-c not-d
-  number of unguarded, unapplied patches has changed from 2 to 1
+  number of guarded, applied patches has changed from 0 to 1
   $ hg qpush -q -a
-  now at: b.patch
+  all patches are currently applied
   $ hg qapplied -v
-  0 G new.patch
-  1 G c.patch
-  2 G d.patch
-  3 A b.patch
+  0 A new.patch
   $ hg qselect -q --reapply not-new not-c
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
   $ hg qseries -v
-  0 G new.patch
-  1 G c.patch
-  2 U d.patch
-  3 A b.patch
+  0 A new.patch

test-mq-header-date.t

--- c:/hgdev/src/tests/test-mq-header-date.t
+++ c:/hgdev/src/tests/test-mq-header-date.t.err
@@ -205,328 +205,162 @@
   0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== qref
   adding 1
+  abort: $TESTTMP\sandbox\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child228\test-mq-header-date.t\sandbox\a\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x00000000016EA288>> ignored
   Date: 3 0
   
-  diff -r ... 1
-  --- /dev/null
-  +++ b/1
-  @@ -0,0 +1,1 @@
-  +1
-  0: 8c640e9949a8 [mq]: 1.patch - test - 3.00
-  ==== qref -d
-  Date: 4 0
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
+  ==== qref -d
+  abort: working directory revision is not qtip
+  Date: 3 0
   
-  diff -r ... 1
-  --- /dev/null
-  +++ b/1
-  @@ -0,0 +1,1 @@
-  +1
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== qnew
+  abort: working directory revision is not qtip
   adding 2
-  diff -r ... 2
-  --- /dev/null
-  +++ b/2
-  @@ -0,0 +1,1 @@
-  +2
-  1: fc7e8a2f6499 [mq]: 2.patch - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
-  ==== qref -d
-  Date: 5 0
-  
-  diff -r ... 2
-  --- /dev/null
-  +++ b/2
-  @@ -0,0 +1,1 @@
-  +2
-  1: 1d9a6a118fd1 [mq]: 2.patch - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
-  popping 2.patch
-  now at: 1.patch
+  abort: working directory revision is not qtip
+  cat: .hg/patches/2.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
+  ==== qref -d
+  abort: working directory revision is not qtip
+  cat: .hg/patches/2.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  abort: patch 2.patch not in series
   ==== qnew -d -m
-  Date: 6 0
-  
-  Three
-  
-  1: 2a9ef0bdefba Three - test - 6.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== qref
   adding 3
-  Date: 6 0
-  
-  Three
-  
-  diff -r ... 3
-  --- /dev/null
-  +++ b/3
-  @@ -0,0 +1,1 @@
-  +3
-  1: 7f19ad9eea7b Three - test - 6.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== qref -m
-  Date: 6 0
-  
-  Drei
-  
-  diff -r ... 3
-  --- /dev/null
-  +++ b/3
-  @@ -0,0 +1,1 @@
-  +3
-  1: 7ff7377793e3 Drei - test - 6.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
-  ==== qref -d
-  Date: 7 0
-  
-  Drei
-  
-  diff -r ... 3
-  --- /dev/null
-  +++ b/3
-  @@ -0,0 +1,1 @@
-  +3
-  1: d89d3144f518 Drei - test - 7.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
+  ==== qref -d
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== qref -d -m
-  Date: 8 0
-  
-  Three (again)
-  
-  diff -r ... 3
-  --- /dev/null
-  +++ b/3
-  @@ -0,0 +1,1 @@
-  +3
-  1: b1b6b0fe0e6d Three (again) - test - 8.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== qnew -m
+  abort: working directory revision is not qtip
   adding 4
-  Four
-  
-  diff -r ... 4
-  --- /dev/null
-  +++ b/4
-  @@ -0,0 +1,1 @@
-  +4
-  2: 74ded07d166b Four - test
-  1: b1b6b0fe0e6d Three (again) - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
-  ==== qref -d
-  Date: 9 0
-  
-  Four
-  
-  diff -r ... 4
-  --- /dev/null
-  +++ b/4
-  @@ -0,0 +1,1 @@
-  +4
-  2: 1a651320cf8e Four - test
-  1: b1b6b0fe0e6d Three (again) - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
-  popping 4.patch
-  now at: 3.patch
+  abort: working directory revision is not qtip
+  cat: .hg/patches/4.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
+  ==== qref -d
+  abort: working directory revision is not qtip
+  cat: .hg/patches/4.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  abort: patch 4.patch not in series
   ==== qnew with HG header
-  popping 5.patch
-  now at: 3.patch
+  abort: working directory revision is not qtip
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
   # HG changeset patch
   # Date 10 0
-  2: d16a272220d2 imported patch 5.patch - test - 10.00
-  1: b1b6b0fe0e6d Three (again) - test - 8.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== hg qref
   adding 5
+  abort: working directory revision is not qtip
   # HG changeset patch
   # Date 10 0
-  # Parent 
-  
-  diff -r ... 5
-  --- /dev/null
-  +++ b/5
-  @@ -0,0 +1,1 @@
-  +5
-  2: 5dbf69c07df9 [mq]: 5.patch - test - 10.00
-  1: b1b6b0fe0e6d Three (again) - test - 8.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== hg qref -d
-  # HG changeset patch
-  # Date 11 0
-  # Parent 
-  
-  diff -r ... 5
-  --- /dev/null
-  +++ b/5
-  @@ -0,0 +1,1 @@
-  +5
-  2: 049de6af0c1d [mq]: 5.patch - test - 11.00
-  1: b1b6b0fe0e6d Three (again) - test - 8.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
+  abort: working directory revision is not qtip
+  # HG changeset patch
+  # Date 10 0
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== qnew with plain header
-  popping 6.patch
-  now at: 5.patch
-  now at: 6.patch
-  Date: 12 0
-  
-  3: 8ad9ebc22b96 imported patch 6.patch - test
-  2: 049de6af0c1d [mq]: 5.patch - test
-  1: b1b6b0fe0e6d Three (again) - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
+  abort: working directory revision is not qtip
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
   ==== hg qref
   adding 6
-  Date: 12 0
-  
-  diff -r ... 6
-  --- /dev/null
-  +++ b/6
-  @@ -0,0 +1,1 @@
-  +6
-  3: 038c46b02a56 [mq]: 6.patch - test - 12.00
-  2: 049de6af0c1d [mq]: 5.patch - test - 11.00
-  1: b1b6b0fe0e6d Three (again) - test - 8.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
+  abort: working directory revision is not qtip
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== hg qref -d
-  Date: 13 0
-  
-  diff -r ... 6
-  --- /dev/null
-  +++ b/6
-  @@ -0,0 +1,1 @@
-  +6
-  3: 2785642ea4b4 [mq]: 6.patch - test - 13.00
-  2: 049de6af0c1d [mq]: 5.patch - test - 11.00
-  1: b1b6b0fe0e6d Three (again) - test - 8.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
-  popping 6.patch
-  now at: 5.patch
+  abort: working directory revision is not qtip
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  abort: patch 6.patch not in series
   ==== qnew -u
-  adding 6
-  From: jane
-  
-  diff -r ... 6
-  --- /dev/null
-  +++ b/6
-  @@ -0,0 +1,1 @@
-  +6
-  3: a05a33f187ce [mq]: 6.patch - jane
-  2: 049de6af0c1d [mq]: 5.patch - test
-  1: b1b6b0fe0e6d Three (again) - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
-  ==== qref -d
-  From: jane
-  Date: 12 0
-  
-  diff -r ... 6
-  --- /dev/null
-  +++ b/6
-  @@ -0,0 +1,1 @@
-  +6
-  3: 5702c529dfe9 [mq]: 6.patch - jane
-  2: 049de6af0c1d [mq]: 5.patch - test
-  1: b1b6b0fe0e6d Three (again) - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
-  popping 6.patch
-  now at: 5.patch
+  abort: working directory revision is not qtip
+  abort: working directory revision is not qtip
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
+  ==== qref -d
+  abort: working directory revision is not qtip
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  abort: patch 6.patch not in series
   ==== qnew -d
+  abort: working directory revision is not qtip
   adding 7
-  Date: 13 0
-  
-  diff -r ... 7
-  --- /dev/null
-  +++ b/7
-  @@ -0,0 +1,1 @@
-  +7
-  3: 8dd1eb8d4132 [mq]: 7.patch - test
-  2: 049de6af0c1d [mq]: 5.patch - test
-  1: b1b6b0fe0e6d Three (again) - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
+  abort: working directory revision is not qtip
+  cat: .hg/patches/7.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
   ==== qref -u
-  From: john
-  Date: 13 0
-  
-  diff -r ... 7
-  --- /dev/null
-  +++ b/7
-  @@ -0,0 +1,1 @@
-  +7
-  3: 4f9d07369cc4 [mq]: 7.patch - john - 13.00
-  2: 049de6af0c1d [mq]: 5.patch - test - 11.00
-  1: b1b6b0fe0e6d Three (again) - test - 8.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
+  abort: working directory revision is not qtip
+  cat: .hg/patches/7.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== qnew
+  abort: working directory revision is not qtip
   adding 8
-  diff -r ... 8
-  --- /dev/null
-  +++ b/8
-  @@ -0,0 +1,1 @@
-  +8
-  4: 868b62f09492 [mq]: 8.patch - test
-  3: 4f9d07369cc4 [mq]: 7.patch - john
-  2: 049de6af0c1d [mq]: 5.patch - test
-  1: b1b6b0fe0e6d Three (again) - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
+  abort: working directory revision is not qtip
+  cat: .hg/patches/8.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
   ==== qref -u -d
-  From: john
-  Date: 14 0
-  
-  diff -r ... 8
-  --- /dev/null
-  +++ b/8
-  @@ -0,0 +1,1 @@
-  +8
-  4: b1e878ae55b9 [mq]: 8.patch - john
-  3: 4f9d07369cc4 [mq]: 7.patch - john
-  2: 049de6af0c1d [mq]: 5.patch - test
-  1: b1b6b0fe0e6d Three (again) - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
-  popping 8.patch
-  now at: 7.patch
+  abort: working directory revision is not qtip
+  cat: .hg/patches/8.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  abort: patch 8.patch not in series
   ==== qnew -m
+  abort: working directory revision is not qtip
   adding 9
-  Nine
-  
-  diff -r ... 9
-  --- /dev/null
-  +++ b/9
-  @@ -0,0 +1,1 @@
-  +9
-  4: 7251936ac2bf Nine - test
-  3: 4f9d07369cc4 [mq]: 7.patch - john
-  2: 049de6af0c1d [mq]: 5.patch - test
-  1: b1b6b0fe0e6d Three (again) - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
+  abort: working directory revision is not qtip
+  cat: .hg/patches/9.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
   ==== qref -u -d
-  From: john
-  Date: 15 0
-  
-  Nine
-  
-  diff -r ... 9
-  --- /dev/null
-  +++ b/9
-  @@ -0,0 +1,1 @@
-  +9
-  4: a0de5bf6e9f7 Nine - john
-  3: 4f9d07369cc4 [mq]: 7.patch - john
-  2: 049de6af0c1d [mq]: 5.patch - test
-  1: b1b6b0fe0e6d Three (again) - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
-  popping 9.patch
-  now at: 7.patch
+  abort: working directory revision is not qtip
+  cat: .hg/patches/9.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  abort: patch 9.patch not in series
   ==== qpop -a / qpush -a
-  popping 7.patch
-  popping 5.patch
-  popping 3.patch
-  popping 1.patch
-  patch queue now empty
-  applying 1.patch
-  applying 3.patch
-  applying 5.patch
-  applying 7.patch
-  now at: 7.patch
-  3: d26a5b7ffce1 imported patch 7.patch - john - 13.00
-  2: dda6cf77060a imported patch 5.patch - test - 11.00
-  1: 25e32d66c8c7 Three (again) - test - 8.00
-  0: e5011c0211fe imported patch 1.patch - test - 4.00
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  (working directory not at a head)
+  all patches are currently applied
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   $ rm -r sandbox
 
 ======= hg headers
@@ -543,359 +377,164 @@
   0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== qref
   adding 1
+  abort: $TESTTMP\sandbox\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child228\test-mq-header-date.t\sandbox\a\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x00000000017DA288>> ignored
   # HG changeset patch
   # Date 3 0
   # Parent 
   
-  diff -r ... 1
-  --- /dev/null
-  +++ b/1
-  @@ -0,0 +1,1 @@
-  +1
-  0: 8c640e9949a8 [mq]: 1.patch - test - 3.00
-  ==== qref -d
-  # HG changeset patch
-  # Date 4 0
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
+  ==== qref -d
+  abort: working directory revision is not qtip
+  # HG changeset patch
+  # Date 3 0
   # Parent 
   
-  diff -r ... 1
-  --- /dev/null
-  +++ b/1
-  @@ -0,0 +1,1 @@
-  +1
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== qnew
+  abort: working directory revision is not qtip
   adding 2
-  # HG changeset patch
-  # Parent 
-  
-  diff -r ... 2
-  --- /dev/null
-  +++ b/2
-  @@ -0,0 +1,1 @@
-  +2
-  1: fc7e8a2f6499 [mq]: 2.patch - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
-  ==== qref -d
-  # HG changeset patch
-  # Date 5 0
-  # Parent 
-  
-  diff -r ... 2
-  --- /dev/null
-  +++ b/2
-  @@ -0,0 +1,1 @@
-  +2
-  1: 1d9a6a118fd1 [mq]: 2.patch - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
-  popping 2.patch
-  now at: 1.patch
+  abort: working directory revision is not qtip
+  cat: .hg/patches/2.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
+  ==== qref -d
+  abort: working directory revision is not qtip
+  cat: .hg/patches/2.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  abort: patch 2.patch not in series
   ==== qnew -d -m
-  # HG changeset patch
-  # Date 6 0
-  # Parent 
-  Three
-  
-  1: 2a9ef0bdefba Three - test - 6.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== qref
   adding 3
-  # HG changeset patch
-  # Date 6 0
-  # Parent 
-  Three
-  
-  diff -r ... 3
-  --- /dev/null
-  +++ b/3
-  @@ -0,0 +1,1 @@
-  +3
-  1: 7f19ad9eea7b Three - test - 6.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== qref -m
-  # HG changeset patch
-  # Date 6 0
-  # Parent 
-  Drei
-  
-  diff -r ... 3
-  --- /dev/null
-  +++ b/3
-  @@ -0,0 +1,1 @@
-  +3
-  1: 7ff7377793e3 Drei - test - 6.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
-  ==== qref -d
-  # HG changeset patch
-  # Date 7 0
-  # Parent 
-  Drei
-  
-  diff -r ... 3
-  --- /dev/null
-  +++ b/3
-  @@ -0,0 +1,1 @@
-  +3
-  1: d89d3144f518 Drei - test - 7.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
+  ==== qref -d
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== qref -d -m
-  # HG changeset patch
-  # Date 8 0
-  # Parent 
-  Three (again)
-  
-  diff -r ... 3
-  --- /dev/null
-  +++ b/3
-  @@ -0,0 +1,1 @@
-  +3
-  1: b1b6b0fe0e6d Three (again) - test - 8.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== qnew -m
+  abort: working directory revision is not qtip
   adding 4
-  # HG changeset patch
-  # Parent 
-  Four
-  
-  diff -r ... 4
-  --- /dev/null
-  +++ b/4
-  @@ -0,0 +1,1 @@
-  +4
-  2: 74ded07d166b Four - test
-  1: b1b6b0fe0e6d Three (again) - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
-  ==== qref -d
-  # HG changeset patch
-  # Date 9 0
-  # Parent 
-  Four
-  
-  diff -r ... 4
-  --- /dev/null
-  +++ b/4
-  @@ -0,0 +1,1 @@
-  +4
-  2: 1a651320cf8e Four - test
-  1: b1b6b0fe0e6d Three (again) - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
-  popping 4.patch
-  now at: 3.patch
+  abort: working directory revision is not qtip
+  cat: .hg/patches/4.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
+  ==== qref -d
+  abort: working directory revision is not qtip
+  cat: .hg/patches/4.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  abort: patch 4.patch not in series
   ==== qnew with HG header
-  popping 5.patch
-  now at: 3.patch
+  abort: working directory revision is not qtip
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
   # HG changeset patch
   # Date 10 0
-  2: d16a272220d2 imported patch 5.patch - test - 10.00
-  1: b1b6b0fe0e6d Three (again) - test - 8.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== hg qref
   adding 5
+  abort: working directory revision is not qtip
   # HG changeset patch
   # Date 10 0
-  # Parent 
-  
-  diff -r ... 5
-  --- /dev/null
-  +++ b/5
-  @@ -0,0 +1,1 @@
-  +5
-  2: 5dbf69c07df9 [mq]: 5.patch - test - 10.00
-  1: b1b6b0fe0e6d Three (again) - test - 8.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== hg qref -d
-  # HG changeset patch
-  # Date 11 0
-  # Parent 
-  
-  diff -r ... 5
-  --- /dev/null
-  +++ b/5
-  @@ -0,0 +1,1 @@
-  +5
-  2: 049de6af0c1d [mq]: 5.patch - test - 11.00
-  1: b1b6b0fe0e6d Three (again) - test - 8.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
+  abort: working directory revision is not qtip
+  # HG changeset patch
+  # Date 10 0
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== qnew with plain header
-  popping 6.patch
-  now at: 5.patch
-  now at: 6.patch
-  Date: 12 0
-  
-  3: 8ad9ebc22b96 imported patch 6.patch - test
-  2: 049de6af0c1d [mq]: 5.patch - test
-  1: b1b6b0fe0e6d Three (again) - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
+  abort: working directory revision is not qtip
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
   ==== hg qref
   adding 6
-  Date: 12 0
-  
-  diff -r ... 6
-  --- /dev/null
-  +++ b/6
-  @@ -0,0 +1,1 @@
-  +6
-  3: 038c46b02a56 [mq]: 6.patch - test - 12.00
-  2: 049de6af0c1d [mq]: 5.patch - test - 11.00
-  1: b1b6b0fe0e6d Three (again) - test - 8.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
+  abort: working directory revision is not qtip
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== hg qref -d
-  Date: 13 0
-  
-  diff -r ... 6
-  --- /dev/null
-  +++ b/6
-  @@ -0,0 +1,1 @@
-  +6
-  3: 2785642ea4b4 [mq]: 6.patch - test - 13.00
-  2: 049de6af0c1d [mq]: 5.patch - test - 11.00
-  1: b1b6b0fe0e6d Three (again) - test - 8.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
-  popping 6.patch
-  now at: 5.patch
+  abort: working directory revision is not qtip
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  abort: patch 6.patch not in series
   ==== qnew -u
-  adding 6
-  # HG changeset patch
-  # User jane
-  # Parent 
-  
-  diff -r ... 6
-  --- /dev/null
-  +++ b/6
-  @@ -0,0 +1,1 @@
-  +6
-  3: a05a33f187ce [mq]: 6.patch - jane
-  2: 049de6af0c1d [mq]: 5.patch - test
-  1: b1b6b0fe0e6d Three (again) - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
-  ==== qref -d
-  # HG changeset patch
-  # User jane
-  # Date 12 0
-  # Parent 
-  
-  diff -r ... 6
-  --- /dev/null
-  +++ b/6
-  @@ -0,0 +1,1 @@
-  +6
-  3: 5702c529dfe9 [mq]: 6.patch - jane
-  2: 049de6af0c1d [mq]: 5.patch - test
-  1: b1b6b0fe0e6d Three (again) - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
-  popping 6.patch
-  now at: 5.patch
+  abort: working directory revision is not qtip
+  abort: working directory revision is not qtip
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
+  ==== qref -d
+  abort: working directory revision is not qtip
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  abort: patch 6.patch not in series
   ==== qnew -d
+  abort: working directory revision is not qtip
   adding 7
-  # HG changeset patch
-  # Date 13 0
-  # Parent 
-  
-  diff -r ... 7
-  --- /dev/null
-  +++ b/7
-  @@ -0,0 +1,1 @@
-  +7
-  3: 8dd1eb8d4132 [mq]: 7.patch - test
-  2: 049de6af0c1d [mq]: 5.patch - test
-  1: b1b6b0fe0e6d Three (again) - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
+  abort: working directory revision is not qtip
+  cat: .hg/patches/7.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
   ==== qref -u
-  # HG changeset patch
-  # User john
-  # Date 13 0
-  # Parent 
-  
-  diff -r ... 7
-  --- /dev/null
-  +++ b/7
-  @@ -0,0 +1,1 @@
-  +7
-  3: 4f9d07369cc4 [mq]: 7.patch - john - 13.00
-  2: 049de6af0c1d [mq]: 5.patch - test - 11.00
-  1: b1b6b0fe0e6d Three (again) - test - 8.00
-  0: 4a67dfeea974 [mq]: 1.patch - test - 4.00
+  abort: working directory revision is not qtip
+  cat: .hg/patches/7.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   ==== qnew
+  abort: working directory revision is not qtip
   adding 8
-  # HG changeset patch
-  # Parent 
-  
-  diff -r ... 8
-  --- /dev/null
-  +++ b/8
-  @@ -0,0 +1,1 @@
-  +8
-  4: 868b62f09492 [mq]: 8.patch - test
-  3: 4f9d07369cc4 [mq]: 7.patch - john
-  2: 049de6af0c1d [mq]: 5.patch - test
-  1: b1b6b0fe0e6d Three (again) - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
+  abort: working directory revision is not qtip
+  cat: .hg/patches/8.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
   ==== qref -u -d
-  # HG changeset patch
-  # User john
-  # Date 14 0
-  # Parent 
-  
-  diff -r ... 8
-  --- /dev/null
-  +++ b/8
-  @@ -0,0 +1,1 @@
-  +8
-  4: b1e878ae55b9 [mq]: 8.patch - john
-  3: 4f9d07369cc4 [mq]: 7.patch - john
-  2: 049de6af0c1d [mq]: 5.patch - test
-  1: b1b6b0fe0e6d Three (again) - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
-  popping 8.patch
-  now at: 7.patch
+  abort: working directory revision is not qtip
+  cat: .hg/patches/8.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  abort: patch 8.patch not in series
   ==== qnew -m
+  abort: working directory revision is not qtip
   adding 9
-  # HG changeset patch
-  # Parent 
-  Nine
-  
-  diff -r ... 9
-  --- /dev/null
-  +++ b/9
-  @@ -0,0 +1,1 @@
-  +9
-  4: 7251936ac2bf Nine - test
-  3: 4f9d07369cc4 [mq]: 7.patch - john
-  2: 049de6af0c1d [mq]: 5.patch - test
-  1: b1b6b0fe0e6d Three (again) - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
+  abort: working directory revision is not qtip
+  cat: .hg/patches/9.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
   ==== qref -u -d
-  # HG changeset patch
-  # User john
-  # Date 15 0
-  # Parent 
-  Nine
-  
-  diff -r ... 9
-  --- /dev/null
-  +++ b/9
-  @@ -0,0 +1,1 @@
-  +9
-  4: a0de5bf6e9f7 Nine - john
-  3: 4f9d07369cc4 [mq]: 7.patch - john
-  2: 049de6af0c1d [mq]: 5.patch - test
-  1: b1b6b0fe0e6d Three (again) - test
-  0: 4a67dfeea974 [mq]: 1.patch - test
-  popping 9.patch
-  now at: 7.patch
+  abort: working directory revision is not qtip
+  cat: .hg/patches/9.patch: $ENOENT$
+  0: 758bd2596a39 [mq]: 1.patch - test
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  abort: patch 9.patch not in series
   ==== qpop -a / qpush -a
-  popping 7.patch
-  popping 5.patch
-  popping 3.patch
-  popping 1.patch
-  patch queue now empty
-  applying 1.patch
-  applying 3.patch
-  applying 5.patch
-  applying 7.patch
-  now at: 7.patch
-  3: d26a5b7ffce1 imported patch 7.patch - john - 13.00
-  2: dda6cf77060a imported patch 5.patch - test - 11.00
-  1: 25e32d66c8c7 Three (again) - test - 8.00
-  0: e5011c0211fe imported patch 1.patch - test - 4.00
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  (working directory not at a head)
+  all patches are currently applied
+  0: 758bd2596a39 [mq]: 1.patch - test - 3.00
   $ rm -r sandbox

test-mq-header-from.t

--- c:/hgdev/src/tests/test-mq-header-from.t
+++ c:/hgdev/src/tests/test-mq-header-from.t.err
@@ -138,263 +138,108 @@
   0: a054644889e5 [mq]: 1.patch - test
   ==== qref
   adding 1
+  abort: $TESTTMP\sandbox\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child208\test-mq-header-from.t\sandbox\a\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x00000000017CA288>> ignored
   From: test
   
-  diff -r ... 1
-  --- /dev/null
-  +++ b/1
-  @@ -0,0 +1,1 @@
-  +1
-  0: 2905f1e46ee0 [mq]: 1.patch - test
-  ==== qref -u
-  From: mary
-  
-  diff -r ... 1
-  --- /dev/null
-  +++ b/1
-  @@ -0,0 +1,1 @@
-  +1
-  0: 3682f830e656 [mq]: 1.patch - mary
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== qref -u
+  abort: working directory revision is not qtip
+  From: test
+  
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qnew
+  abort: working directory revision is not qtip
   adding 2
-  diff -r ... 2
-  --- /dev/null
-  +++ b/2
-  @@ -0,0 +1,1 @@
-  +2
-  1: 527f98a12a7a [mq]: 2.patch - test
-  0: 3682f830e656 [mq]: 1.patch - mary
-  ==== qref -u
-  From: jane
-  
-  diff -r ... 2
-  --- /dev/null
-  +++ b/2
-  @@ -0,0 +1,1 @@
-  +2
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  cat: .hg/patches/2.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== qref -u
+  abort: working directory revision is not qtip
+  cat: .hg/patches/2.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qnew -U -m
-  From: test
-  
-  Three
-  
-  2: 0ffa16a9088e Three - test
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qref
   adding 3
-  From: test
-  
-  Three
-  
-  diff -r ... 3
-  --- /dev/null
-  +++ b/3
-  @@ -0,0 +1,1 @@
-  +3
-  2: 83f1290c6086 Three - test
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qref -m
-  From: test
-  
-  Drei
-  
-  diff -r ... 3
-  --- /dev/null
-  +++ b/3
-  @@ -0,0 +1,1 @@
-  +3
-  2: b0d856328d4d Drei - test
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
-  ==== qref -u
-  From: mary
-  
-  Drei
-  
-  diff -r ... 3
-  --- /dev/null
-  +++ b/3
-  @@ -0,0 +1,1 @@
-  +3
-  2: bb9d4b28e6a6 Drei - mary
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== qref -u
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qref -u -m
-  From: maria
-  
-  Three (again)
-  
-  diff -r ... 3
-  --- /dev/null
-  +++ b/3
-  @@ -0,0 +1,1 @@
-  +3
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qnew -m
+  abort: working directory revision is not qtip
   adding 4of
-  Four
-  
-  diff -r ... 4of
-  --- /dev/null
-  +++ b/4of
-  @@ -0,0 +1,1 @@
-  +4 t
-  3: b9f922d0da40 Four - test
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
-  ==== qref -u
-  From: jane
-  
-  Four
-  
-  diff -r ... 4of
-  --- /dev/null
-  +++ b/4of
-  @@ -0,0 +1,1 @@
-  +4 t
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  cat: .hg/patches/4.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== qref -u
+  abort: working directory revision is not qtip
+  cat: .hg/patches/4.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qnew with HG header
-  popping 5.patch
-  now at: 4.patch
-  now at: 5.patch
-  # HG changeset patch
-  # User johndoe
-  4: 72bc4a0467ef imported patch 5.patch - johndoe
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  # HG changeset patch
+  # User johndoe
+  0: a054644889e5 [mq]: 1.patch - test
   ==== hg qref
   adding 5
-  # HG changeset patch
-  # User johndoe
-  # Parent 
-  
-  diff -r ... 5
-  --- /dev/null
-  +++ b/5
-  @@ -0,0 +1,1 @@
-  +5
-  4: ff5c06112e5a [mq]: 5.patch - johndoe
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
-  ==== hg qref -U
-  # HG changeset patch
-  # User test
-  # Parent 
-  
-  diff -r ... 5
-  --- /dev/null
-  +++ b/5
-  @@ -0,0 +1,1 @@
-  +5
-  4: c947416c22b1 [mq]: 5.patch - test
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
-  ==== hg qref -u
-  # HG changeset patch
-  # User johndeere
-  # Parent 
-  
-  diff -r ... 5
-  --- /dev/null
-  +++ b/5
-  @@ -0,0 +1,1 @@
-  +5
-  4: 1d898e201a22 [mq]: 5.patch - johndeere
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  # HG changeset patch
+  # User johndoe
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== hg qref -U
+  abort: working directory revision is not qtip
+  # HG changeset patch
+  # User johndoe
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== hg qref -u
+  abort: working directory revision is not qtip
+  # HG changeset patch
+  # User johndoe
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qnew with plain header
-  popping 6.patch
-  now at: 5.patch
-  now at: 6.patch
-  From: test
-  
-  5: 7825a18ec839 imported patch 6.patch - test
-  4: 1d898e201a22 [mq]: 5.patch - johndeere
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== hg qref
   adding 6
-  From: test
-  
-  diff -r ... 6
-  --- /dev/null
-  +++ b/6
-  @@ -0,0 +1,1 @@
-  +6
-  5: 09d19592680d [mq]: 6.patch - test
-  4: 1d898e201a22 [mq]: 5.patch - johndeere
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
-  ==== hg qref -U
-  From: test
-  
-  diff -r ... 6
-  --- /dev/null
-  +++ b/6
-  @@ -0,0 +1,1 @@
-  +6
-  5: 09d19592680d [mq]: 6.patch - test
-  4: 1d898e201a22 [mq]: 5.patch - johndeere
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
-  ==== hg qref -u
-  From: johndeere
-  
-  diff -r ... 6
-  --- /dev/null
-  +++ b/6
-  @@ -0,0 +1,1 @@
-  +6
-  5: 32641ee07196 [mq]: 6.patch - johndeere
-  4: 1d898e201a22 [mq]: 5.patch - johndeere
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== hg qref -U
+  abort: working directory revision is not qtip
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== hg qref -u
+  abort: working directory revision is not qtip
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qpop -a / qpush -a
-  popping 6.patch
-  popping 5.patch
-  popping 4.patch
-  popping 3.patch
-  popping 2.patch
-  popping 1.patch
-  patch queue now empty
-  applying 1.patch
-  applying 2.patch
-  applying 3.patch
-  applying 4.patch
-  applying 5.patch
-  applying 6.patch
-  now at: 6.patch
-  5: 1fb083c80457 imported patch 6.patch - johndeere
-  4: 7e96e969691d imported patch 5.patch - johndeere
-  3: c7147533d3cd Four - jane
-  2: b383d04401ea Three (again) - maria
-  1: fac2da4efc3c imported patch 2.patch - jane
-  0: b6e237e8771b imported patch 1.patch - mary
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  (working directory not at a head)
+  all patches are currently applied
+  0: a054644889e5 [mq]: 1.patch - test
   $ rm -r sandbox
 
 ======= hg headers
@@ -411,280 +256,112 @@
   0: a054644889e5 [mq]: 1.patch - test
   ==== qref
   adding 1
-  # HG changeset patch
-  # User test
-  # Parent 
-  
-  diff -r ... 1
-  --- /dev/null
-  +++ b/1
-  @@ -0,0 +1,1 @@
-  +1
-  0: 2905f1e46ee0 [mq]: 1.patch - test
-  ==== qref -u
-  # HG changeset patch
-  # User mary
-  # Parent 
-  
-  diff -r ... 1
-  --- /dev/null
-  +++ b/1
-  @@ -0,0 +1,1 @@
-  +1
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: $TESTTMP\sandbox\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child208\test-mq-header-from.t\sandbox\a\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x000000000164A288>> ignored
+  # HG changeset patch
+  # User test
+  # Parent 
+  
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== qref -u
+  abort: working directory revision is not qtip
+  # HG changeset patch
+  # User test
+  # Parent 
+  
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qnew
+  abort: working directory revision is not qtip
   adding 2
-  # HG changeset patch
-  # Parent 
-  
-  diff -r ... 2
-  --- /dev/null
-  +++ b/2
-  @@ -0,0 +1,1 @@
-  +2
-  1: 527f98a12a7a [mq]: 2.patch - test
-  0: 3682f830e656 [mq]: 1.patch - mary
-  ==== qref -u
-  # HG changeset patch
-  # User jane
-  # Parent 
-  
-  diff -r ... 2
-  --- /dev/null
-  +++ b/2
-  @@ -0,0 +1,1 @@
-  +2
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  cat: .hg/patches/2.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== qref -u
+  abort: working directory revision is not qtip
+  cat: .hg/patches/2.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qnew -U -m
-  # HG changeset patch
-  # User test
-  # Parent 
-  Three
-  
-  2: 0ffa16a9088e Three - test
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qref
   adding 3
-  # HG changeset patch
-  # User test
-  # Parent 
-  Three
-  
-  diff -r ... 3
-  --- /dev/null
-  +++ b/3
-  @@ -0,0 +1,1 @@
-  +3
-  2: 83f1290c6086 Three - test
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qref -m
-  # HG changeset patch
-  # User test
-  # Parent 
-  Drei
-  
-  diff -r ... 3
-  --- /dev/null
-  +++ b/3
-  @@ -0,0 +1,1 @@
-  +3
-  2: b0d856328d4d Drei - test
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
-  ==== qref -u
-  # HG changeset patch
-  # User mary
-  # Parent 
-  Drei
-  
-  diff -r ... 3
-  --- /dev/null
-  +++ b/3
-  @@ -0,0 +1,1 @@
-  +3
-  2: bb9d4b28e6a6 Drei - mary
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== qref -u
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qref -u -m
-  # HG changeset patch
-  # User maria
-  # Parent 
-  Three (again)
-  
-  diff -r ... 3
-  --- /dev/null
-  +++ b/3
-  @@ -0,0 +1,1 @@
-  +3
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qnew -m
+  abort: working directory revision is not qtip
   adding 4of
-  # HG changeset patch
-  # Parent 
-  Four
-  
-  diff -r ... 4of
-  --- /dev/null
-  +++ b/4of
-  @@ -0,0 +1,1 @@
-  +4 t
-  3: b9f922d0da40 Four - test
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
-  ==== qref -u
-  # HG changeset patch
-  # User jane
-  # Parent 
-  Four
-  
-  diff -r ... 4of
-  --- /dev/null
-  +++ b/4of
-  @@ -0,0 +1,1 @@
-  +4 t
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  cat: .hg/patches/4.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== qref -u
+  abort: working directory revision is not qtip
+  cat: .hg/patches/4.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qnew with HG header
-  popping 5.patch
-  now at: 4.patch
-  now at: 5.patch
-  # HG changeset patch
-  # User johndoe
-  4: 72bc4a0467ef imported patch 5.patch - johndoe
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  # HG changeset patch
+  # User johndoe
+  0: a054644889e5 [mq]: 1.patch - test
   ==== hg qref
   adding 5
-  # HG changeset patch
-  # User johndoe
-  # Parent 
-  
-  diff -r ... 5
-  --- /dev/null
-  +++ b/5
-  @@ -0,0 +1,1 @@
-  +5
-  4: ff5c06112e5a [mq]: 5.patch - johndoe
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
-  ==== hg qref -U
-  # HG changeset patch
-  # User test
-  # Parent 
-  
-  diff -r ... 5
-  --- /dev/null
-  +++ b/5
-  @@ -0,0 +1,1 @@
-  +5
-  4: c947416c22b1 [mq]: 5.patch - test
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
-  ==== hg qref -u
-  # HG changeset patch
-  # User johndeere
-  # Parent 
-  
-  diff -r ... 5
-  --- /dev/null
-  +++ b/5
-  @@ -0,0 +1,1 @@
-  +5
-  4: 1d898e201a22 [mq]: 5.patch - johndeere
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  # HG changeset patch
+  # User johndoe
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== hg qref -U
+  abort: working directory revision is not qtip
+  # HG changeset patch
+  # User johndoe
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== hg qref -u
+  abort: working directory revision is not qtip
+  # HG changeset patch
+  # User johndoe
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qnew with plain header
-  popping 6.patch
-  now at: 5.patch
-  now at: 6.patch
-  From: test
-  
-  5: 7825a18ec839 imported patch 6.patch - test
-  4: 1d898e201a22 [mq]: 5.patch - johndeere
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== hg qref
   adding 6
-  From: test
-  
-  diff -r ... 6
-  --- /dev/null
-  +++ b/6
-  @@ -0,0 +1,1 @@
-  +6
-  5: 09d19592680d [mq]: 6.patch - test
-  4: 1d898e201a22 [mq]: 5.patch - johndeere
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
-  ==== hg qref -U
-  From: test
-  
-  diff -r ... 6
-  --- /dev/null
-  +++ b/6
-  @@ -0,0 +1,1 @@
-  +6
-  5: 09d19592680d [mq]: 6.patch - test
-  4: 1d898e201a22 [mq]: 5.patch - johndeere
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
-  ==== hg qref -u
-  From: johndeere
-  
-  diff -r ... 6
-  --- /dev/null
-  +++ b/6
-  @@ -0,0 +1,1 @@
-  +6
-  5: 32641ee07196 [mq]: 6.patch - johndeere
-  4: 1d898e201a22 [mq]: 5.patch - johndeere
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== hg qref -U
+  abort: working directory revision is not qtip
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== hg qref -u
+  abort: working directory revision is not qtip
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qpop -a / qpush -a
-  popping 6.patch
-  popping 5.patch
-  popping 4.patch
-  popping 3.patch
-  popping 2.patch
-  popping 1.patch
-  patch queue now empty
-  applying 1.patch
-  applying 2.patch
-  applying 3.patch
-  applying 4.patch
-  applying 5.patch
-  applying 6.patch
-  now at: 6.patch
-  5: 1fb083c80457 imported patch 6.patch - johndeere
-  4: 7e96e969691d imported patch 5.patch - johndeere
-  3: c7147533d3cd Four - jane
-  2: b383d04401ea Three (again) - maria
-  1: fac2da4efc3c imported patch 2.patch - jane
-  0: b6e237e8771b imported patch 1.patch - mary
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  (working directory not at a head)
+  all patches are currently applied
+  0: a054644889e5 [mq]: 1.patch - test
   $ rm -r sandbox
   $ runtest
   ==== init
@@ -696,279 +373,111 @@
   0: a054644889e5 [mq]: 1.patch - test
   ==== qref
   adding 1
-  # HG changeset patch
-  # User test
-  # Parent 
-  
-  diff -r ... 1
-  --- /dev/null
-  +++ b/1
-  @@ -0,0 +1,1 @@
-  +1
-  0: 2905f1e46ee0 [mq]: 1.patch - test
-  ==== qref -u
-  # HG changeset patch
-  # User mary
-  # Parent 
-  
-  diff -r ... 1
-  --- /dev/null
-  +++ b/1
-  @@ -0,0 +1,1 @@
-  +1
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: $TESTTMP\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child208\test-mq-header-from.t\a\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x000000000178A288>> ignored
+  # HG changeset patch
+  # User test
+  # Parent 
+  
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== qref -u
+  abort: working directory revision is not qtip
+  # HG changeset patch
+  # User test
+  # Parent 
+  
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qnew
+  abort: working directory revision is not qtip
   adding 2
-  # HG changeset patch
-  # Parent 
-  
-  diff -r ... 2
-  --- /dev/null
-  +++ b/2
-  @@ -0,0 +1,1 @@
-  +2
-  1: 527f98a12a7a [mq]: 2.patch - test
-  0: 3682f830e656 [mq]: 1.patch - mary
-  ==== qref -u
-  # HG changeset patch
-  # User jane
-  # Parent 
-  
-  diff -r ... 2
-  --- /dev/null
-  +++ b/2
-  @@ -0,0 +1,1 @@
-  +2
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  cat: .hg/patches/2.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== qref -u
+  abort: working directory revision is not qtip
+  cat: .hg/patches/2.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qnew -U -m
-  # HG changeset patch
-  # User test
-  # Parent 
-  Three
-  
-  2: 0ffa16a9088e Three - test
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qref
   adding 3
-  # HG changeset patch
-  # User test
-  # Parent 
-  Three
-  
-  diff -r ... 3
-  --- /dev/null
-  +++ b/3
-  @@ -0,0 +1,1 @@
-  +3
-  2: 83f1290c6086 Three - test
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qref -m
-  # HG changeset patch
-  # User test
-  # Parent 
-  Drei
-  
-  diff -r ... 3
-  --- /dev/null
-  +++ b/3
-  @@ -0,0 +1,1 @@
-  +3
-  2: b0d856328d4d Drei - test
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
-  ==== qref -u
-  # HG changeset patch
-  # User mary
-  # Parent 
-  Drei
-  
-  diff -r ... 3
-  --- /dev/null
-  +++ b/3
-  @@ -0,0 +1,1 @@
-  +3
-  2: bb9d4b28e6a6 Drei - mary
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== qref -u
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qref -u -m
-  # HG changeset patch
-  # User maria
-  # Parent 
-  Three (again)
-  
-  diff -r ... 3
-  --- /dev/null
-  +++ b/3
-  @@ -0,0 +1,1 @@
-  +3
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  cat: .hg/patches/3.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qnew -m
+  abort: working directory revision is not qtip
   adding 4of
-  # HG changeset patch
-  # Parent 
-  Four
-  
-  diff -r ... 4of
-  --- /dev/null
-  +++ b/4of
-  @@ -0,0 +1,1 @@
-  +4 t
-  3: b9f922d0da40 Four - test
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
-  ==== qref -u
-  # HG changeset patch
-  # User jane
-  # Parent 
-  Four
-  
-  diff -r ... 4of
-  --- /dev/null
-  +++ b/4of
-  @@ -0,0 +1,1 @@
-  +4 t
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  cat: .hg/patches/4.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== qref -u
+  abort: working directory revision is not qtip
+  cat: .hg/patches/4.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qnew with HG header
-  popping 5.patch
-  now at: 4.patch
-  now at: 5.patch
-  # HG changeset patch
-  # User johndoe
-  4: 72bc4a0467ef imported patch 5.patch - johndoe
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  # HG changeset patch
+  # User johndoe
+  0: a054644889e5 [mq]: 1.patch - test
   ==== hg qref
   adding 5
-  # HG changeset patch
-  # User johndoe
-  # Parent 
-  
-  diff -r ... 5
-  --- /dev/null
-  +++ b/5
-  @@ -0,0 +1,1 @@
-  +5
-  4: ff5c06112e5a [mq]: 5.patch - johndoe
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
-  ==== hg qref -U
-  # HG changeset patch
-  # User test
-  # Parent 
-  
-  diff -r ... 5
-  --- /dev/null
-  +++ b/5
-  @@ -0,0 +1,1 @@
-  +5
-  4: c947416c22b1 [mq]: 5.patch - test
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
-  ==== hg qref -u
-  # HG changeset patch
-  # User johndeere
-  # Parent 
-  
-  diff -r ... 5
-  --- /dev/null
-  +++ b/5
-  @@ -0,0 +1,1 @@
-  +5
-  4: 1d898e201a22 [mq]: 5.patch - johndeere
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  # HG changeset patch
+  # User johndoe
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== hg qref -U
+  abort: working directory revision is not qtip
+  # HG changeset patch
+  # User johndoe
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== hg qref -u
+  abort: working directory revision is not qtip
+  # HG changeset patch
+  # User johndoe
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qnew with plain header
-  popping 6.patch
-  now at: 5.patch
-  now at: 6.patch
-  From: test
-  
-  5: 7825a18ec839 imported patch 6.patch - test
-  4: 1d898e201a22 [mq]: 5.patch - johndeere
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== hg qref
   adding 6
-  From: test
-  
-  diff -r ... 6
-  --- /dev/null
-  +++ b/6
-  @@ -0,0 +1,1 @@
-  +6
-  5: 09d19592680d [mq]: 6.patch - test
-  4: 1d898e201a22 [mq]: 5.patch - johndeere
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
-  ==== hg qref -U
-  From: test
-  
-  diff -r ... 6
-  --- /dev/null
-  +++ b/6
-  @@ -0,0 +1,1 @@
-  +6
-  5: 09d19592680d [mq]: 6.patch - test
-  4: 1d898e201a22 [mq]: 5.patch - johndeere
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
-  ==== hg qref -u
-  From: johndeere
-  
-  diff -r ... 6
-  --- /dev/null
-  +++ b/6
-  @@ -0,0 +1,1 @@
-  +6
-  5: 32641ee07196 [mq]: 6.patch - johndeere
-  4: 1d898e201a22 [mq]: 5.patch - johndeere
-  3: 0dfb3111e7ee Four - jane
-  2: a6686ee84fc3 Three (again) - maria
-  1: a425cde5f493 [mq]: 2.patch - jane
-  0: 3682f830e656 [mq]: 1.patch - mary
+  abort: working directory revision is not qtip
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== hg qref -U
+  abort: working directory revision is not qtip
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
+  ==== hg qref -u
+  abort: working directory revision is not qtip
+  cat: .hg/patches/6.patch: $ENOENT$
+  0: a054644889e5 [mq]: 1.patch - test
   ==== qpop -a / qpush -a
-  popping 6.patch
-  popping 5.patch
-  popping 4.patch
-  popping 3.patch
-  popping 2.patch
-  popping 1.patch
-  patch queue now empty
-  applying 1.patch
-  applying 2.patch
-  applying 3.patch
-  applying 4.patch
-  applying 5.patch
-  applying 6.patch
-  now at: 6.patch
-  5: 1fb083c80457 imported patch 6.patch - johndeere
-  4: 7e96e969691d imported patch 5.patch - johndeere
-  3: c7147533d3cd Four - jane
-  2: b383d04401ea Three (again) - maria
-  1: fac2da4efc3c imported patch 2.patch - jane
-  0: b6e237e8771b imported patch 1.patch - mary
+  popping 1.patch
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  (working directory not at a head)
+  all patches are currently applied
+  0: a054644889e5 [mq]: 1.patch - test
 
   $ cd ..

test-mq-merge.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-mq-merge.t\n+++ c:/hgdev/src/tests/test-mq-merge.t.err\n@@ -54,11 +54,16 @@\n   $ hg qnew rm_a\n   $ hg rm a\n   $ hg qrefresh -m "rm a"\n+  abort: $TESTTMP\\t\\.hg\\dirstate.pending: $ENOENT$.\n+  Exception OSError: OSError(2, \'C:\\\\Temp\\\\hgtests.dstqqw\\\\child610\\\\test-mq-merge.t\\\\t\\\\.hg\\\\dirstate.pending: $ENOENT$.\') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x00000000017BB088>> ignored\n+  [255]\n \n Save the patch queue so we can merge it later:\n \n   $ hg qsave -c -e\n-  copy $TESTTMP/t/.hg/patches to $TESTTMP/t/.hg/patches.1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ checkundo\n \n Update b and commit in an "update" changeset:\n@@ -69,7 +74,9 @@\n   $ hg st\n   M b\n   $ hg ci -m update\n-  created new head\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n # Here, qpush used to abort with :\n # The system cannot find the file specified => a\n@@ -78,20 +85,21 @@\n   b\n \n   $ hg qpush -a -m\n-  merging with queue at: $TESTTMP/t/.hg/patches.1\n-  applying rm_a\n-  now at: rm_a\n+  no saved queues found, please use -n\n+  [1]\n \n   $ checkundo\n   $ hg manifest\n+  a\n   b\n \n Ensure status is correct after merge:\n \n   $ hg qpop -a\n   popping rm_a\n-  popping .hg.patches.merge.marker\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ cd ..\n \n@@ -131,9 +139,62 @@\n   fuzz found when applying patch, stopping\n   patch didn\'t work out, merging patcha\n   1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  0 files updated, 2 files merged, 0 files removed, 0 files unresolved\n-  applying patcha2\n-  now at: patcha2\n+  cleaning up working directory...\n+  done\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3529, in push\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1714, in push\n+      ret = self.mergepatch(repo, mergeq, s, diffopts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 950, in mergepatch\n+      err, head = self.mergeone(repo, mergeq, head, patch, rev, diffopts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 875, in mergeone\n+      strip(self.ui, repo, [n], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Check patcha is still a git patch:\n \n@@ -145,17 +206,11 @@\n   --- a/a\n   +++ b/a\n   @@ -1,1 +1,2 @@\n-  -b\n-  +a\n+   a\n   +c\n   diff --git a/a b/aa\n   copy from a\n   copy to aa\n-  --- a/a\n-  +++ b/aa\n-  @@ -1,1 +1,1 @@\n-  -b\n-  +a\n \n Check patcha2 is still a regular patch:\n \n', 3718, 3720, 'truncated \\uXXXX escape') decoding diff, sorry

test-mq-missingfiles.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-mq-missingfiles.t\n+++ c:/hgdev/src/tests/test-mq-missingfiles.t.err\n@@ -37,52 +37,91 @@\n   $ hg qnew -f changeb\n   $ hg qpop\n   popping changeb\n-  patch queue now empty\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3582, in pop\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1863, in pop\n+      strip(self.ui, repo, [rev], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg rm b\n   $ hg ci -Am rmb\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Push patch with missing target:\n \n   $ hg qpush\n-  applying changeb\n-  unable to find \'b\' for patching\n-  (use \'--prefix\' to apply patch relative to the current directory)\n-  2 out of 2 hunks FAILED -- saving rejects to file b.rej\n-  patch failed, unable to continue (try -v)\n-  patch failed, rejects left in working directory\n-  errors during apply, please fix and qrefresh changeb\n-  [2]\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n \n Display added files:\n \n   $ cat a\n-  a\n+  cat: a: $ENOENT$\n+  [1]\n   $ cat c\n-  c\n+  cat: c: $ENOENT$\n+  [1]\n \n Display rejections:\n \n   $ cat b.rej\n-  --- b\n-  +++ b\n-  @@ -1,3 +1,5 @@\n-  +b\n-  +b\n-   a\n-   a\n-   a\n-  @@ -8,3 +10,5 @@\n-   a\n-   a\n-   a\n-  +c\n-  +c\n+  cat: b.rej: $ENOENT$\n+  [1]\n \n Test missing renamed file\n \n   $ hg qpop\n   popping changeb\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up -qC 0\n   $ echo a > a\n   $ hg mv b bb\n@@ -90,40 +129,24 @@\n   $ echo c > c\n   $ hg add a c\n   $ hg qnew changebb\n-  $ hg qpop\n-  popping changebb\n-  patch queue now empty\n+  abort: working directory revision is not qtip\n+  [255]\n+  $ hg qpop\n+  popping changeb\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up -qC 1\n   $ hg qpush\n-  applying changebb\n-  patching file bb\n-  Hunk #1 FAILED at 0\n-  Hunk #2 FAILED at 7\n-  2 out of 2 hunks FAILED -- saving rejects to file bb.rej\n-  b not tracked!\n-  patch failed, unable to continue (try -v)\n-  patch failed, rejects left in working directory\n-  errors during apply, please fix and qrefresh changebb\n-  [2]\n+  patch series already fully applied\n+  [1]\n   $ cat a\n   a\n   $ cat c\n   c\n   $ cat bb.rej\n-  --- bb\n-  +++ bb\n-  @@ -1,3 +1,5 @@\n-  +b\n-  +b\n-   a\n-   a\n-   a\n-  @@ -8,3 +10,5 @@\n-   a\n-   a\n-   a\n-  +c\n-  +c\n+  cat: bb.rej: $ENOENT$\n+  [1]\n \n   $ cd ..\n \n@@ -143,40 +166,85 @@\n   $ hg qnew -f changeb\n   $ hg qpop\n   popping changeb\n-  patch queue now empty\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3582, in pop\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1863, in pop\n+      strip(self.ui, repo, [rev], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg rm b\n   $ hg ci -Am rmb\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Push git patch with missing target:\n \n   $ hg qpush\n-  applying changeb\n-  unable to find \'b\' for patching\n-  (use \'--prefix\' to apply patch relative to the current directory)\n-  1 out of 1 hunks FAILED -- saving rejects to file b.rej\n-  patch failed, unable to continue (try -v)\n-  patch failed, rejects left in working directory\n-  errors during apply, please fix and qrefresh changeb\n-  [2]\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n   $ hg st\n-  ? b.rej\n+  R b\n \n Display added files:\n \n   $ cat a\n-  a\n+  cat: a: $ENOENT$\n+  [1]\n   $ cat c\n-  c\n+  cat: c: $ENOENT$\n+  [1]\n \n Display rejections:\n \n   $ cat b.rej\n-  --- b\n-  +++ b\n-  GIT binary patch\n-  literal 2\n-  Jc${No0000400IC2\n-  \n+  cat: b.rej: $ENOENT$\n+  [1]\n   $ cd ..\n \n Test push creating directory during git copy or rename:\n@@ -192,10 +260,60 @@\n   $ hg qnew -g -f patch\n   $ hg qpop\n   popping patch\n-  patch queue now empty\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3582, in pop\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1863, in pop\n+      strip(self.ui, repo, [rev], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg qpush\n-  applying patch\n-  now at: patch\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n \n   $ cd ..\n \n', 2103, 2105, 'truncated \\uXXXX escape') decoding diff, sorry

test-mq-qclone-http.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-mq-qclone-http.t\n+++ c:/hgdev/src/tests/test-mq-qclone-http.t.err\n@@ -33,12 +33,8 @@\n   >     -A access-paths.log -E error-paths-1.log\n   $ cat hg.pid >> $DAEMON_PIDS\n   $ get-with-headers.py localhost:$HGPORT \'?style=raw\'\n-  200 Script output follows\n-  \n-  \n-  /a/\n-  /a/.hg/patches/\n-  \n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ hg qclone http://localhost:$HGPORT/a b\n   requesting all changes\n   adding changesets\n@@ -54,14 +50,66 @@\n   new changesets 4052ceaa8c4e\n   updating to branch default\n   3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 2925, in clone\n+      strip(ui, repo, [qbase], update=False, backup=None)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg --cwd b log --template "{desc}\\n"\n+  [mq]: b.patch\n   a\n   $ hg --cwd b qpush -a\n-  applying b.patch\n-  now at: b.patch\n+  (working directory not at a head)\n+  cleaning up working directory...\n+  done\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg --cwd b log --template "{desc}\\n"\n-  imported patch b.patch\n+  [mq]: b.patch\n   a\n \n test with normal collection\n@@ -74,12 +122,8 @@\n   >     -A access-paths.log -E error-paths-1.log\n   $ cat hg.pid >> $DAEMON_PIDS\n   $ get-with-headers.py localhost:$HGPORT1 \'?style=raw\'\n-  200 Script output follows\n-  \n-  \n-  /a/\n-  /a/.hg/patches/\n-  \n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ hg qclone http://localhost:$HGPORT1/a c\n   requesting all changes\n   adding changesets\n@@ -95,14 +139,66 @@\n   new changesets 4052ceaa8c4e\n   updating to branch default\n   3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 2925, in clone\n+      strip(ui, repo, [qbase], update=False, backup=None)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg --cwd c log --template "{desc}\\n"\n+  [mq]: b.patch\n   a\n   $ hg --cwd c qpush -a\n-  applying b.patch\n-  now at: b.patch\n+  (working directory not at a head)\n+  cleaning up working directory...\n+  done\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg --cwd c log --template "{desc}\\n"\n-  imported patch b.patch\n+  [mq]: b.patch\n   a\n \n test with old-style collection\n@@ -115,12 +211,8 @@\n   >     -A access-paths.log -E error-paths-1.log\n   $ cat hg.pid >> $DAEMON_PIDS\n   $ get-with-headers.py localhost:$HGPORT2 \'?style=raw\'\n-  200 Script output follows\n-  \n-  \n-  /a/\n-  /a/.hg/patches/\n-  \n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ hg qclone http://localhost:$HGPORT2/a d\n   requesting all changes\n   adding changesets\n@@ -136,14 +228,66 @@\n   new changesets 4052ceaa8c4e\n   updating to branch default\n   3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 2925, in clone\n+      strip(ui, repo, [qbase], update=False, backup=None)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg --cwd d log --template "{desc}\\n"\n+  [mq]: b.patch\n   a\n   $ hg --cwd d qpush -a\n-  applying b.patch\n-  now at: b.patch\n+  (working directory not at a head)\n+  cleaning up working directory...\n+  done\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg --cwd d log --template "{desc}\\n"\n-  imported patch b.patch\n+  [mq]: b.patch\n   a\n \n test --mq works and uses correct repository config\n@@ -157,4 +301,6 @@\n   0 b.patch\n \n   $ killdaemons.py\n-\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n+\n', 2584, 2586, 'truncated \\uXXXX escape') decoding diff, sorry

test-mq-qdelete.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-mq-qdelete.t\n+++ c:/hgdev/src/tests/test-mq-qdelete.t.err\n@@ -22,31 +22,89 @@\n \n   $ hg qpop\n   popping pc\n-  now at: pb\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3582, in pop\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1863, in pop\n+      strip(self.ui, repo, [rev], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Delete the same patch twice in one command (issue2427)\n \n   $ hg qdel pc pc\n+  abort: cannot delete applied patch pc\n+  [255]\n \n   $ hg qseries\n   pa\n   pb\n+  pc\n \n   $ ls .hg/patches\n   pa\n   pb\n+  pc\n   series\n   status\n \n   $ hg qpop\n-  popping pb\n-  now at: pa\n+  popping pc\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg qdel -k 1\n+  abort: cannot delete applied patch pb\n+  [255]\n \n   $ ls .hg/patches\n   pa\n   pb\n+  pc\n   series\n   status\n \n@@ -54,30 +112,40 @@\n   patch pa finalized without changeset message\n \n   $ hg qapplied\n+  pb\n+  pc\n \n   $ hg log --template \'{rev} {desc}\\n\'\n+  3 [mq]: pc\n+  2 [mq]: pb\n   1 [mq]: pa\n   0 base\n \n   $ hg qnew pd\n+  abort: working directory revision is not qtip\n+  [255]\n   $ hg qnew pe\n+  abort: working directory revision is not qtip\n+  [255]\n   $ hg qnew pf\n+  abort: working directory revision is not qtip\n+  [255]\n \n   $ hg qdel -r pe\n-  abort: cannot delete revision 3 above applied patches\n+  abort: unknown revision \'pe\'\n   [255]\n \n   $ hg qdel -r qbase:pe\n-  patch pd finalized without changeset message\n-  patch pe finalized without changeset message\n-\n-  $ hg qapplied\n-  pf\n+  abort: unknown revision \'pe\'\n+  [255]\n+\n+  $ hg qapplied\n+  pb\n+  pc\n \n   $ hg log --template \'{rev} {desc}\\n\'\n-  4 [mq]: pf\n-  3 [mq]: pe\n-  2 [mq]: pd\n+  3 [mq]: pc\n+  2 [mq]: pb\n   1 [mq]: pa\n   0 base\n \n@@ -111,37 +179,84 @@\n \n   $ hg qpop\n   popping pc\n-  now at: pb\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3582, in pop\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1863, in pop\n+      strip(self.ui, repo, [rev], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg qfinish -a pc\n-  abort: unknown revision \'pc\'\n-  [255]\n-\n-  $ hg qpush\n-  applying pc\n-  patch pc is empty\n-  now at: pc\n-\n-  $ hg qfinish qbase:pb\n   patch pa finalized without changeset message\n   patch pb finalized without changeset message\n-\n-  $ hg qapplied\n-  pc\n+  patch pc finalized without changeset message\n+\n+  $ hg qpush\n+  (working directory not at a head)\n+  no patches in series\n+\n+  $ hg qfinish qbase:pb\n+  no patches applied\n+\n+  $ hg qapplied\n \n   $ hg log --template \'{rev} {desc}\\n\'\n-  3 imported patch pc\n+  3 [mq]: pc\n   2 [mq]: pb\n   1 [mq]: pa\n   0 base\n \n   $ hg qfinish -a pc\n-  patch pc finalized without changeset message\n+  no patches applied\n \n   $ hg qapplied\n \n   $ hg log --template \'{rev} {desc}\\n\'\n-  3 imported patch pc\n+  3 [mq]: pc\n   2 [mq]: pb\n   1 [mq]: pa\n   0 base\n@@ -154,12 +269,18 @@\n \n   $ hg init --mq\n   $ hg qimport -r 3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg qpop\n-  popping imported_patch_pc\n-  patch queue now empty\n+  no patches applied\n+  [1]\n   $ hg qdel -k imported_patch_pc\n+  abort: patch imported_patch_pc not in series\n+  [255]\n   $ hg qimp -e imported_patch_pc\n-  adding imported_patch_pc to series file\n+  abort: patch imported_patch_pc does not exist\n+  [255]\n   $ hg qfinish -a\n   no patches applied\n \n@@ -167,31 +288,38 @@\n resilience to inconsistency: qfinish -a with applied patches not in series\n \n   $ hg qser\n-  imported_patch_pc\n   $ hg qapplied\n   $ hg qpush\n-  applying imported_patch_pc\n-  patch imported_patch_pc is empty\n-  now at: imported_patch_pc\n+  (working directory not at a head)\n+  no patches in series\n   $ echo next >>  base\n   $ hg qrefresh -d \'1 0\'\n+  no patches applied\n+  [1]\n   $ echo > .hg/patches/series # remove 3.diff from series to confuse mq\n   $ hg qfinish -a\n-  revision 47dfa8501675 refers to unknown patches: imported_patch_pc\n+  no patches applied\n \n more complex state \'both known and unknown patches\n \n   $ echo hip >>  base\n   $ hg qnew -f -d \'1 0\' -m 4 4.diff\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo hop >>  base\n   $ hg qnew -f -d \'1 0\' -m 5 5.diff\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo > .hg/patches/series # remove 4.diff and 5.diff from series to confuse mq\n   $ echo hup >>  base\n   $ hg qnew -f -d \'1 0\' -m 6 6.diff\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo pup > base\n   $ hg qfinish -a\n-  warning: uncommitted changes in the working directory\n-  revision 2b1c98802260 refers to unknown patches: 5.diff\n-  revision 33a6861311c0 refers to unknown patches: 4.diff\n+  no patches applied\n \n   $ cd ..\n', 2055, 2057, 'truncated \\uXXXX escape') decoding diff, sorry

test-mq-qdiff.t

--- c:/hgdev/src/tests/test-mq-qdiff.t
+++ c:/hgdev/src/tests/test-mq-qdiff.t.err
@@ -16,164 +16,104 @@
 
   $ echo 'patched' > base
   $ hg qrefresh
+  abort: $TESTTMP\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child678\test-mq-qdiff.t\a\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x000000000166C088>> ignored
+  [255]
 
 qdiff:
 
   $ hg qdiff
-  diff -r d20a80d4def3 base
-  --- a/base	Thu Jan 01 00:00:00 1970 +0000
-  +++ b/base* (glob)
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
+  abort: working directory revision is not qtip
+  [255]
 
 qdiff dirname:
 
   $ hg qdiff --nodates .
-  diff -r d20a80d4def3 base
-  --- a/base
-  +++ b/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
+  abort: working directory revision is not qtip
+  [255]
 
 qdiff filename:
 
   $ hg qdiff --nodates base
-  diff -r d20a80d4def3 base
-  --- a/base
-  +++ b/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
+  abort: working directory revision is not qtip
+  [255]
 
   $ hg revert -a
+  reverting base
 
   $ hg qpop
   popping mqbase
-  patch queue now empty
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
 
   $ hg qdelete mqbase
+  abort: cannot delete applied patch mqbase
+  [255]
 
   $ printf '1
2
3
4
hello world
goodbye world
7
8
9
' > lines
   $ hg ci -Amlines -d '2 0'
+  adding base.orig
   adding lines
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
 
   $ hg qnew -mmqbase2 mqbase2
+  abort: working directory revision is not qtip
+  [255]
   $ printf '

1
2
3
4
hello  world
     goodbye world
7
8
9
' > lines
 
   $ hg qdiff --nodates -U 1
-  diff -r b0c220e1cf43 lines
-  --- a/lines
-  +++ b/lines
-  @@ -1,1 +1,3 @@
-  +
-  +
-   1
-  @@ -4,4 +6,4 @@
-   4
-  -hello world
-  -goodbye world
-  +hello  world
-  +     goodbye world
-   7
+  abort: working directory revision is not qtip
+  [255]
 
   $ hg qdiff --nodates -b
-  diff -r b0c220e1cf43 lines
-  --- a/lines
-  +++ b/lines
-  @@ -1,9 +1,11 @@
-  +
-  +
-   1
-   2
-   3
-   4
-   hello world
-  -goodbye world
-  +     goodbye world
-   7
-   8
-   9
+  abort: working directory revision is not qtip
+  [255]
 
   $ hg qdiff --nodates -U 1 -B
-  diff -r b0c220e1cf43 lines
-  --- a/lines
-  +++ b/lines
-  @@ -4,4 +4,4 @@
-   4
-  -hello world
-  -goodbye world
-  +hello  world
-  +     goodbye world
-   7
+  abort: working directory revision is not qtip
+  [255]
 
   $ hg qdiff --nodates -w
-  diff -r b0c220e1cf43 lines
-  --- a/lines
-  +++ b/lines
-  @@ -1,3 +1,5 @@
-  +
-  +
-   1
-   2
-   3
+  abort: working directory revision is not qtip
+  [255]
 
   $ hg qdiff --nodates --reverse
-  diff -r b0c220e1cf43 lines
-  --- a/lines
-  +++ b/lines
-  @@ -1,11 +1,9 @@
-  -
-  -
-   1
-   2
-   3
-   4
-  -hello  world
-  -     goodbye world
-  +hello world
-  +goodbye world
-   7
-   8
-   9
+  abort: working directory revision is not qtip
+  [255]
 
 qdiff preserve existing git flag:
 
   $ hg qrefresh --git
+  abort: working directory revision is not qtip
+  [255]
   $ echo a >> lines
   $ hg qdiff
-  diff --git a/lines b/lines
-  --- a/lines
-  +++ b/lines
-  @@ -1,9 +1,12 @@
-  +
-  +
-   1
-   2
-   3
-   4
-  -hello world
-  -goodbye world
-  +hello  world
-  +     goodbye world
-   7
-   8
-   9
-  +a
+  abort: working directory revision is not qtip
+  [255]
 
   $ hg qdiff --stat
-   lines |  7 +++++--
-   1 files changed, 5 insertions(+), 2 deletions(-)
+  abort: working directory revision is not qtip
+  [255]
   $ hg qrefresh
+  abort: working directory revision is not qtip
+  [255]
 
 qdiff when file deleted (but not removed) in working dir:
 
   $ hg qnew deleted-file
+  abort: working directory revision is not qtip
+  [255]
   $ echo a > newfile
   $ hg add newfile
   $ hg qrefresh
+  abort: working directory revision is not qtip
+  [255]
   $ rm newfile
   $ hg qdiff
+  abort: working directory revision is not qtip
+  [255]
 
   $ cd ..

test-mq-qfold.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-mq-qfold.t\n+++ c:/hgdev/src/tests/test-mq-qfold.t.err\n@@ -28,49 +28,91 @@\n   $ hg qpop p1\n   popping p3\n   popping p2\n-  now at: p1\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3582, in pop\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1863, in pop\n+      strip(self.ui, repo, [rev], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg qdiff\n-  diff -r 07f494440405 a\n+  abort: working directory revision is not qtip\n+  [255]\n+\n+  $ HGEDITOR=cat hg qfold p2\n+  abort: working directory revision is not qtip\n+  [255]\n+  $ grep git .hg/patches/p1 && echo \'git patch found!\'\n+  [1]\n+\n+  $ hg qser\n+  p1\n+  p2\n+  p3\n+\n+  $ hg qdiff\n+  abort: working directory revision is not qtip\n+  [255]\n+\n+Fold with local changes:\n+\n+  $ echo d >> a\n+  $ hg qfold p3\n+  abort: working directory revision is not qtip\n+  [255]\n+\n+  $ hg diff -c .\n+  diff -r 07f494440405 -r ???????????? a (glob)\n   --- a/a\n   +++ b/a\n   @@ -1,1 +1,2 @@\n    a\n   +a\n \n-  $ HGEDITOR=cat hg qfold p2\n-  $ grep git .hg/patches/p1 && echo \'git patch found!\'\n-  [1]\n-\n-  $ hg qser\n-  p1\n-  p3\n-\n-  $ hg qdiff\n-  diff -r 07f494440405 a\n-  --- a/a\n-  +++ b/a\n-  @@ -1,1 +1,3 @@\n-   a\n-  +a\n-  +b\n-\n-Fold with local changes:\n-\n-  $ echo d >> a\n-  $ hg qfold p3\n-  abort: local changes found, qrefresh first\n-  [255]\n-\n-  $ hg diff -c .\n-  diff -r 07f494440405 -r ???????????? a (glob)\n-  --- a/a\n-  +++ b/a\n-  @@ -1,1 +1,3 @@\n-   a\n-  +a\n-  +b\n-\n   $ hg revert -a --no-backup\n   reverting a\n \n@@ -78,75 +120,70 @@\n \n   $ echo a >> a\n   $ hg qnew -f regular\n+  abort: working directory revision is not qtip\n+  [255]\n   $ hg cp a aa\n   $ hg qnew --git -f git\n+  abort: working directory revision is not qtip\n+  [255]\n \n   $ hg qpop\n-  popping git\n-  now at: regular\n+  popping p3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg qfold git\n+  abort: working directory revision is not qtip\n+  [255]\n \n   $ cat .hg/patches/regular\n-  # HG changeset patch\n-  # Parent  ???????????????????????????????????????? (glob)\n-  \n-  diff --git a/a b/a\n-  --- a/a\n-  +++ b/a\n-  @@ -1,3 +1,4 @@\n-   a\n-   a\n-   b\n-  +a\n-  diff --git a/a b/aa\n-  copy from a\n-  copy to aa\n-  --- a/a\n-  +++ b/aa\n-  @@ -1,3 +1,4 @@\n-   a\n-   a\n-   b\n-  +a\n+  cat: .hg/patches/regular: $ENOENT$\n+  [1]\n \n   $ hg qpop\n-  popping regular\n-  now at: p1\n+  popping p3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg qdel regular\n+  abort: patch regular not in series\n+  [255]\n \n Fold regular patch into a git patch, expect git patch:\n \n   $ hg cp a aa\n+  aa: not overwriting - file exists\n+  (\'hg copy --after\' to record the copy)\n+  [1]\n   $ hg qnew --git -f git\n+  abort: working directory revision is not qtip\n+  [255]\n   $ echo b >> aa\n   $ hg qnew -f regular\n+  abort: working directory revision is not qtip\n+  [255]\n \n   $ hg qpop\n-  popping regular\n-  now at: git\n+  popping p3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg qfold regular\n+  abort: working directory revision is not qtip\n+  [255]\n \n   $ cat .hg/patches/git\n-  # HG changeset patch\n-  # Parent  ???????????????????????????????????????? (glob)\n-  \n-  diff --git a/a b/aa\n-  copy from a\n-  copy to aa\n-  --- a/a\n-  +++ b/aa\n-  @@ -1,3 +1,4 @@\n-   a\n-   a\n-   b\n-  +b\n+  cat: .hg/patches/git: $ENOENT$\n+  [1]\n \n Test saving last-message.txt:\n \n   $ hg qrefresh -m "original message"\n+  abort: working directory revision is not qtip\n+  [255]\n \n   $ cat > $TESTTMP/commitfailure.py <<EOF\n   > from mercurial import error\n@@ -172,17 +209,17 @@\n \n   $ hg qapplied\n   p1\n-  git\n+  p2\n+  p3\n   $ hg tip --template "{files}\\n"\n-  aa\n+  a\n \n (test that editor is not invoked before transaction starting,\n and that combination of \'--edit\' and \'--message\' doesn\'t abort execution)\n \n   $ rm -f .hg/last-message.txt\n   $ HGEDITOR="sh $TESTTMP/editor.sh" hg qfold -e -m MESSAGE p3\n-  qrefresh interrupted while patch was popped! (revert --all, qpush to recover)\n-  abort: emulating unexpected abort\n+  abort: working directory revision is not qtip\n   [255]\n   $ test -f .hg/last-message.txt\n   [1]\n@@ -197,14 +234,18 @@\n \n   $ hg qapplied\n   p1\n+  p2\n+  p3\n   $ hg status -A aa\n-  ? aa\n+  A aa\n+    a\n   $ rm aa\n   $ hg status -m\n   M a\n   $ hg revert --no-backup -q a\n   $ hg qpush -q git\n-  now at: git\n+  abort: patch git not in series\n+  [255]\n \n (test that editor is invoked and commit message is saved into\n "last-message.txt")\n@@ -217,31 +258,11 @@\n \n   $ rm -f .hg/last-message.txt\n   $ HGEDITOR="sh $TESTTMP/editor.sh" hg qfold -e p3\n-  ==== before editing\n-  original message\n-  \n-  \n-  HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  HG: Leave message empty to use default message.\n-  HG: --\n-  HG: user: test\n-  HG: branch \'default\'\n-  HG: added aa\n-  HG: changed a\n-  ====\n-  note: commit message saved in .hg/last-message.txt\n-  note: use \'hg commit --logfile .hg/last-message.txt --edit\' to reuse it\n-  transaction abort!\n-  rollback completed\n-  qrefresh interrupted while patch was popped! (revert --all, qpush to recover)\n-  abort: pretxncommit.unexpectedabort hook exited with status 1\n+  abort: working directory revision is not qtip\n   [255]\n   $ cat .hg/last-message.txt\n-  original message\n-  \n-  \n-  \n-  test saving last-message.txt\n+  cat: .hg/last-message.txt: $ENOENT$\n+  [1]\n \n (confirm whether files listed up in the commit message editing are correct)\n \n@@ -252,13 +273,14 @@\n   $ hg status -u | while read f; do rm ${f}; done\n   $ hg revert --no-backup -q --all\n   $ hg qpush -q git\n-  now at: git\n+  abort: patch git not in series\n+  [255]\n   $ hg qpush -q --move p3\n-  now at: p3\n+  qpush: p3 is already at the top\n \n   $ hg status --rev "git^1" --rev . -arm\n-  M a\n-  A aa\n+  abort: unknown revision \'git\'\n+  [255]\n \n   $ cd ..\n \n', 2066, 2068, 'truncated \\uXXXX escape') decoding diff, sorry

test-mq-qgoto.t

--- c:/hgdev/src/tests/test-mq-qgoto.t
+++ c:/hgdev/src/tests/test-mq-qgoto.t.err
@@ -10,83 +10,92 @@
   $ hg qnew a.patch
   $ echo a >> a
   $ hg qrefresh
+  abort: $TESTTMP\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child769\test-mq-qgoto.t\a\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x0000000001645E88>> ignored
+  [255]
 
   $ hg qnew b.patch
+  abort: working directory revision is not qtip
+  [255]
   $ echo b > b
   $ hg add b
   $ hg qrefresh
+  abort: working directory revision is not qtip
+  [255]
 
   $ hg qnew c.patch
+  abort: working directory revision is not qtip
+  [255]
   $ echo c > c
   $ hg add c
   $ hg qrefresh
+  abort: working directory revision is not qtip
+  [255]
 
   $ hg qgoto a.patch
-  popping c.patch
-  popping b.patch
-  now at: a.patch
+  qpop: a.patch is already at the top
 
   $ hg qgoto c.patch
-  applying b.patch
-  applying c.patch
-  now at: c.patch
+  abort: patch c.patch not in series
+  [255]
 
   $ hg qgoto b.patch
-  popping c.patch
-  now at: b.patch
+  abort: patch b.patch not in series
+  [255]
 
 Using index:
 
   $ hg qgoto 0
-  popping b.patch
-  now at: a.patch
+  qpop: a.patch is already at the top
 
   $ hg qgoto 2
-  applying b.patch
-  applying c.patch
-  now at: c.patch
+  abort: patch 2 not in series
+  [255]
 
 No warnings when using index ... and update from non-qtip and with pending
 changes in unrelated files:
 
   $ hg qnew bug314159
+  abort: working directory revision is not qtip
+  [255]
   $ echo d >> c
   $ hg qrefresh
+  abort: working directory revision is not qtip
+  [255]
   $ hg qnew bug141421
+  abort: working directory revision is not qtip
+  [255]
   $ echo e >> b
   $ hg qrefresh
+  abort: working directory revision is not qtip
+  [255]
 
   $ hg up -r bug314159
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  abort: unknown revision 'bug314159'
+  [255]
   $ echo f >> a
   $ echo f >> b
   $ echo f >> c
 
   $ hg qgoto 1
-  abort: local changes found, qrefresh first
+  abort: patch 1 not in series
   [255]
   $ hg qgoto 1 -f
-  popping bug141421
-  popping bug314159
-  popping c.patch
-  now at: b.patch
+  abort: patch 1 not in series
+  [255]
   $ hg st
   M a
-  M b
-  ? c.orig
+  A b
+  A c
   $ hg up -qCr.
 
   $ hg qgoto 3
-  applying c.patch
-  applying bug314159
-  now at: bug314159
+  abort: patch 3 not in series
+  [255]
 
 Detect ambiguous non-index:
 
   $ hg qgoto 14
-  patch name "14" is ambiguous:
-    bug314159
-    bug141421
   abort: patch 14 not in series
   [255]
 

test-mq-qimport-fail-cleanup.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-mq-qimport-fail-cleanup.t\n+++ c:/hgdev/src/tests/test-mq-qimport-fail-cleanup.t.err\n@@ -35,8 +35,51 @@\n \n   $ hg pull -q -r 0 . # update phase\n   $ hg qimport -r 0\n-  abort: revision 0 is not mutable\n-  (see \'hg help phases\' for details)\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 2749, in qimport\n+      git=opts.get(b\'git\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 2502, in qimport\n+      self.seriesdirty = True\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ cd ..\n', 2181, 2183, 'truncated \\uXXXX escape') decoding diff, sorry

test-mq-qimport.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-mq-qimport.t\n+++ c:/hgdev/src/tests/test-mq-qimport.t.err\n@@ -41,9 +41,52 @@\n qimport null revision\n \n   $ hg qimport -r null\n-  abort: revision -1 is not mutable\n-  (see \'hg help phases\' for details)\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 2749, in qimport\n+      git=opts.get(b\'git\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 2502, in qimport\n+      self.seriesdirty = True\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg qseries\n \n import email\n@@ -75,29 +118,23 @@\n   > \n   > EOF\n   adding email to series file\n-  applying email\n-  now at: email\n+  cleaning up working directory...\n+  done\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n hg tip -v\n \n   $ hg tip -v\n-  changeset:   0:1a706973a7d8\n-  tag:         email\n-  tag:         qbase\n-  tag:         qtip\n+  changeset:   -1:000000000000\n   tag:         tip\n-  user:        Username in patch <test@example.net>\n+  user:        \n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  files:       x\n-  description:\n-  First line of commit message.\n-  \n-  More text in commit message.\n-  \n   \n   $ hg qpop\n-  popping email\n-  patch queue now empty\n+  no patches applied\n+  [1]\n   $ hg qdelete email\n \n import URL\n@@ -130,44 +167,58 @@\n   abort: patch "url.diff" already exists\n   [255]\n   $ hg qpush\n-  applying url.diff\n-  now at: url.diff\n+  cleaning up working directory...\n+  done\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat foo\n-  foo\n+  cat: foo: $ENOENT$\n+  [1]\n   $ hg qpop\n-  popping url.diff\n-  patch queue now empty\n+  no patches applied\n+  [1]\n \n qimport -f\n \n   $ hg qimport -f ../url.diff\n   adding url.diff to series file\n   $ hg qpush\n-  applying url.diff\n-  now at: url.diff\n+  cleaning up working directory...\n+  done\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat foo\n-  foo2\n+  cat: foo: $ENOENT$\n+  [1]\n   $ hg qpop\n-  popping url.diff\n-  patch queue now empty\n+  no patches applied\n+  [1]\n \n build diff with CRLF\n \n   $ "$PYTHON" ../writelines.py b 5 \'a\\n\' 5 \'a\\r\\n\'\n   $ hg ci -Am addb\n   adding b\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ "$PYTHON" ../writelines.py b 2 \'a\\n\' 10 \'b\\n\' 2 \'a\\r\\n\'\n   $ hg diff > b.diff\n   $ hg up -C\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n \n qimport CRLF diff\n \n   $ hg qimport b.diff\n   adding b.diff to series file\n   $ hg qpush\n-  applying b.diff\n-  now at: b.diff\n+  cleaning up working directory...\n+  done\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n try to import --push\n \n@@ -195,58 +246,72 @@\n   $ hg qimport --push appendfoo.diff appendbar.diff\n   adding appendfoo.diff to series file\n   adding appendbar.diff to series file\n-  applying appendfoo.diff\n-  applying appendbar.diff\n-  now at: appendbar.diff\n+  cleaning up working directory...\n+  done\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg qfin -a\n-  patch b.diff finalized without changeset message\n+  no patches applied\n   $ touch .hg/patches/append_foo\n   $ hg qimport -r \'p1(.)::\'\n   $ hg qapplied\n-  append_foo__1\n-  append_bar\n   $ hg qfin -a\n+  no patches applied\n   $ rm .hg/patches/append_foo\n   $ hg qimport -r \'p1(.)::\' -P\n   $ hg qpop -a\n-  popping append_bar\n-  popping append_foo\n-  patch queue now empty\n+  no patches applied\n   $ hg qdel append_foo\n+  abort: patch append_foo not in series\n+  [255]\n   $ hg qdel -k append_bar\n+  abort: patch append_bar not in series\n+  [255]\n \n qimport -e\n \n   $ hg qimport -e append_bar\n-  adding append_bar to series file\n+  abort: patch append_bar does not exist\n+  [255]\n   $ hg qdel -k append_bar\n+  abort: patch append_bar not in series\n+  [255]\n \n qimport -e --name newname oldexisitingpatch\n \n   $ hg qimport -e --name this-name-is-better append_bar\n-  renaming append_bar to this-name-is-better\n-  adding this-name-is-better to series file\n+  abort: patch append_bar does not exist\n+  [255]\n   $ hg qser\n-  this-name-is-better\n+  appendfoo.diff\n+  appendbar.diff\n+  b.diff\n   url.diff\n \n qimport -e --name without --force\n \n   $ cp .hg/patches/this-name-is-better .hg/patches/3.diff\n+  cp: cannot stat `.hg/patches/this-name-is-better\': $ENOENT$\n+  [1]\n   $ hg qimport -e --name this-name-is-better 3.diff\n-  abort: patch "this-name-is-better" already exists\n+  abort: patch 3.diff does not exist\n   [255]\n   $ hg qser\n-  this-name-is-better\n+  appendfoo.diff\n+  appendbar.diff\n+  b.diff\n   url.diff\n \n qimport -e --name with --force\n \n   $ hg qimport --force -e --name this-name-is-better 3.diff\n-  renaming 3.diff to this-name-is-better\n-  adding this-name-is-better to series file\n+  abort: patch 3.diff does not exist\n+  [255]\n   $ hg qser\n-  this-name-is-better\n+  appendfoo.diff\n+  appendbar.diff\n+  b.diff\n   url.diff\n \n import patch of bad filename\n@@ -292,70 +357,99 @@\n check qimport phase:\n \n   $ hg -q qpush\n-  now at: 0\n+  cleaning up working directory...\n+  done\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase qparent\n-  1: draft\n+  abort: unknown revision \'qparent\'\n+  [255]\n   $ hg qimport -r qparent\n+  abort: unknown revision \'qparent\'\n+  [255]\n   $ hg phase qbase\n-  1: draft\n+  abort: unknown revision \'qbase\'\n+  [255]\n   $ hg qfinish qbase\n+  no patches applied\n   $ echo \'[mq]\' >> $HGRCPATH\n   $ echo \'secret=true\' >> $HGRCPATH\n   $ hg qimport -r qparent\n+  abort: unknown revision \'qparent\'\n+  [255]\n   $ hg phase qbase\n-  1: secret\n+  abort: unknown revision \'qbase\'\n+  [255]\n \n   $ cd ..\n \n   $ killdaemons.py\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n check patch name generation for non-alpha-numeric summary line\n \n   $ cd repo\n \n   $ hg qpop -a -q\n-  patch queue now empty\n+  no patches applied\n   $ hg qseries -v\n-  0 U imported_patch_b_diff\n-  1 U 0\n-  2 U this-name-is-better\n-  3 U url.diff\n+  0 U 0\n+  1 U appendfoo.diff\n+  2 U appendbar.diff\n+  3 U b.diff\n+  4 U url.diff\n \n   $ echo bb >> b\n   $ hg commit -m \'==++--==\'\n+  nothing changed\n+  [1]\n \n   $ hg qimport -r tip\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg qseries -v\n-  0 A 1.diff\n-  1 U imported_patch_b_diff\n-  2 U 0\n-  3 U this-name-is-better\n+  0 U 0\n+  1 U appendfoo.diff\n+  2 U appendbar.diff\n+  3 U b.diff\n   4 U url.diff\n \n check reserved patch names\n \n   $ hg qpop -qa\n-  patch queue now empty\n+  no patches applied\n   $ echo >> b\n   $ hg commit -m \'status\'\n+  nothing changed\n+  [1]\n   $ echo >> b\n   $ hg commit -m \'.\'\n+  nothing changed\n+  [1]\n   $ echo >> b\n   $ hg commit -m \'taken\'\n+  nothing changed\n+  [1]\n   $ mkdir .hg/patches/taken\n   $ touch .hg/patches/taken__1\n   $ hg qimport -r -3::\n+  abort: unknown revision \'-3\'\n+  [255]\n   $ hg qap\n-  1.diff__1\n-  2.diff\n-  taken__2\n \n check very long patch name\n \n   $ hg qpop -qa\n-  patch queue now empty\n+  no patches applied\n   $ echo >> b\n   $ hg commit -m \'abcdefghi pqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi pqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi pqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi pqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi pqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghi pqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\'\n+  nothing changed\n+  [1]\n   $ hg qimport -r .\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg qap\n-  abcdefghi_pqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghi_pqrstuvwxyzabcdefg\n', 2144, 2146, 'truncated \\uXXXX escape') decoding diff, sorry

test-mq-qnew.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-mq-qnew.t\n+++ c:/hgdev/src/tests/test-mq-qnew.t.err\n@@ -121,40 +121,90 @@\n   abort: "foo" already exists as a directory\n   foo/bar.patch\n   popping foo/bar.patch\n-  patch queue now empty\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3582, in pop\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1863, in pop\n+      strip(self.ui, repo, [rev], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  abort: cannot delete applied patch foo/bar.patch\n   % qnew with uncommitted changes\n-  uncommitted.patch\n+  abort: working directory revision is not qtip\n+  A somefile\n+  foo/bar.patch\n   % qnew implies add\n   A .hgignore\n+  A foo/bar.patch\n   A series\n-  A uncommitted.patch\n   % qnew missing\n   abort: missing: * (glob)\n   % qnew -m\n-  foo bar\n-  \n+  abort: working directory revision is not qtip\n+  cat: .hg/patches/mtest.patch: $ENOENT$\n   % qnew twice\n-  abort: patch "first.patch" already exists\n-  abort: patch "first.patch" already exists\n+  abort: working directory revision is not qtip\n+  abort: working directory revision is not qtip\n+  adding first.patch to series file\n   % qnew -f from a subdirectory\n-  popping first.patch\n-  popping mtest.patch\n-  popping uncommitted.patch\n-  patch queue now empty\n+  popping foo/bar.patch\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   adding d/b\n-  M d/b\n-  diff --git a/d/b b/d/b\n-  --- a/d/b\n-  +++ b/d/b\n-  @@ -1,1 +1,2 @@\n-   b\n-  +b\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  A somefile\n+  ? d/b\n+  abort: working directory revision is not qtip\n+  cat: ../.hg/patches/p: $ENOENT$\n   % qnew -u with no username configured\n-  From: blue\n-  \n+  abort: working directory revision is not qtip\n+  cat: ../.hg/patches/red: $ENOENT$\n   % qnew -e -u with no username configured\n-  From: chartreuse\n-  \n+  abort: working directory revision is not qtip\n+  cat: ../.hg/patches/fucsia: $ENOENT$\n   % fail when trying to import a merge\n   adding a\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n@@ -191,49 +241,90 @@\n   abort: "foo" already exists as a directory\n   foo/bar.patch\n   popping foo/bar.patch\n-  patch queue now empty\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3582, in pop\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1863, in pop\n+      strip(self.ui, repo, [rev], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  abort: cannot delete applied patch foo/bar.patch\n   % qnew with uncommitted changes\n-  uncommitted.patch\n+  abort: working directory revision is not qtip\n+  A somefile\n+  foo/bar.patch\n   % qnew implies add\n   A .hgignore\n+  A foo/bar.patch\n   A series\n-  A uncommitted.patch\n   % qnew missing\n   abort: missing: * (glob)\n   % qnew -m\n-  # HG changeset patch\n-  # Parent \n-  foo bar\n-  \n+  abort: working directory revision is not qtip\n+  cat: .hg/patches/mtest.patch: $ENOENT$\n   % qnew twice\n-  abort: patch "first.patch" already exists\n-  abort: patch "first.patch" already exists\n+  abort: working directory revision is not qtip\n+  abort: working directory revision is not qtip\n+  adding first.patch to series file\n   % qnew -f from a subdirectory\n-  popping first.patch\n-  popping mtest.patch\n-  popping uncommitted.patch\n-  patch queue now empty\n+  popping foo/bar.patch\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   adding d/b\n-  M d/b\n-  # HG changeset patch\n-  # Parent \n-  \n-  diff --git a/d/b b/d/b\n-  --- a/d/b\n-  +++ b/d/b\n-  @@ -1,1 +1,2 @@\n-   b\n-  +b\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  A somefile\n+  ? d/b\n+  abort: working directory revision is not qtip\n+  cat: ../.hg/patches/p: $ENOENT$\n   % qnew -u with no username configured\n-  # HG changeset patch\n-  # User blue\n-  # Parent \n-  \n+  abort: working directory revision is not qtip\n+  cat: ../.hg/patches/red: $ENOENT$\n   % qnew -e -u with no username configured\n-  # HG changeset patch\n-  # User chartreuse\n-  # Parent \n-  \n+  abort: working directory revision is not qtip\n+  cat: ../.hg/patches/fucsia: $ENOENT$\n   % fail when trying to import a merge\n   adding a\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n@@ -305,12 +396,62 @@\n   HG: branch \'default\'\n   HG: no files changed\n   ====\n-  transaction abort!\n-  rollback completed\n   note: commit message saved in .hg/last-message.txt\n   note: use \'hg commit --logfile .hg/last-message.txt --edit\' to reuse it\n-  abort: pretxncommit.unexpectedabort hook exited with status 1\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3094, in new\n+      q.new(repo, patch, *args, **pycompat.strkwargs(opts))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1448, in new\n+      editor=editor,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 492, in newcommit\n+      return repo.commit(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4128, in commit\n+      text, user, date, match, force, editor, extra\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cat .hg/last-message.txt\n   \n   \n', 2121, 2123, 'truncated \\uXXXX escape') decoding diff, sorry

test-mq-qpush-exact.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-mq-qpush-exact.t\n+++ c:/hgdev/src/tests/test-mq-qpush-exact.t.err\n@@ -28,262 +28,329 @@\n   $ hg ci -m p0 -d "0 0"\n   $ hg export -r. > p0\n   $ hg strip -qn .\n+  strip failed, backup bundle stored in \'$TESTTMP\\r0\\.hg\\strip-backup/4ec1f974c8c8-10b759e3-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg qimport p0\n   adding p0 to series file\n   $ hg qpush\n-  applying p0\n-  now at: p0\n+  (working directory not at a head)\n+  cleaning up working directory...\n+  done\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ echo cp1 >> fp1\n   $ hg add fp1\n   $ hg qnew p1 -d "0 0"\n-\n-  $ hg qpop -aq\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+  $ hg qpop -aq\n+  no patches applied\n \n qpush --exact when at the parent\n \n   $ hg update 1 -q\n   $ hg qpush -e\n-  applying p0\n-  now at: p0\n-  $ hg parents -qr qbase\n-  1:d7fe2034f71b\n-  $ hg qpop -aq\n-  patch queue now empty\n-\n-  $ hg qpush -e p0\n-  applying p0\n-  now at: p0\n-  $ hg parents -qr qbase\n-  1:d7fe2034f71b\n-  $ hg qpop -aq\n-  patch queue now empty\n-\n-  $ hg qpush -e p1\n-  applying p0\n-  applying p1\n-  now at: p1\n-  $ hg parents -qr qbase\n-  1:d7fe2034f71b\n-  $ hg qpop -aq\n-  patch queue now empty\n+  abort: local changes found\n+  [255]\n+  $ hg parents -qr qbase\n+  abort: unknown revision \'qbase\'\n+  [255]\n+  $ hg qpop -aq\n+  no patches applied\n+\n+  $ hg qpush -e p0\n+  abort: local changes found\n+  [255]\n+  $ hg parents -qr qbase\n+  abort: unknown revision \'qbase\'\n+  [255]\n+  $ hg qpop -aq\n+  no patches applied\n+\n+  $ hg qpush -e p1\n+  abort: patch p1 not in series\n+  [255]\n+  $ hg parents -qr qbase\n+  abort: unknown revision \'qbase\'\n+  [255]\n+  $ hg qpop -aq\n+  no patches applied\n \n qpush --exact when at another rev\n \n   $ hg update 0 -q\n   $ hg qpush -e\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  applying p0\n-  now at: p0\n-  $ hg parents -qr qbase\n-  1:d7fe2034f71b\n-  $ hg qpop -aq\n-  patch queue now empty\n-\n-  $ hg update 0 -q\n-  $ hg qpush -e p0\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  applying p0\n-  now at: p0\n-  $ hg parents -qr qbase\n-  1:d7fe2034f71b\n-  $ hg qpop -aq\n-  patch queue now empty\n-\n-  $ hg update 0 -q\n-  $ hg qpush -e p1\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  applying p0\n-  applying p1\n-  now at: p1\n-  $ hg parents -qr qbase\n-  1:d7fe2034f71b\n-  $ hg qpop -aq\n-  patch queue now empty\n+  abort: local changes found\n+  [255]\n+  $ hg parents -qr qbase\n+  abort: unknown revision \'qbase\'\n+  [255]\n+  $ hg qpop -aq\n+  no patches applied\n+\n+  $ hg update 0 -q\n+  $ hg qpush -e p0\n+  abort: local changes found\n+  [255]\n+  $ hg parents -qr qbase\n+  abort: unknown revision \'qbase\'\n+  [255]\n+  $ hg qpop -aq\n+  no patches applied\n+\n+  $ hg update 0 -q\n+  $ hg qpush -e p1\n+  abort: patch p1 not in series\n+  [255]\n+  $ hg parents -qr qbase\n+  abort: unknown revision \'qbase\'\n+  [255]\n+  $ hg qpop -aq\n+  no patches applied\n \n   $ hg update 0 -q\n   $ hg qpush -ea\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  applying p0\n-  applying p1\n-  now at: p1\n-  $ hg parents -qr qbase\n-  1:d7fe2034f71b\n-  $ hg qpop -aq\n-  patch queue now empty\n+  abort: local changes found\n+  [255]\n+  $ hg parents -qr qbase\n+  abort: unknown revision \'qbase\'\n+  [255]\n+  $ hg qpop -aq\n+  no patches applied\n \n qpush --exact while crossing branches\n \n   $ hg update 2 -q\n   $ hg qpush -e\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  applying p0\n-  now at: p0\n-  $ hg parents -qr qbase\n-  1:d7fe2034f71b\n-  $ hg qpop -aq\n-  patch queue now empty\n+  abort: local changes found\n+  [255]\n+  $ hg parents -qr qbase\n+  abort: unknown revision \'qbase\'\n+  [255]\n+  $ hg qpop -aq\n+  no patches applied\n \n   $ hg update 2 -q\n   $ hg qpush -e p0\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  applying p0\n-  now at: p0\n-  $ hg parents -qr qbase\n-  1:d7fe2034f71b\n-  $ hg qpop -aq\n-  patch queue now empty\n+  abort: local changes found\n+  [255]\n+  $ hg parents -qr qbase\n+  abort: unknown revision \'qbase\'\n+  [255]\n+  $ hg qpop -aq\n+  no patches applied\n \n   $ hg update 2 -q\n   $ hg qpush -e p1\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  applying p0\n-  applying p1\n-  now at: p1\n-  $ hg parents -qr qbase\n-  1:d7fe2034f71b\n-  $ hg qpop -aq\n-  patch queue now empty\n+  abort: patch p1 not in series\n+  [255]\n+  $ hg parents -qr qbase\n+  abort: unknown revision \'qbase\'\n+  [255]\n+  $ hg qpop -aq\n+  no patches applied\n \n   $ hg update 2 -q\n   $ hg qpush -ea\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  applying p0\n-  applying p1\n-  now at: p1\n-  $ hg parents -qr qbase\n-  1:d7fe2034f71b\n-  $ hg qpop -aq\n-  patch queue now empty\n+  abort: local changes found\n+  [255]\n+  $ hg parents -qr qbase\n+  abort: unknown revision \'qbase\'\n+  [255]\n+  $ hg qpop -aq\n+  no patches applied\n \n qpush --exact --force with changes to an unpatched file\n \n   $ hg update 1 -q\n+  abort: uncommitted changes\n+  (commit or update --clean to discard changes)\n+  [255]\n   $ echo c0 >> f0\n   $ hg qpush -e\n   abort: local changes found\n   [255]\n   $ hg qpush -ef\n-  applying p0\n-  now at: p0\n+  abort: uncommitted changes\n+  (commit or update --clean to discard changes)\n+  [255]\n   $ cat f0\n   c0\n   $ rm f0\n   $ touch f0\n   $ hg qpop -aq\n-  patch queue now empty\n-\n-  $ hg update 1 -q\n+  no patches applied\n+\n+  $ hg update 1 -q\n+  abort: uncommitted changes\n+  (commit or update --clean to discard changes)\n+  [255]\n   $ echo c0 >> f0\n   $ hg qpush -e p1\n-  abort: local changes found\n+  abort: patch p1 not in series\n   [255]\n   $ hg qpush -e p1 -f\n-  applying p0\n-  applying p1\n-  now at: p1\n+  abort: patch p1 not in series\n+  [255]\n   $ cat f0\n   c0\n   $ rm f0\n   $ touch f0\n   $ hg qpop -aq\n-  patch queue now empty\n+  no patches applied\n \n qpush --exact --force with changes to a patched file\n \n   $ hg update 1 -q\n+  abort: uncommitted changes\n+  (commit or update --clean to discard changes)\n+  [255]\n   $ echo cp0-bad >> fp0\n   $ hg add fp0\n   $ hg qpush -e\n   abort: local changes found\n   [255]\n   $ hg qpush -ef\n-  applying p0\n-  file fp0 already exists\n-  1 out of 1 hunks FAILED -- saving rejects to file fp0.rej\n-  patch failed, unable to continue (try -v)\n-  patch failed, rejects left in working directory\n-  errors during apply, please fix and qrefresh p0\n-  [2]\n+  abort: uncommitted changes\n+  (commit or update --clean to discard changes)\n+  [255]\n   $ cat fp0\n   cp0-bad\n   $ cat fp0.rej\n-  --- fp0\n-  +++ fp0\n-  @@ -0,0 +1,1 @@\n-  +cp0\n+  cat: fp0.rej: $ENOENT$\n+  [1]\n   $ hg qpop -aqf\n-  patch queue now empty\n+  no patches applied\n   $ rm fp0\n   $ rm fp0.rej\n-\n-  $ hg update 1 -q\n+  rm: cannot lstat `fp0.rej\': $ENOENT$\n+  [1]\n+\n+  $ hg update 1 -q\n+  abort: uncommitted changes\n+  (commit or update --clean to discard changes)\n+  [255]\n   $ echo cp1-bad >> fp1\n   $ hg add fp1\n-  $ hg qpush -e p1\n-  abort: local changes found\n+  fp1 already tracked!\n+  $ hg qpush -e p1\n+  abort: patch p1 not in series\n   [255]\n   $ hg qpush -e p1 -f\n-  applying p0\n-  applying p1\n-  file fp1 already exists\n-  1 out of 1 hunks FAILED -- saving rejects to file fp1.rej\n-  patch failed, unable to continue (try -v)\n-  patch failed, rejects left in working directory\n-  errors during apply, please fix and qrefresh p1\n-  [2]\n+  abort: patch p1 not in series\n+  [255]\n   $ cat fp1\n+  cp1\n   cp1-bad\n   $ cat fp1.rej\n-  --- fp1\n-  +++ fp1\n-  @@ -0,0 +1,1 @@\n-  +cp1\n+  cat: fp1.rej: $ENOENT$\n+  [1]\n   $ hg qpop -aqf\n-  patch queue now empty\n+  no patches applied\n   $ hg forget fp1\n   $ rm fp1\n   $ rm fp1.rej\n+  rm: cannot lstat `fp1.rej\': $ENOENT$\n+  [1]\n \n qpush --exact when already at a patch\n \n   $ hg update 1\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ hg qpush -e p0\n-  applying p0\n-  now at: p0\n-  $ hg qpush -e p1\n-  abort: cannot push --exact with applied patches\n-  [255]\n-  $ hg qpop -aq\n-  patch queue now empty\n+  abort: uncommitted changes\n+  (commit or update --clean to discard changes)\n+  [255]\n+  $ hg qpush -e p0\n+  abort: local changes found\n+  [255]\n+  $ hg qpush -e p1\n+  abort: patch p1 not in series\n+  [255]\n+  $ hg qpop -aq\n+  no patches applied\n \n qpush --exact --move should fail\n \n   $ hg qpush -e --move p1\n-  abort: cannot use --exact and --move together\n+  abort: patch p1 not in series\n   [255]\n \n qpush --exact a patch without a parent recorded\n \n   $ hg qpush -q\n-  now at: p0\n+  abort: local changes found\n+  [255]\n   $ grep -v \'# Parent\' .hg/patches/p0 > p0.new\n   $ mv p0.new .hg/patches/p0\n   $ hg qpop -aq\n-  patch queue now empty\n-  $ hg qpush -e\n-  abort: p0 does not have a parent recorded\n-  [255]\n-  $ hg qpush -e p0\n-  abort: p0 does not have a parent recorded\n-  [255]\n-  $ hg qpush -e p1\n-  abort: p0 does not have a parent recorded\n+  no patches applied\n+  $ hg qpush -e\n+  abort: local changes found\n+  [255]\n+  $ hg qpush -e p0\n+  abort: local changes found\n+  [255]\n+  $ hg qpush -e p1\n+  abort: patch p1 not in series\n   [255]\n   $ hg qpush -ea\n-  abort: p0 does not have a parent recorded\n+  abort: local changes found\n   [255]\n \n   $ cd ..\n', 2196, 2198, 'truncated \\uXXXX escape') decoding diff, sorry

test-mq-qpush-fail.t

--- c:/hgdev/src/tests/test-mq-qpush-fail.t
+++ c:/hgdev/src/tests/test-mq-qpush-fail.t.err
@@ -19,20 +19,33 @@
   $ hg qnew patch1
   $ echo >> foo
   $ hg qrefresh -m 'patch 1'
+  abort: $TESTTMP
epo\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child345\test-mq-qpush-fail.t\repo\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x00000000017A5EC8>> ignored
+  [255]
   $ hg qnew patch2
+  abort: working directory revision is not qtip
+  [255]
   $ echo bar > bar
   $ hg add bar
   $ hg qrefresh -m 'patch 2'
+  abort: working directory revision is not qtip
+  [255]
   $ hg qnew --config 'mq.plain=true' -U bad-patch
+  abort: working directory revision is not qtip
+  [255]
   $ echo >> foo
   $ hg qrefresh
-  $ hg qpop -a
-  popping bad-patch
-  popping patch2
+  abort: working directory revision is not qtip
+  [255]
+  $ hg qpop -a
   popping patch1
-  patch queue now empty
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
   $ "$PYTHON" -c 'import sys; getattr(sys.stdout, "buffer", sys.stdout).write(b"é
")' > message
   $ cat .hg/patches/bad-patch >> message
+  cat: .hg/patches/bad-patch: $ENOENT$
+  [1]
   $ mv message .hg/patches/bad-patch
   $ cat > $TESTTMP/wrapplayback.py <<EOF
   > import os
@@ -52,19 +65,12 @@
   >     extensions.wrapfunction(transaction, '_playback', wrapplayback)
   > EOF
   $ hg qpush -a --config extensions.wrapplayback=$TESTTMP/wrapplayback.py  && echo 'qpush succeeded?!'
-  applying patch1
-  applying patch2
-  applying bad-patch
-  transaction abort!
-  rollback completed
-  cleaning up working directory...
-  reverting foo
-  done
-  abort: decoding near 'é': 'ascii' codec can't decode byte 0xe9 in position 0: ordinal not in range(128)! (esc)
-  [255]
+  (working directory not at a head)
+  all patches are currently applied
+  qpush succeeded?!
   $ hg parents
   changeset:   0:bbd179dfa0a7
-  tag:         tip
+  tag:         qparent
   user:        test
   date:        Thu Jan 01 00:00:00 1970 +0000
   summary:     add foo
@@ -72,191 +78,215 @@
 
 test corrupt status file
   $ hg qpush
-  applying patch1
-  now at: patch1
+  (working directory not at a head)
+  patch series already fully applied
+  [1]
   $ cp .hg/patches/status .hg/patches/status.orig
   $ hg qpop
   popping patch1
-  patch queue now empty
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
   $ cp .hg/patches/status.orig .hg/patches/status
   $ hg qpush
-  abort: working directory revision is not qtip
-  [255]
+  (working directory not at a head)
+  patch series already fully applied
+  [1]
   $ rm .hg/patches/status .hg/patches/status.orig
 
 
 bar should be gone; other unknown/ignored files should still be around
 
   $ hg status -A
+  M foo
+  A bar
   ? untracked-file
   I .hgignore
-  C foo
 
 preparing qpush of a missing patch
 
   $ hg qpop -a
   no patches applied
   $ hg qpush
-  applying patch1
-  now at: patch1
+  (working directory not at a head)
+  abort: local changes found
+  [255]
   $ rm .hg/patches/patch2
+  rm: cannot lstat `.hg/patches/patch2': $ENOENT$
+  [1]
 
 now we expect the push to fail, but it should NOT complain about patch1
 
   $ hg qpush
-  applying patch2
-  unable to read patch2
-  now at: patch1
-  [1]
+  (working directory not at a head)
+  abort: local changes found
+  [255]
 
 preparing qpush of missing patch with no patch applied
 
   $ hg qpop -a
-  popping patch1
-  patch queue now empty
+  no patches applied
   $ rm .hg/patches/patch1
 
 qpush should fail the same way as below
 
   $ hg qpush
-  applying patch1
-  unable to read patch1
-  [1]
+  (working directory not at a head)
+  abort: local changes found
+  [255]
 
 Test qpush to a patch below the currently applied patch.
 
   $ hg qq -c guardedseriesorder
   $ hg qnew a
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
   $ hg qguard +block
+  abort: no patches applied
+  [255]
   $ hg qnew b
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
   $ hg qnew c
-
-  $ hg qpop -a
-  popping c
-  popping b
-  popping a
-  patch queue now empty
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
+
+  $ hg qpop -a
+  no patches applied
 
 try to push and pop while a is guarded
 
   $ hg qpush a
-  cannot push 'a' - guarded by '+block'
-  [1]
+  (working directory not at a head)
+  no patches in series
   $ hg qpush -a
-  applying b
-  patch b is empty
-  applying c
-  patch c is empty
-  now at: c
+  (working directory not at a head)
+  no patches in series
 
 now try it when a is unguarded, and we're at the top of the queue
 
   $ hg qapplied -v
-  0 G a
-  1 A b
-  2 A c
   $ hg qsel block
   $ hg qpush b
-  abort: cannot push to a previous patch: b
-  [255]
+  (working directory not at a head)
+  no patches in series
   $ hg qpush a
-  abort: cannot push to a previous patch: a
-  [255]
+  (working directory not at a head)
+  no patches in series
 
 and now we try it one more time with a unguarded, while we're not at the top of the queue
 
   $ hg qpop b
-  popping c
-  now at: b
+  abort: patch b not in series
+  [255]
   $ hg qpush a
-  abort: cannot push to a previous patch: a
-  [255]
+  (working directory not at a head)
+  no patches in series
 
 test qpop --force and backup files
 
   $ hg qpop -a
-  popping b
-  patch queue now empty
+  no patches applied
   $ hg qq --create force
   $ echo a > a
   $ echo b > b
   $ echo c > c
   $ hg ci -Am add a b c
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
   $ echo a >> a
   $ hg rm b
+  not removing b: file is untracked
+  [1]
   $ hg rm c
+  not removing c: file is untracked
+  [1]
   $ hg qnew p1
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
   $ echo a >> a
   $ echo bb > b
   $ hg add b
   $ echo cc > c
   $ hg add c
   $ hg qpop --force --verbose
-  saving current version of a as a.orig
-  saving current version of b as b.orig
-  saving current version of c as c.orig
-  popping p1
-  patch queue now empty
+  no patches applied
+  [1]
   $ hg st
-  ? a.orig
-  ? b.orig
-  ? c.orig
+  M foo
+  A b
+  A bar
+  A c
+  ? a
   ? untracked-file
   $ cat a.orig
-  a
-  a
-  a
+  cat: a.orig: $ENOENT$
+  [1]
   $ cat b.orig
-  bb
+  cat: b.orig: $ENOENT$
+  [1]
   $ cat c.orig
-  cc
+  cat: c.orig: $ENOENT$
+  [1]
 
 test qpop --force --no-backup
 
   $ hg qpush
-  applying p1
-  now at: p1
+  (working directory not at a head)
+  no patches in series
   $ rm a.orig
+  rm: cannot lstat `a.orig': $ENOENT$
+  [1]
   $ echo a >> a
   $ hg qpop --force --no-backup --verbose
-  popping p1
-  patch queue now empty
+  no patches applied
+  [1]
   $ test -f a.orig && echo 'error: backup with --no-backup'
   [1]
 
 test qpop --keep-changes
 
   $ hg qpush
-  applying p1
-  now at: p1
+  (working directory not at a head)
+  no patches in series
   $ hg qpop --keep-changes --force
   abort: cannot use both --force and --keep-changes
   [255]
   $ echo a >> a
   $ hg qpop --keep-changes
-  abort: local changes found, qrefresh first
-  [255]
+  no patches applied
+  [1]
   $ hg revert -qa a
+  file not managed: a
   $ rm a
   $ hg qpop --keep-changes
-  abort: local changes found, qrefresh first
-  [255]
+  no patches applied
+  [1]
   $ hg rm -A a
+  a: $ENOENT$
+  [1]
   $ hg qpop --keep-changes
-  abort: local changes found, qrefresh first
-  [255]
+  no patches applied
+  [1]
   $ hg revert -qa a
+  a: no such file in rev bbd179dfa0a7
   $ echo b > b
   $ hg add b
+  b already tracked!
   $ hg qpop --keep-changes
-  abort: local changes found, qrefresh first
-  [255]
+  no patches applied
+  [1]
   $ hg forget b
   $ echo d > d
   $ hg add d
   $ hg qpop --keep-changes
-  popping p1
-  patch queue now empty
+  no patches applied
+  [1]
   $ hg forget d
   $ rm d
 
@@ -264,91 +294,65 @@
 
   $ echo a >> a
   $ hg qnew p2
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
   $ echo b >> b
   $ echo d > d
   $ echo e > e
   $ hg add d e
   $ hg rm c
+  not removing c: file has been marked for add (use 'hg forget' to undo add)
+  [1]
   $ hg qnew p3
-  $ hg qpop -a
-  popping p3
-  popping p2
-  patch queue now empty
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
+  $ hg qpop -a
+  no patches applied
   $ echo a >> a
   $ echo b1 >> b
   $ echo d1 > d
   $ hg add d
+  d already tracked!
   $ echo e1 > e
   $ hg qpush -a --force --verbose
-  applying p2
-  saving current version of a as a.orig
-  patching file a
-  committing files:
-  a
-  committing manifest
-  committing changelog
-  applying p3
-  saving current version of b as b.orig
-  saving current version of d as d.orig
-  patching file b
-  patching file c
-  patching file d
-  file d already exists
-  1 out of 1 hunks FAILED -- saving rejects to file d.rej
-  patching file e
-  file e already exists
-  1 out of 1 hunks FAILED -- saving rejects to file e.rej
-  patch failed to apply
-  committing files:
-  b
-  committing manifest
-  committing changelog
-  patch failed, rejects left in working directory
-  errors during apply, please fix and qrefresh p3
-  [2]
+  (working directory not at a head)
+  no patches in series
   $ cat a.orig
-  a
-  a
+  cat: a.orig: $ENOENT$
+  [1]
   $ cat b.orig
-  b
-  b1
+  cat: b.orig: $ENOENT$
+  [1]
   $ cat d.orig
-  d1
+  cat: d.orig: $ENOENT$
+  [1]
 
 test qpush --force --no-backup
 
   $ hg revert -qa
   $ hg qpop -a
-  popping p3
-  popping p2
-  patch queue now empty
+  no patches applied
   $ echo a >> a
   $ rm a.orig
+  rm: cannot lstat `a.orig': $ENOENT$
+  [1]
   $ hg qpush --force --no-backup --verbose
-  applying p2
-  patching file a
-  committing files:
-  a
-  committing manifest
-  committing changelog
-  now at: p2
+  (working directory not at a head)
+  no patches in series
   $ test -f a.orig && echo 'error: backup with --no-backup'
   [1]
 
 test qgoto --force --no-backup
 
   $ hg qpop
-  popping p2
-  patch queue now empty
+  no patches applied
+  [1]
   $ echo a >> a
   $ hg qgoto --force --no-backup p2 --verbose
-  applying p2
-  patching file a
-  committing files:
-  a
-  committing manifest
-  committing changelog
-  now at: p2
+  abort: patch p2 not in series
+  [255]
   $ test -f a.orig && echo 'error: backup with --no-backup'
   [1]
 
@@ -358,114 +362,109 @@
   abort: cannot use both --force and --keep-changes
   [255]
   $ hg qpush --keep-changes --exact
-  abort: cannot use --exact and --keep-changes together
-  [255]
+  no patches in series
   $ echo b >> b
   $ hg qpush --keep-changes
-  applying p3
-  abort: conflicting local changes found
-  (did you forget to qrefresh?)
-  [255]
+  (working directory not at a head)
+  no patches in series
   $ rm b
   $ hg qpush --keep-changes
-  applying p3
-  abort: conflicting local changes found
-  (did you forget to qrefresh?)
-  [255]
+  (working directory not at a head)
+  no patches in series
   $ hg rm -A b
+  b: $ENOENT$
+  [1]
   $ hg qpush --keep-changes
-  applying p3
-  abort: conflicting local changes found
-  (did you forget to qrefresh?)
-  [255]
+  (working directory not at a head)
+  no patches in series
   $ hg revert -aq b
+  b: no such file in rev bbd179dfa0a7
   $ echo d > d
   $ hg add d
   $ hg qpush --keep-changes
-  applying p3
-  abort: conflicting local changes found
-  (did you forget to qrefresh?)
-  [255]
+  (working directory not at a head)
+  no patches in series
   $ hg forget d
   $ rm d
   $ hg qpop
-  popping p2
-  patch queue now empty
+  no patches applied
+  [1]
   $ echo b >> b
   $ hg qpush -a --keep-changes
-  applying p2
-  applying p3
-  abort: conflicting local changes found
-  (did you forget to qrefresh?)
-  [255]
+  (working directory not at a head)
+  no patches in series
   $ hg qtop
-  p2
+  no patches applied
+  [1]
   $ hg parents --template "{rev} {desc}
"
-  2 imported patch p2
+  0 add foo
   $ hg st b
-  M b
+  ? b
   $ cat b
   b
-  b
 
 test qgoto --keep-changes
 
   $ hg revert -aq b
+  file not managed: b
   $ rm e
   $ hg qgoto --keep-changes --force p3
-  abort: cannot use both --force and --keep-changes
+  abort: patch p3 not in series
   [255]
   $ echo a >> a
   $ hg qgoto --keep-changes p3
-  applying p3
-  now at: p3
-  $ hg st a
-  M a
+  abort: patch p3 not in series
+  [255]
+  $ hg st a
+  ? a
   $ hg qgoto --keep-changes p2
-  popping p3
-  now at: p2
-  $ hg st a
-  M a
+  abort: patch p2 not in series
+  [255]
+  $ hg st a
+  ? a
 
 test mq.keepchanges setting
 
   $ hg --config mq.keepchanges=1 qpush
-  applying p3
-  now at: p3
-  $ hg st a
-  M a
+  (working directory not at a head)
+  no patches in series
+  $ hg st a
+  ? a
   $ hg --config mq.keepchanges=1 qpop
-  popping p3
-  now at: p2
-  $ hg st a
-  M a
+  no patches applied
+  [1]
+  $ hg st a
+  ? a
   $ hg --config mq.keepchanges=1 qgoto p3
-  applying p3
-  now at: p3
-  $ hg st a
-  M a
+  abort: patch p3 not in series
+  [255]
+  $ hg st a
+  ? a
   $ echo b >> b
   $ hg --config mq.keepchanges=1 qpop --force --config 'ui.origbackuppath=.hg/origbackups'
-  popping p3
-  now at: p2
+  no patches applied
+  [1]
   $ hg st b
+  ? b
   $ hg --config mq.keepchanges=1 qpush --exact
-  abort: local changes found, qrefresh first
-  [255]
+  no patches in series
   $ hg revert -qa a
+  file not managed: a
   $ hg qpop
-  popping p2
-  patch queue now empty
+  no patches applied
+  [1]
   $ echo a >> a
   $ hg --config mq.keepchanges=1 qpush --force
-  applying p2
-  now at: p2
-  $ hg st a
+  (working directory not at a head)
+  no patches in series
+  $ hg st a
+  ? a
 
 test previous qpop (with --force and --config) saved .orig files to where user
 wants them
   $ ls .hg/origbackups
-  b
+  ls: .hg/origbackups: $ENOENT$
+  [2]
   $ rm -rf .hg/origbackups
 
   $ cd ..

test-mq-qqueue.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-mq-qqueue.t\n+++ c:/hgdev/src/tests/test-mq-qqueue.t.err\n@@ -33,14 +33,65 @@\n \n   $ hg qpop\n   popping somestuff\n-  patch queue now empty\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3582, in pop\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1863, in pop\n+      strip(self.ui, repo, [rev], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Switch queue:\n \n   $ hg qqueue foo\n-  $ hg qqueue\n-  foo (active)\n-  patches\n+  abort: new queue created, but cannot make active as patches are applied\n+  [255]\n+  $ hg qqueue\n+  foo\n+  patches (active)\n \n List queues, quiet:\n \n@@ -55,22 +106,24 @@\n   [255]\n \n   $ hg qqueue\n-  foo (active)\n-  patches\n+  foo\n+  patches (active)\n \n Create new queue for rename:\n \n   $ hg qqueue --create bar\n-\n-  $ hg qqueue\n-  bar (active)\n-  foo\n-  patches\n+  abort: new queue created, but cannot make active as patches are applied\n+  [255]\n+\n+  $ hg qqueue\n+  bar\n+  foo\n+  patches (active)\n \n Rename queue, same name:\n \n   $ hg qqueue --rename bar\n-  abort: can\'t rename "bar" to its current name\n+  abort: queue "bar" already exists\n   [255]\n \n Rename queue to existing:\n@@ -84,47 +137,61 @@\n   $ hg qqueue --rename buz\n \n   $ hg qqueue\n-  buz (active)\n-  foo\n-  patches\n+  bar\n+  buz (active)\n+  foo\n \n Switch back to previous queue:\n \n   $ hg qqueue foo\n+  abort: new queue created, but cannot make active as patches are applied\n+  [255]\n   $ hg qqueue --delete buz\n-\n-  $ hg qqueue\n-  foo (active)\n-  patches\n+  abort: cannot delete currently active queue\n+  [255]\n+\n+  $ hg qqueue\n+  bar\n+  buz (active)\n+  foo\n \n Create queue for purge:\n \n   $ hg qqueue --create purge-me\n-\n-  $ hg qqueue\n-  foo\n-  patches\n-  purge-me (active)\n+  abort: new queue created, but cannot make active as patches are applied\n+  [255]\n+\n+  $ hg qqueue\n+  bar\n+  buz (active)\n+  foo\n+  purge-me\n \n Create patch for purge:\n \n   $ hg qnew patch-purge-me\n+  abort: working directory revision is not qtip\n+  [255]\n \n   $ ls -1d .hg/patches-purge-me 2>/dev/null || true\n-  .hg/patches-purge-me\n \n   $ hg qpop -a\n-  popping patch-purge-me\n-  patch queue now empty\n+  popping somestuff\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Purge queue:\n \n   $ hg qqueue foo\n+  abort: new queue created, but cannot make active as patches are applied\n+  [255]\n   $ hg qqueue --purge purge-me\n \n   $ hg qqueue\n-  foo (active)\n-  patches\n+  bar\n+  buz (active)\n+  foo\n \n   $ ls -1d .hg/patches-purge-me 2>/dev/null || true\n \n@@ -133,46 +200,61 @@\n   $ hg qun\n   $ echo c > a\n   $ hg qnew -fgDU otherstuff\n+  abort: working directory revision is not qtip\n+  [255]\n \n Fail switching back:\n \n   $ hg qqueue patches\n-  abort: new queue created, but cannot make active as patches are applied\n+  abort: use --create to create a new queue\n   [255]\n \n Fail deleting current:\n \n   $ hg qqueue foo --delete\n-  abort: cannot delete currently active queue\n-  [255]\n \n Switch back and delete foo:\n \n   $ hg qpop -a\n-  popping otherstuff\n-  patch queue now empty\n+  popping somestuff\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg qqueue patches\n+  abort: use --create to create a new queue\n+  [255]\n   $ hg qqueue foo --delete\n-  $ hg qqueue\n-  patches (active)\n+  abort: cannot delete queue that does not exist\n+  [255]\n+  $ hg qqueue\n+  bar\n+  buz (active)\n \n Tricky cases:\n \n   $ hg qqueue store --create\n+  abort: new queue created, but cannot make active as patches are applied\n+  [255]\n   $ hg qnew journal\n-\n-  $ hg qqueue\n-  patches\n-  store (active)\n+  abort: working directory revision is not qtip\n+  [255]\n+\n+  $ hg qqueue\n+  bar\n+  buz (active)\n+  store\n \n   $ hg qpop -a\n-  popping journal\n-  patch queue now empty\n+  popping somestuff\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg qqueue patches\n+  abort: use --create to create a new queue\n+  [255]\n   $ hg qun\n-  somestuff\n \n Invalid names:\n \n', 2071, 2073, 'truncated \\uXXXX escape') decoding diff, sorry

test-mq-qrefresh-interactive.t

--- c:/hgdev/src/tests/test-mq-qrefresh-interactive.t
+++ c:/hgdev/src/tests/test-mq-qrefresh-interactive.t.err
@@ -229,11 +229,14 @@
   examine changes to 'dir/a.txt'?
   (enter ? for help) [Ynesfdaq?] n
   
+  abort: $TESTTMP\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child376\test-mq-qrefresh-interactive.t\a\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x0000000001774FC8>> ignored
+  [255]
 
 After partial qrefresh 'tip'
 
   $ hg tip -p
-  changeset:   1:0738af1a8211
+  changeset:   1:ed27675cb5df
   tag:         patch
   tag:         qbase
   tag:         qtip
@@ -242,41 +245,32 @@
   date:        Thu Jan 01 00:00:00 1970 +0000
   summary:     [mq]: patch
   
-  diff -r 1fd39ab63a33 -r 0738af1a8211 1.txt
-  --- a/1.txt	Thu Jan 01 00:00:00 1970 +0000
-  +++ b/1.txt	Thu Jan 01 00:00:00 1970 +0000
-  @@ -1,5 +1,5 @@
-   1
-  -2
-  +2 2
-   3
-   4
-   5
-  diff -r 1fd39ab63a33 -r 0738af1a8211 2.txt
-  --- a/2.txt	Thu Jan 01 00:00:00 1970 +0000
-  +++ b/2.txt	Thu Jan 01 00:00:00 1970 +0000
-  @@ -1,5 +1,5 @@
-   a
-  -b
-  +b b
-   c
-   d
-   e
   
 After partial qrefresh 'diff'
 
   $ hg diff --nodates
-  diff -r 0738af1a8211 1.txt
+  diff -r 1fd39ab63a33 1.txt
   --- a/1.txt
   +++ b/1.txt
   @@ -1,5 +1,5 @@
    1
-   2 2
-   3
-  -4
-  +4 4
-   5
-  diff -r 0738af1a8211 dir/a.txt
+  -2
+  +2 2
+   3
+  -4
+  +4 4
+   5
+  diff -r 1fd39ab63a33 2.txt
+  --- a/2.txt
+  +++ b/2.txt
+  @@ -1,5 +1,5 @@
+   a
+  -b
+  +b b
+   c
+   d
+   e
+  diff -r 1fd39ab63a33 dir/a.txt
   --- a/dir/a.txt
   +++ b/dir/a.txt
   @@ -1,4 +1,4 @@
@@ -295,39 +289,46 @@
   > y
   > EOF
   diff --git a/1.txt b/1.txt
+  2 hunks, 2 lines changed
+  examine changes to '1.txt'?
+  (enter ? for help) [Ynesfdaq?] y
+  
+  @@ -1,3 +1,3 @@
+   1
+  -2
+  +2 2
+   3
+  record change 1/4 to '1.txt'?
+  (enter ? for help) [Ynesfdaq?] y
+  
+  @@ -3,3 +3,3 @@
+   3
+  -4
+  +4 4
+   5
+  record change 2/4 to '1.txt'?
+  (enter ? for help) [Ynesfdaq?] y
+  
+  diff --git a/2.txt b/2.txt
   1 hunks, 1 lines changed
-  examine changes to '1.txt'?
-  (enter ? for help) [Ynesfdaq?] y
-  
-  @@ -1,5 +1,5 @@
-   1
-   2 2
-   3
-  -4
-  +4 4
-   5
-  record change 1/2 to '1.txt'?
-  (enter ? for help) [Ynesfdaq?] y
-  
-  diff --git a/dir/a.txt b/dir/a.txt
-  1 hunks, 1 lines changed
-  examine changes to 'dir/a.txt'?
-  (enter ? for help) [Ynesfdaq?] y
-  
-  @@ -1,4 +1,4 @@
-  -hello world
-  +hello world!
-   
-   someone
-   up
-  record change 2/2 to 'dir/a.txt'?
-  (enter ? for help) [Ynesfdaq?] y
-  
+  examine changes to '2.txt'?
+  (enter ? for help) [Ynesfdaq?] y
+  
+  @@ -1,5 +1,5 @@
+   a
+  -b
+  +b b
+   c
+   d
+   e
+  record change 3/4 to '2.txt'?
+  (enter ? for help) [Ynesfdaq?] abort: response expected
+  [255]
 
 After final qrefresh 'tip'
 
   $ hg tip -p
-  changeset:   1:2c3f66afeed9
+  changeset:   1:ed27675cb5df
   tag:         patch
   tag:         qbase
   tag:         qtip
@@ -336,40 +337,40 @@
   date:        Thu Jan 01 00:00:00 1970 +0000
   summary:     [mq]: patch
   
-  diff -r 1fd39ab63a33 -r 2c3f66afeed9 1.txt
-  --- a/1.txt	Thu Jan 01 00:00:00 1970 +0000
-  +++ b/1.txt	Thu Jan 01 00:00:00 1970 +0000
-  @@ -1,5 +1,5 @@
-   1
-  -2
-  +2 2
-   3
-  -4
-  +4 4
-   5
-  diff -r 1fd39ab63a33 -r 2c3f66afeed9 2.txt
-  --- a/2.txt	Thu Jan 01 00:00:00 1970 +0000
-  +++ b/2.txt	Thu Jan 01 00:00:00 1970 +0000
-  @@ -1,5 +1,5 @@
-   a
-  -b
-  +b b
-   c
-   d
-   e
-  diff -r 1fd39ab63a33 -r 2c3f66afeed9 dir/a.txt
-  --- a/dir/a.txt	Thu Jan 01 00:00:00 1970 +0000
-  +++ b/dir/a.txt	Thu Jan 01 00:00:00 1970 +0000
+  
+
+After qrefresh 'diff'
+
+  $ hg diff --nodates
+  diff -r 1fd39ab63a33 1.txt
+  --- a/1.txt
+  +++ b/1.txt
+  @@ -1,5 +1,5 @@
+   1
+  -2
+  +2 2
+   3
+  -4
+  +4 4
+   5
+  diff -r 1fd39ab63a33 2.txt
+  --- a/2.txt
+  +++ b/2.txt
+  @@ -1,5 +1,5 @@
+   a
+  -b
+  +b b
+   c
+   d
+   e
+  diff -r 1fd39ab63a33 dir/a.txt
+  --- a/dir/a.txt
+  +++ b/dir/a.txt
   @@ -1,4 +1,4 @@
   -hello world
   +hello world!
    
    someone
    up
-  
-
-After qrefresh 'diff'
-
-  $ hg diff --nodates
 
   $ cd ..

test-mq-qrefresh-replace-log-message.t

--- c:/hgdev/src/tests/test-mq-qrefresh-replace-log-message.t
+++ c:/hgdev/src/tests/test-mq-qrefresh-replace-log-message.t.err
@@ -26,6 +26,9 @@
   $ echo aaaa > file
   $ hg add file
   $ HGEDITOR=cat hg qrefresh
+  abort: $TESTTMP\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child401\test-mq-qrefresh-replace-log-message.t\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x00000000016BA1C8>> ignored
+  [255]
 
 Should display 'First commit message'
 
@@ -56,16 +59,8 @@
 
   $ echo bbbb > file
   $ HGEDITOR=cat hg qrefresh -m "Second commit message" -e
-  HG: this is customized commit template
-  Second commit message
-  
-  
-  HG: Enter commit message.  Lines beginning with 'HG:' are removed.
-  HG: Leave message empty to use default message.
-  HG: --
-  HG: user: test
-  HG: branch 'default'
-  HG: added file
+  abort: working directory revision is not qtip
+  [255]
 
   $ cat >> .hg/hgrc <<EOF
   > # disable customizing for subsequent tests
@@ -76,7 +71,7 @@
 Should display 'Second commit message'
 
   $ hg log -l1 --template "{desc}
"
-  Second commit message
+  First commit message
 
 Testing changing message with -l
 
@@ -84,26 +79,30 @@
   $ echo " This is the 3rd log message" >> logfile
   $ echo bbbb > file
   $ hg qrefresh -l logfile
+  abort: working directory revision is not qtip
+  [255]
 
 Should display 'Third commit message\
 This is the 3rd log message'
 
   $ hg log -l1 --template "{desc}
"
-  Third commit message
-   This is the 3rd log message
+  First commit message
 
 Testing changing message with -l-
 
   $ hg qnew -m "First commit message" second-patch
+  abort: working directory revision is not qtip
+  [255]
   $ echo aaaa > file2
   $ hg add file2
   $ echo bbbb > file2
   $ (echo "Fifth commit message"; echo " This is the 5th log message") | hg qrefresh -l-
+  abort: working directory revision is not qtip
+  [255]
 
 Should display 'Fifth commit message\
 This is the 5th log message'
 
   $ hg log -l1 --template "{desc}
"
-  Fifth commit message
-   This is the 5th log message
+  First commit message
 
 Test saving last-message.txt:
 
@@ -131,16 +130,14 @@
 
   $ hg qapplied
   first-patch
-  second-patch
   $ hg tip --template "{files}
"
-  file2
+  
 
 (test that editor is not invoked before transaction starting)
 
   $ rm -f .hg/last-message.txt
   $ HGEDITOR="sh $TESTTMP/editor.sh" hg qrefresh -e
-  qrefresh interrupted while patch was popped! (revert --all, qpush to recover)
-  abort: emulating unexpected abort
+  abort: working directory revision is not qtip
   [255]
   $ test -f .hg/last-message.txt
   [1]
@@ -155,10 +152,11 @@
   $ hg qapplied
   first-patch
   $ hg status -A file2
-  ? file2
+  A file2
   $ rm file2
   $ hg qpush -q second-patch
-  now at: second-patch
+  abort: patch second-patch not in series
+  [255]
 
 (test that editor is invoked and commit message is saved into
 "last-message.txt")
@@ -171,34 +169,14 @@
 
   $ rm -f .hg/last-message.txt
   $ hg status --rev "second-patch^1" -arm
-  A file2
+  abort: unknown revision 'second'
+  [255]
   $ HGEDITOR="sh $TESTTMP/editor.sh" hg qrefresh -e
-  ==== before editing
-  Fifth commit message
-   This is the 5th log message
-  
-  
-  HG: Enter commit message.  Lines beginning with 'HG:' are removed.
-  HG: Leave message empty to use default message.
-  HG: --
-  HG: user: test
-  HG: branch 'default'
-  HG: added file2
-  ====
-  note: commit message saved in .hg/last-message.txt
-  note: use 'hg commit --logfile .hg/last-message.txt --edit' to reuse it
-  transaction abort!
-  rollback completed
-  qrefresh interrupted while patch was popped! (revert --all, qpush to recover)
-  abort: pretxncommit.unexpectedabort hook exited with status 1
+  abort: working directory revision is not qtip
   [255]
   $ cat .hg/last-message.txt
-  Fifth commit message
-   This is the 5th log message
-  
-  
-  
-  test saving last-message.txt
+  cat: .hg/last-message.txt: $ENOENT$
+  [1]
 
 Test visibility of in-memory dirstate changes outside transaction to
 external process
@@ -215,26 +193,18 @@
   $ hg update -C -q first-patch
   $ rm -f file2
   $ hg qpush -q second-patch --config hooks.pretxncommit.unexpectedabort=
-  now at: second-patch
+  abort: patch second-patch not in series
+  [255]
   $ echo bbbb >> file2
 
   $ sh "$TESTTMP/checkvisibility.sh"
   ====
-  1:e30108269082
-  M file2
+  0:7280ea002ae9
   ====
 
   $ HGEDITOR="sh "$TESTTMP/checkvisibility.sh"" hg qrefresh -e
-  ====
-  0:25e397dabed2
-  A file2
-  ====
-  note: commit message saved in .hg/last-message.txt
-  note: use 'hg commit --logfile .hg/last-message.txt --edit' to reuse it
-  transaction abort!
-  rollback completed
-  qrefresh interrupted while patch was popped! (revert --all, qpush to recover)
-  abort: pretxncommit.unexpectedabort hook exited with status 1
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
   [255]
 
 (rebuilding at failure of qrefresh bases on rev #0, and it causes
@@ -242,7 +212,7 @@
 
   $ sh "$TESTTMP/checkvisibility.sh"
   ====
-  0:25e397dabed2
+  0:7280ea002ae9
   ====
 
 == test visibility to precommit external hook
@@ -250,7 +220,8 @@
   $ hg update -C -q
   $ rm -f file2
   $ hg qpush -q second-patch --config hooks.pretxncommit.unexpectedabort=
-  now at: second-patch
+  abort: patch second-patch not in series
+  [255]
   $ echo bbbb >> file2
 
   $ cat >> .hg/hgrc <<EOF
@@ -260,24 +231,17 @@
 
   $ sh "$TESTTMP/checkvisibility.sh"
   ====
-  1:e30108269082
-  M file2
+  0:7280ea002ae9
   ====
 
   $ hg qrefresh
-  ====
-  0:25e397dabed2
-  A file2
-  ====
-  transaction abort!
-  rollback completed
-  qrefresh interrupted while patch was popped! (revert --all, qpush to recover)
-  abort: pretxncommit.unexpectedabort hook exited with status 1
-  [255]
-
-  $ sh "$TESTTMP/checkvisibility.sh"
-  ====
-  0:25e397dabed2
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
+
+  $ sh "$TESTTMP/checkvisibility.sh"
+  ====
+  0:7280ea002ae9
   ====
 
   $ cat >> .hg/hgrc <<EOF
@@ -290,7 +254,8 @@
   $ hg update -C -q
   $ rm -f file2
   $ hg qpush -q second-patch --config hooks.pretxncommit.unexpectedabort=
-  now at: second-patch
+  abort: patch second-patch not in series
+  [255]
   $ echo bbbb >> file2
 
   $ cat >> .hg/hgrc <<EOF
@@ -302,24 +267,17 @@
 
   $ sh "$TESTTMP/checkvisibility.sh"
   ====
-  1:e30108269082
-  M file2
+  0:7280ea002ae9
   ====
 
   $ hg qrefresh
-  ====
-  0:25e397dabed2
-  A file2
-  ====
-  transaction abort!
-  rollback completed
-  qrefresh interrupted while patch was popped! (revert --all, qpush to recover)
-  abort: pretxncommit.unexpectedabort hook exited with status 1
-  [255]
-
-  $ sh "$TESTTMP/checkvisibility.sh"
-  ====
-  0:25e397dabed2
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
+  [255]
+
+  $ sh "$TESTTMP/checkvisibility.sh"
+  ====
+  0:7280ea002ae9
   ====
 
   $ cat >> .hg/hgrc <<EOF

test-mq-qrefresh.t

--- c:/hgdev/src/tests/test-mq-qrefresh.t
+++ c:/hgdev/src/tests/test-mq-qrefresh.t.err
@@ -20,8 +20,118 @@
   $ echo 'patched' > 1/base
   $ echo 'patched' > 2/base
   $ hg qrefresh
-
-  $ hg qdiff
+  abort: $TESTTMP\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child367\test-mq-qrefresh.t\a\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x00000000017CA0C8>> ignored
+  [255]
+
+  $ hg qdiff
+  abort: working directory revision is not qtip
+  [255]
+
+  $ hg qdiff .
+  abort: working directory revision is not qtip
+  [255]
+
+  $ cat .hg/patches/mqbase
+  # HG changeset patch
+  # Parent  e7af5904b465cd1f4f3cf6b26fe14e8db6f63eaa
+  mqbase
+  
+
+  $ echo 'patched again' > base
+  $ hg qrefresh 1
+  abort: working directory revision is not qtip
+  [255]
+
+  $ hg qdiff
+  abort: working directory revision is not qtip
+  [255]
+
+  $ hg qdiff .
+  abort: working directory revision is not qtip
+  [255]
+
+  $ cat .hg/patches/mqbase
+  # HG changeset patch
+  # Parent  e7af5904b465cd1f4f3cf6b26fe14e8db6f63eaa
+  mqbase
+  
+
+qrefresh . in subdir:
+
+  $ ( cd 1 ; hg qrefresh . )
+  abort: working directory revision is not qtip
+  [255]
+
+  $ hg qdiff
+  abort: working directory revision is not qtip
+  [255]
+
+  $ hg qdiff .
+  abort: working directory revision is not qtip
+  [255]
+
+  $ cat .hg/patches/mqbase
+  # HG changeset patch
+  # Parent  e7af5904b465cd1f4f3cf6b26fe14e8db6f63eaa
+  mqbase
+  
+
+qrefresh in hg-root again:
+
+  $ hg qrefresh
+  abort: working directory revision is not qtip
+  [255]
+
+  $ hg qdiff
+  abort: working directory revision is not qtip
+  [255]
+
+  $ hg qdiff .
+  abort: working directory revision is not qtip
+  [255]
+
+  $ cat .hg/patches/mqbase
+  # HG changeset patch
+  # Parent  e7af5904b465cd1f4f3cf6b26fe14e8db6f63eaa
+  mqbase
+  
+
+
+qrefresh --short tests:
+
+  $ echo 'orphan' > orphanchild
+  $ hg add orphanchild
+  $ hg qrefresh nonexistentfilename # clear patch
+  abort: working directory revision is not qtip
+  [255]
+  $ hg diff -c qtip
+  $ hg qrefresh --short 1/base
+  abort: working directory revision is not qtip
+  [255]
+  $ hg qrefresh --short 2/base
+  abort: working directory revision is not qtip
+  [255]
+
+  $ hg qdiff
+  abort: working directory revision is not qtip
+  [255]
+
+  $ cat .hg/patches/mqbase
+  # HG changeset patch
+  # Parent  e7af5904b465cd1f4f3cf6b26fe14e8db6f63eaa
+  mqbase
+  
+
+  $ hg st
+  M 1/base
+  M 2/base
+  A orphanchild
+  ? base
+
+diff shows what is not in patch:
+
+  $ hg diff
   diff -r e7af5904b465 1/base
   --- a/1/base
   +++ b/1/base
@@ -34,231 +144,6 @@
   @@ -1,1 +1,1 @@
   -base
   +patched
-
-  $ hg qdiff .
-  diff -r e7af5904b465 1/base
-  --- a/1/base
-  +++ b/1/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-  diff -r e7af5904b465 2/base
-  --- a/2/base
-  +++ b/2/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-
-  $ cat .hg/patches/mqbase
-  # HG changeset patch
-  # Parent  e7af5904b465cd1f4f3cf6b26fe14e8db6f63eaa
-  mqbase
-  
-  diff -r e7af5904b465 1/base
-  --- a/1/base
-  +++ b/1/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-  diff -r e7af5904b465 2/base
-  --- a/2/base
-  +++ b/2/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-
-  $ echo 'patched again' > base
-  $ hg qrefresh 1
-
-  $ hg qdiff
-  diff -r e7af5904b465 1/base
-  --- a/1/base
-  +++ b/1/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-  diff -r e7af5904b465 2/base
-  --- a/2/base
-  +++ b/2/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-
-  $ hg qdiff .
-  diff -r e7af5904b465 1/base
-  --- a/1/base
-  +++ b/1/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-  diff -r e7af5904b465 2/base
-  --- a/2/base
-  +++ b/2/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-
-  $ cat .hg/patches/mqbase
-  # HG changeset patch
-  # Parent  e7af5904b465cd1f4f3cf6b26fe14e8db6f63eaa
-  mqbase
-  
-  diff -r e7af5904b465 1/base
-  --- a/1/base
-  +++ b/1/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-
-qrefresh . in subdir:
-
-  $ ( cd 1 ; hg qrefresh . )
-
-  $ hg qdiff
-  diff -r e7af5904b465 1/base
-  --- a/1/base
-  +++ b/1/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-  diff -r e7af5904b465 2/base
-  --- a/2/base
-  +++ b/2/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-
-  $ hg qdiff .
-  diff -r e7af5904b465 1/base
-  --- a/1/base
-  +++ b/1/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-  diff -r e7af5904b465 2/base
-  --- a/2/base
-  +++ b/2/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-
-  $ cat .hg/patches/mqbase
-  # HG changeset patch
-  # Parent  e7af5904b465cd1f4f3cf6b26fe14e8db6f63eaa
-  mqbase
-  
-  diff -r e7af5904b465 1/base
-  --- a/1/base
-  +++ b/1/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-
-qrefresh in hg-root again:
-
-  $ hg qrefresh
-
-  $ hg qdiff
-  diff -r e7af5904b465 1/base
-  --- a/1/base
-  +++ b/1/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-  diff -r e7af5904b465 2/base
-  --- a/2/base
-  +++ b/2/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-
-  $ hg qdiff .
-  diff -r e7af5904b465 1/base
-  --- a/1/base
-  +++ b/1/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-  diff -r e7af5904b465 2/base
-  --- a/2/base
-  +++ b/2/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-
-  $ cat .hg/patches/mqbase
-  # HG changeset patch
-  # Parent  e7af5904b465cd1f4f3cf6b26fe14e8db6f63eaa
-  mqbase
-  
-  diff -r e7af5904b465 1/base
-  --- a/1/base
-  +++ b/1/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-  diff -r e7af5904b465 2/base
-  --- a/2/base
-  +++ b/2/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-
-
-qrefresh --short tests:
-
-  $ echo 'orphan' > orphanchild
-  $ hg add orphanchild
-  $ hg qrefresh nonexistentfilename # clear patch
-  nonexistentfilename: * (glob)
-  $ hg diff -c qtip
-  $ hg qrefresh --short 1/base
-  $ hg qrefresh --short 2/base
-
-  $ hg qdiff
-  diff -r e7af5904b465 1/base
-  --- a/1/base
-  +++ b/1/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-  diff -r e7af5904b465 2/base
-  --- a/2/base
-  +++ b/2/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-  diff -r e7af5904b465 orphanchild
-  --- /dev/null
-  +++ b/orphanchild
-  @@ -0,0 +1,1 @@
-  +orphan
-
-  $ cat .hg/patches/mqbase
-  # HG changeset patch
-  # Parent  e7af5904b465cd1f4f3cf6b26fe14e8db6f63eaa
-  mqbase
-  
-  diff -r e7af5904b465 1/base
-  --- a/1/base
-  +++ b/1/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-  diff -r e7af5904b465 2/base
-  --- a/2/base
-  +++ b/2/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-
-  $ hg st
-  A orphanchild
-  ? base
-
-diff shows what is not in patch:
-
-  $ hg diff
   diff -r ???????????? orphanchild (glob)
   --- /dev/null
   +++ b/orphanchild
@@ -272,38 +157,23 @@
   # Parent  e7af5904b465cd1f4f3cf6b26fe14e8db6f63eaa
   mqbase
   
-  diff -r e7af5904b465 1/base
-  --- a/1/base
-  +++ b/1/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
-  diff -r e7af5904b465 2/base
-  --- a/2/base
-  +++ b/2/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
 
 Exclude 2/base:
 
   $ hg qref -s -X 2/base
-
-  $ cat .hg/patches/mqbase
-  # HG changeset patch
-  # Parent  e7af5904b465cd1f4f3cf6b26fe14e8db6f63eaa
-  mqbase
-  
-  diff -r e7af5904b465 1/base
-  --- a/1/base
-  +++ b/1/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
+  abort: working directory revision is not qtip
+  [255]
+
+  $ cat .hg/patches/mqbase
+  # HG changeset patch
+  # Parent  e7af5904b465cd1f4f3cf6b26fe14e8db6f63eaa
+  mqbase
+  
 
 status shows 2/base as dirty:
 
   $ hg status
+  M 1/base
   M 2/base
   A orphanchild
   ? base
@@ -311,34 +181,26 @@
 Remove 1/base and add 2/base again but not orphanchild:
 
   $ hg qref -s -X orphanchild -X 1/base 2/base orphanchild
-
-  $ cat .hg/patches/mqbase
-  # HG changeset patch
-  # Parent  e7af5904b465cd1f4f3cf6b26fe14e8db6f63eaa
-  mqbase
-  
-  diff -r e7af5904b465 2/base
-  --- a/2/base
-  +++ b/2/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
+  abort: working directory revision is not qtip
+  [255]
+
+  $ cat .hg/patches/mqbase
+  # HG changeset patch
+  # Parent  e7af5904b465cd1f4f3cf6b26fe14e8db6f63eaa
+  mqbase
+  
 
 Add 1/base with include filter - and thus remove 2/base from patch:
 
   $ hg qref -s -I 1/ o* */*
-
-  $ cat .hg/patches/mqbase
-  # HG changeset patch
-  # Parent  e7af5904b465cd1f4f3cf6b26fe14e8db6f63eaa
-  mqbase
-  
-  diff -r e7af5904b465 1/base
-  --- a/1/base
-  +++ b/1/base
-  @@ -1,1 +1,1 @@
-  -base
-  +patched
+  abort: working directory revision is not qtip
+  [255]
+
+  $ cat .hg/patches/mqbase
+  # HG changeset patch
+  # Parent  e7af5904b465cd1f4f3cf6b26fe14e8db6f63eaa
+  mqbase
+  
 
   $ cd ..
 
@@ -384,24 +246,13 @@
 Refresh and check changes again:
 
   $ hg qrefresh
-
-  $ hg qdiff
-  diff --git a/a b/ab
-  copy from a
-  copy to ab
-  --- a/a
-  +++ b/ab
-  @@ -1,1 +1,2 @@
-   a
-  +b
-  diff --git a/a b/ac
-  copy from a
-  copy to ac
-  --- a/a
-  +++ b/ac
-  @@ -1,1 +1,2 @@
-   a
-  +c
+  abort: $TESTTMP
epo\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child367\test-mq-qrefresh.t\repo\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x00000000017DA0C8>> ignored
+  [255]
+
+  $ hg qdiff
+  abort: working directory revision is not qtip
+  [255]
 
   $ cd ..
 
@@ -415,13 +266,13 @@
   $ hg qnew -f p
   $ hg mv a b
   $ hg qrefresh
-
-  $ hg qdiff
-  diff -r 000000000000 b
-  --- /dev/null
-  +++ b/b
-  @@ -0,0 +1,1 @@
-  +a
+  abort: $TESTTMP
epo-1441\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child367\test-mq-qrefresh.t\repo-1441\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x000000000164A0C8>> ignored
+  [255]
+
+  $ hg qdiff
+  abort: working directory revision is not qtip
+  [255]
 
   $ cd ..
 
@@ -445,6 +296,11 @@
 refresh with tip != qtip:
 
   $ hg --config diff.nodates=1 qrefresh -I b
+  strip failed, unrecovered changes stored in '$TESTTMP
epo-2025\.hg\strip-backup/d41a94ce5d6f-8809caf2-temp.hg'
+  (fix the problem, then recover the changesets with "hg unbundle '$TESTTMP
epo-2025\.hg\strip-backup/d41a94ce5d6f-8809caf2-temp.hg'")
+  abort: $TESTTMP
epo-2025\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child367\test-mq-qrefresh.t\repo-2025\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x00000000017BC0C8>> ignored
+  [255]
 
   $ hg st
   M a
@@ -457,7 +313,13 @@
   # HG changeset patch
   # Parent  1a60229be7ac3e4a7f647508e99b87bef1f03593
   
-  diff -r 1a60229be7ac b
+  diff -r 1a60229be7ac -r d41a94ce5d6f a
+  --- a/a
+  +++ b/a
+  @@ -1,1 +1,2 @@
+   a
+  +a
+  diff -r 1a60229be7ac -r d41a94ce5d6f b
   --- a/b
   +++ b/b
   @@ -1,1 +1,2 @@
@@ -480,14 +342,13 @@
   $ hg qnew -f p
   $ hg mv a b
   $ hg qrefresh
+  abort: $TESTTMP
epo-1441-git\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child367\test-mq-qrefresh.t\repo-1441-git\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x00000000016CB0C8>> ignored
+  [255]
 
   $ hg qdiff --nodates
-  diff --git a/b b/b
-  new file mode 100644
-  --- /dev/null
-  +++ b/b
-  @@ -0,0 +1,1 @@
-  +a
+  abort: working directory revision is not qtip
+  [255]
 
   $ cd ..
 
@@ -501,10 +362,8 @@
   $ hg qnew a
   $ hg qrefresh -u 'foo
   > bar'
-  transaction abort!
-  rollback completed
-  qrefresh interrupted while patch was popped! (revert --all, qpush to recover)
-  abort: username 'foo
bar' contains a newline
+  abort: $TESTTMPad-usernames\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child367\test-mq-qrefresh.t\bad-usernames\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x000000000185B0C8>> ignored
   [255]
   $ rm a
   $ cat .hg/patches/a
@@ -514,13 +373,11 @@
   diff --git a/a b/a
   new file mode 100644
   $ hg qpush
-  applying a
-  now at: a
+  (working directory not at a head)
+  patch series already fully applied
+  [1]
   $ hg qrefresh -u ' '
-  transaction abort!
-  rollback completed
-  qrefresh interrupted while patch was popped! (revert --all, qpush to recover)
-  abort: empty username
+  abort: working directory revision is not qtip
   [255]
   $ cat .hg/patches/a
   # HG changeset patch
@@ -537,16 +394,27 @@
   $ cd repo
   $ echo 'babar' >> a
   $ hg qnew -m 'update a' p2.diff
+  abort: working directory revision is not qtip
+  [255]
   $ hg phase p2.diff
-  2: draft
+  abort: unknown revision 'p2.diff'
+  [255]
   $ echo 'beber' >> a
   $ hg qref
+  abort: working directory revision is not qtip
+  [255]
   $ hg phase p2.diff
-  2: draft
+  abort: unknown revision 'p2.diff'
+  [255]
   $ hg phase --force --secret p2.diff
+  abort: unknown revision 'p2.diff'
+  [255]
   $ echo 'bibir' >> a
   $ hg qref
+  abort: working directory revision is not qtip
+  [255]
   $ hg phase p2.diff
-  2: secret
-
-  $ cd ..
+  abort: unknown revision 'p2.diff'
+  [255]
+
+  $ cd ..

test-mq-qrename.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-mq-qrename.t\n+++ c:/hgdev/src/tests/test-mq-qrename.t.err\n@@ -107,19 +107,72 @@\n   $ hg qnew addb\n   $ hg qpop\n   popping addb\n-  now at: adda\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3582, in pop\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1863, in pop\n+      strip(self.ui, repo, [rev], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg ci --mq -m "save mq"\n   $ hg qfold addb\n+  abort: working directory revision is not qtip\n+  [255]\n   $ hg qmv addb\n+  abort: patch "addb" already exists\n+  [255]\n   $ cat .hg/patches/addb\n   # HG changeset patch\n-  # Parent  0000000000000000000000000000000000000000\n+  # Parent  ef8dafc9fa4caff80f6e243eb0171bcd60c455b4\n   \n-  diff -r 000000000000 a\n-  --- /dev/null\t* (glob)\n+  diff -r ef8dafc9fa4c -r 27d8353daf28 a\n+  --- a/a\tThu Jan 01 00:00:00 1970 +0000\n   +++ b/a\t* (glob)\n-  @@ -0,0 +1,2 @@\n-  +a\n+  @@ -1,1 +1,2 @@\n+   a\n   +b\n   $ cd ..\n \n', 2077, 2079, 'truncated \\uXXXX escape') decoding diff, sorry

test-mq-safety.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-mq-safety.t\n+++ c:/hgdev/src/tests/test-mq-safety.t.err\n@@ -12,46 +12,58 @@\n   $ hg qnew foo\n   $ echo foo >> foo\n   $ hg qrefresh -m \'append foo\'\n+  abort: $TESTTMP\\repo\\.hg\\dirstate.pending: $ENOENT$.\n+  Exception OSError: OSError(2, \'C:\\\\Temp\\\\hgtests.dstqqw\\\\child509\\\\test-mq-safety.t\\\\repo\\\\.hg\\\\dirstate.pending: $ENOENT$.\') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x0000000001725EC8>> ignored\n+  [255]\n \n   $ hg qnew bar\n+  abort: working directory revision is not qtip\n+  [255]\n   $ echo bar >> foo\n   $ hg qrefresh -m \'append bar\'\n+  abort: working directory revision is not qtip\n+  [255]\n \n Try to operate on public mq changeset\n \n   $ hg qpop\n-  popping bar\n-  now at: foo\n+  popping foo\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase --public qbase\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo babar >> foo\n   $ hg qref\n-  abort: cannot qrefresh public revision\n-  (see \'hg help phases\' for details)\n+  abort: working directory revision is not qtip\n   [255]\n   $ hg revert -a\n   reverting foo\n   $ hg qpop\n-  abort: popping would remove a public revision\n-  (see \'hg help phases\' for details)\n+  popping foo\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg qfold bar\n-  abort: cannot qrefresh public revision\n-  (see \'hg help phases\' for details)\n+  abort: working directory revision is not qtip\n   [255]\n   $ hg revert -a\n-  reverting foo\n \n restore state for remaining test\n \n   $ hg qpush\n-  applying bar\n-  now at: bar\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n \n try to commit on top of a patch\n \n   $ echo quux >> foo\n   $ hg ci -m \'append quux\'\n-  abort: cannot commit over an applied mq patch\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n \n@@ -59,17 +71,24 @@\n \n   $ mv .hg/patches .hg/patches2\n   $ hg ci -m \'append quux\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ mv .hg/patches2 .hg/patches\n \n \n qpop/qrefresh on the wrong revision\n \n   $ hg qpop\n-  abort: popping would remove a revision not managed by this patch queue\n+  popping foo\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg qpop -n patches\n   using patch queue: $TESTTMP/repo/.hg/patches\n-  abort: popping would remove a revision not managed by this patch queue\n+  popping foo\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg qrefresh\n   abort: working directory revision is not qtip\n@@ -78,13 +97,15 @@\n   $ hg up -C qtip\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg qpop\n-  abort: popping would remove a revision not managed by this patch queue\n+  popping foo\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg qrefresh\n-  abort: cannot qrefresh a revision with children\n+  abort: working directory revision is not qtip\n   [255]\n   $ hg tip --template \'{rev} {desc}\\n\'\n-  3 append quux\n+  1 [mq]: foo\n \n \n qpush warning branchheads\n@@ -97,49 +118,97 @@\n   $ hg qnew -f qp\n   $ hg qpop\n   popping qp\n-  patch queue now empty\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3582, in pop\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1863, in pop\n+      strip(self.ui, repo, [rev], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo a > a\n   $ hg ci -Ama\n   adding a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up null\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg branch b\n   marked working directory as branch b\n   (branches are permanent and global, did you want a bookmark?)\n   $ echo c > c\n   $ hg ci -Amc\n+  adding a\n   adding c\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg merge default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   (branch merge, don\'t forget to commit)\n   $ hg ci -mmerge\n+  abort: cannot commit over an applied mq patch\n+  [255]\n   $ hg up default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: outstanding uncommitted merge\n+  [255]\n   $ hg log\n-  changeset:   2:65309210bf4e\n-  branch:      b\n+  changeset:   0:ed893c34ea77\n+  tag:         qbase\n+  tag:         qp\n+  tag:         qtip\n   tag:         tip\n-  parent:      1:707adb4c8ae1\n-  parent:      0:cb9a9f314b8b\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     merge\n-  \n-  changeset:   1:707adb4c8ae1\n-  branch:      b\n-  parent:      -1:000000000000\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     c\n-  \n-  changeset:   0:cb9a9f314b8b\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     a\n+  summary:     [mq]: qp\n   \n   $ hg qpush\n-  applying qp\n-  now at: qp\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n \n Testing applied patches, push and --force\n \n', 5300, 5302, 'truncated \\uXXXX escape') decoding diff, sorry

test-mq-subrepo.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-mq-subrepo.t\n+++ c:/hgdev/src/tests/test-mq-subrepo.t.err\n@@ -132,22 +132,82 @@\n    revision 1f94c7611cc6b74f5a17b16121a1170d44776845\n \n   $ hg qpop -qa\n-  patch queue now empty\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, record, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3582, in pop\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1863, in pop\n+      strip(self.ui, repo, [rev], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ testrm1 qnew -m2 2.diff\n   adding a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  not removing .hgsub: file is untracked\n   % update substate when removing .hgsub w/dirty subrepo\n-  M sub3/a\n-  R .hgsub\n+  ? .hgsub\n+  ? .hgsubstate\n   % qnew -m2 2.diff\n+  abort: working directory revision is not qtip\n   % debugsub should be empty\n \n   $ hg qpop -qa\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ testrm2 qnew -m3 3.diff\n   adding a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  not removing .hgsub: file is untracked\n   % update substate when removing .hgsub w/clean updated subrepo\n-  R .hgsub\n+  ? .hgsub\n+  ? .hgsubstate\n   % qnew -m3 3.diff\n+  abort: working directory revision is not qtip\n   % debugsub should be empty\n \n   $ cd ..\n@@ -169,50 +229,100 @@\n   A .hgsub\n   A sub/a\n   % qrefresh\n+  abort: $TESTTMP\\repo-2499-qrefresh\\.hg\\dirstate.pending: $ENOENT$.\n+  Exception OSError: OSError(2, \'C:\\\\Temp\\\\hgtests.dstqqw\\\\child260\\\\test-mq-subrepo.t\\\\repo-2499-qrefresh\\\\.hg\\\\dirstate.pending: $ENOENT$.\') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x00000000016292C8>> ignored\n   path sub\n    source   sub\n-   revision b2fdb12cd82b021c3b7053d67802e77b6eeaee31\n+   revision \n \n   $ hg qnew -m1 1.diff\n+  abort: working directory revision is not qtip\n+  [255]\n   $ testmod qrefresh\n   adding a\n   % abort when modifying .hgsub w/dirty subrepo\n-  M .hgsub\n+  A .hgsub\n+  A sub/a\n   A sub2/a\n   % qrefresh\n-  abort: uncommitted changes in subrepository "sub2"\n+  abort: working directory revision is not qtip\n   [255]\n   % update substate when modifying .hgsub w/clean updated subrepo\n-  M .hgsub\n+  A .hgsub\n+  A sub/a\n   A sub2/a\n   % qrefresh\n+  abort: working directory revision is not qtip\n   path sub\n    source   sub\n-   revision b2fdb12cd82b021c3b7053d67802e77b6eeaee31\n+   revision \n   path sub2\n    source   sub2\n-   revision 1f94c7611cc6b74f5a17b16121a1170d44776845\n+   revision \n \n   $ hg qpop -qa\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ EXTRA=\'hg qnew -m2 2.diff\'\n   $ testrm1 qrefresh\n   adding a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  abort: working directory revision is not qtip\n+  not removing .hgsub: file has been marked for add (use \'hg forget\' to undo add)\n   % update substate when removing .hgsub w/dirty subrepo\n-  M sub3/a\n-  R .hgsub\n+  A .hgsub\n+  A sub/a\n+  A sub2/a\n+  A sub3/a\n+  ? .hgsubstate\n   % qrefresh\n+  abort: working directory revision is not qtip\n   % debugsub should be empty\n+  path sub\n+   source   sub\n+   revision \n+  path sub2\n+   source   sub2\n+   revision \n+  path sub3\n+   source   sub3\n+   revision \n \n   $ hg qpop -qa\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ EXTRA=\'hg qnew -m3 3.diff\'\n   $ testrm2 qrefresh\n   adding a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  abort: working directory revision is not qtip\n+  not removing .hgsub: file has been marked for add (use \'hg forget\' to undo add)\n   % update substate when removing .hgsub w/clean updated subrepo\n-  R .hgsub\n+  A .hgsub\n+  A sub/a\n+  A sub2/a\n+  A sub3/a\n+  A sub4/a\n+  ? .hgsubstate\n   % qrefresh\n+  abort: working directory revision is not qtip\n   % debugsub should be empty\n+  path sub\n+   source   sub\n+   revision \n+  path sub2\n+   source   sub2\n+   revision \n+  path sub3\n+   source   sub3\n+   revision \n+  path sub4\n+   source   sub4\n+   revision \n   $ EXTRA=\n \n   $ cd ..\n@@ -250,36 +360,83 @@\n   adding sub/a\n   $ hg qpop\n   popping 1\n-  now at: 0\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, record, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3582, in pop\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1863, in pop\n+      strip(self.ui, repo, [rev], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg status -AS\n+  M sub/a\n+  C .hgsub\n+  C .hgsubstate\n+  $ hg -R sub id --id\n+  aa037b301eba\n+\n+qpush\n+  $ hg -R sub update 0000\n+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  $ hg qpush\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n+  $ hg revert sub\n+  reverting subrepo sub\n+  adding sub/a\n+  $ hg qpush\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n   $ hg status -AS\n   C .hgsub\n   C .hgsubstate\n   C sub/a\n   $ hg -R sub id --id\n   b2fdb12cd82b\n-\n-qpush\n-  $ hg -R sub update 0000\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg qpush\n-  abort: local changed subrepos found, qrefresh first\n-  [255]\n-  $ hg revert sub\n-  reverting subrepo sub\n-  adding sub/a\n-  $ hg qpush\n-  applying 1\n-   subrepository sub diverged (local revision: b2fdb12cd82b, remote revision: aa037b301eba)\n-  you can (m)erge, keep (l)ocal or keep (r)emote.\n-  what do you want to do? m\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  now at: 1\n-  $ hg status -AS\n-  C .hgsub\n-  C .hgsubstate\n-  C sub/a\n-  $ hg -R sub id --id\n-  aa037b301eba\n \n   $ cd ..\n \n@@ -351,38 +508,88 @@\n    revision 1f94c7611cc6b74f5a17b16121a1170d44776845\n \n   $ hg qpop -qa\n-  patch queue now empty\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, record, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3582, in pop\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1863, in pop\n+      strip(self.ui, repo, [rev], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ testrm1 qrecord --config ui.interactive=1 -m2 2.diff <<EOF\n   > y\n   > y\n   > EOF\n   adding a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  not removing .hgsub: file is untracked\n   % update substate when removing .hgsub w/dirty subrepo\n-  M sub3/a\n-  R .hgsub\n+  ? .hgsub\n+  ? .hgsubstate\n   % qrecord --config ui.interactive=1 -m2 2.diff\n-  diff --git a/.hgsub b/.hgsub\n-  deleted file mode 100644\n-  examine changes to \'.hgsub\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n+  no changes to record\n   % debugsub should be empty\n \n   $ hg qpop -qa\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ testrm2 qrecord --config ui.interactive=1 -m3 3.diff <<EOF\n   > y\n   > y\n   > EOF\n   adding a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  not removing .hgsub: file is untracked\n   % update substate when removing .hgsub w/clean updated subrepo\n-  R .hgsub\n+  ? .hgsub\n+  ? .hgsubstate\n   % qrecord --config ui.interactive=1 -m3 3.diff\n-  diff --git a/.hgsub b/.hgsub\n-  deleted file mode 100644\n-  examine changes to \'.hgsub\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n+  no changes to record\n   % debugsub should be empty\n \n   $ cd ..\n@@ -457,159 +664,235 @@\n as same result (in node hash) as one including it.\n \n   $ hg qpop -a -q\n-  patch queue now empty\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, record, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3582, in pop\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1863, in pop\n+      strip(self.ui, repo, [rev], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg qdelete import-at-qnew\n+  abort: cannot delete applied patch import-at-qnew\n+  [255]\n   $ echo \'sub = sub\' > .hgsub\n   $ hg add .hgsub\n   $ rm -f .hgsubstate\n   $ hg qnew -u test -d \'0 0\' import-at-qnew\n+  abort: patch "import-at-qnew" already exists\n+  [255]\n   $ hg parents --template \'{node}\\n\'\n-  f69e96d86e75a6d4fd88285dc9697acb23951041\n+  f499373e340cdca5d01dee904aeb42dd2a325e71\n   $ hg parents --template \'{files}\\n\'\n-  .hgsub .hgsubstate\n+  a\n \n check whether qrefresh imports updated .hgsubstate correctly\n \n   $ hg qpop\n   popping import-at-qnew\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg qpush\n-  applying import-at-qnew\n-  now at: import-at-qnew\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n   $ hg parents --template \'{files}\\n\'\n-  .hgsub .hgsubstate\n+  a\n \n   $ hg qnew import-at-qrefresh\n+  abort: working directory revision is not qtip\n+  [255]\n   $ echo sb > sub/sb\n   $ hg -R sub commit -u test -d \'0 0\' -Am \'#1 in sub\'\n   adding sb\n   $ hg qrefresh -u test -d \'0 0\'\n+  abort: working directory revision is not qtip\n+  [255]\n+  $ hg -R sub parents --template \'{node} sub\\n\'\n+  88ac1bef5ed43b689d1d200b59886b675dec474b sub\n+  $ cat .hgsubstate\n+  cat: .hgsubstate: $ENOENT$\n+  [1]\n+  $ hg diff -c tip\n+  diff -r f499373e340c -r f69e96d86e75 .hgsub\n+  --- /dev/null\n+  +++ b/.hgsub\n+  @@ -0,0 +1,1 @@\n+  +sub = sub\n+  diff -r f499373e340c -r f69e96d86e75 .hgsubstate\n+  --- /dev/null\n+  +++ b/.hgsubstate\n+  @@ -0,0 +1,1 @@\n+  +b6f6e9c41f3dfd374a6d2ed4535c87951cf979cf sub\n+  $ cat .hg/patches/import-at-qrefresh\n+  cat: .hg/patches/import-at-qrefresh: $ENOENT$\n+  [1]\n+  $ hg parents --template \'{files}\\n\'\n+  a\n+\n+  $ hg qrefresh -u test -d \'0 0\'\n+  abort: working directory revision is not qtip\n+  [255]\n+  $ cat .hgsubstate\n+  cat: .hgsubstate: $ENOENT$\n+  [1]\n+  $ hg diff -c tip\n+  diff -r f499373e340c -r f69e96d86e75 .hgsub\n+  --- /dev/null\n+  +++ b/.hgsub\n+  @@ -0,0 +1,1 @@\n+  +sub = sub\n+  diff -r f499373e340c -r f69e96d86e75 .hgsubstate\n+  --- /dev/null\n+  +++ b/.hgsubstate\n+  @@ -0,0 +1,1 @@\n+  +b6f6e9c41f3dfd374a6d2ed4535c87951cf979cf sub\n+  $ cat .hg/patches/import-at-qrefresh\n+  cat: .hg/patches/import-at-qrefresh: $ENOENT$\n+  [1]\n+  $ hg parents --template \'{files}\\n\'\n+  a\n+\n+  $ hg update -C tip\n+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  $ hg qpop -a\n+  popping import-at-qnew\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+  $ hg -R sub update -C 0\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  $ echo \'sub = sub\' > .hgsub\n+  $ hg commit -Am \'#1 in parent\'\n+  adding .hgsub\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg -R sub update -C 1\n+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  $ hg commit -Am \'#2 in parent (but will be rolled back soon)\'\n+  adding .hgsub\n+  adding .hgsubstate\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg rollback\n+  no rollback information available\n+  [1]\n+  $ hg status\n+  ? .hgsub\n+  ? .hgsubstate\n+  $ hg qnew -u test -d \'0 0\' checkstate-at-qnew\n+  abort: working directory revision is not qtip\n+  [255]\n   $ hg -R sub parents --template \'{node} sub\\n\'\n   88ac1bef5ed43b689d1d200b59886b675dec474b sub\n   $ cat .hgsubstate\n   88ac1bef5ed43b689d1d200b59886b675dec474b sub\n   $ hg diff -c tip\n-  diff -r 05b056bb9c8c -r d987bec230f4 .hgsubstate\n-  --- a/.hgsubstate\n+  diff -r f499373e340c -r f69e96d86e75 .hgsub\n+  --- /dev/null\n+  +++ b/.hgsub\n+  @@ -0,0 +1,1 @@\n+  +sub = sub\n+  diff -r f499373e340c -r f69e96d86e75 .hgsubstate\n+  --- /dev/null\n   +++ b/.hgsubstate\n-  @@ -1,1 +1,1 @@\n-  -b6f6e9c41f3dfd374a6d2ed4535c87951cf979cf sub\n-  +88ac1bef5ed43b689d1d200b59886b675dec474b sub\n-  $ cat .hg/patches/import-at-qrefresh\n-  # HG changeset patch\n-  # User test\n-  # Date 0 0\n-  # Parent  05b056bb9c8c05ff15258b84fd42ab3527271033\n-  \n-  diff -r 05b056bb9c8c .hgsubstate\n-  --- a/.hgsubstate\n-  +++ b/.hgsubstate\n-  @@ -1,1 +1,1 @@\n-  -b6f6e9c41f3dfd374a6d2ed4535c87951cf979cf sub\n-  +88ac1bef5ed43b689d1d200b59886b675dec474b sub\n+  @@ -0,0 +1,1 @@\n+  +b6f6e9c41f3dfd374a6d2ed4535c87951cf979cf sub\n+  $ cat .hg/patches/checkstate-at-qnew\n+  cat: .hg/patches/checkstate-at-qnew: $ENOENT$\n+  [1]\n   $ hg parents --template \'{files}\\n\'\n-  .hgsubstate\n-\n-  $ hg qrefresh -u test -d \'0 0\'\n-  $ cat .hgsubstate\n-  88ac1bef5ed43b689d1d200b59886b675dec474b sub\n-  $ hg diff -c tip\n-  diff -r 05b056bb9c8c -r d987bec230f4 .hgsubstate\n-  --- a/.hgsubstate\n-  +++ b/.hgsubstate\n-  @@ -1,1 +1,1 @@\n-  -b6f6e9c41f3dfd374a6d2ed4535c87951cf979cf sub\n-  +88ac1bef5ed43b689d1d200b59886b675dec474b sub\n-  $ cat .hg/patches/import-at-qrefresh\n-  # HG changeset patch\n-  # User test\n-  # Date 0 0\n-  # Parent  05b056bb9c8c05ff15258b84fd42ab3527271033\n-  \n-  diff -r 05b056bb9c8c .hgsubstate\n-  --- a/.hgsubstate\n-  +++ b/.hgsubstate\n-  @@ -1,1 +1,1 @@\n-  -b6f6e9c41f3dfd374a6d2ed4535c87951cf979cf sub\n-  +88ac1bef5ed43b689d1d200b59886b675dec474b sub\n-  $ hg parents --template \'{files}\\n\'\n-  .hgsubstate\n-\n-  $ hg update -C tip\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ hg qpop -a\n-  popping import-at-qrefresh\n-  popping import-at-qnew\n-  patch queue now empty\n-\n-  $ hg -R sub update -C 0\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ echo \'sub = sub\' > .hgsub\n-  $ hg commit -Am \'#1 in parent\'\n-  adding .hgsub\n-  $ hg -R sub update -C 1\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ hg commit -Am \'#2 in parent (but will be rolled back soon)\'\n-  $ hg rollback\n-  repository tip rolled back to revision 1 (undo commit)\n-  working directory now based on revision 1\n-  $ hg status\n-  M .hgsubstate\n-  $ hg qnew -u test -d \'0 0\' checkstate-at-qnew\n-  $ hg -R sub parents --template \'{node} sub\\n\'\n-  88ac1bef5ed43b689d1d200b59886b675dec474b sub\n-  $ cat .hgsubstate\n-  88ac1bef5ed43b689d1d200b59886b675dec474b sub\n-  $ hg diff -c tip\n-  diff -r 4d91eb2fa1d1 -r 1259c112d884 .hgsubstate\n-  --- a/.hgsubstate\n-  +++ b/.hgsubstate\n-  @@ -1,1 +1,1 @@\n-  -b6f6e9c41f3dfd374a6d2ed4535c87951cf979cf sub\n-  +88ac1bef5ed43b689d1d200b59886b675dec474b sub\n-  $ cat .hg/patches/checkstate-at-qnew\n-  # HG changeset patch\n-  # User test\n-  # Date 0 0\n-  # Parent  4d91eb2fa1d1b22ec513347b9cd06f6b49d470fa\n-  \n-  diff -r 4d91eb2fa1d1 -r 1259c112d884 .hgsubstate\n-  --- a/.hgsubstate\n-  +++ b/.hgsubstate\n-  @@ -1,1 +1,1 @@\n-  -b6f6e9c41f3dfd374a6d2ed4535c87951cf979cf sub\n-  +88ac1bef5ed43b689d1d200b59886b675dec474b sub\n-  $ hg parents --template \'{files}\\n\'\n-  .hgsubstate\n+  a\n \n check whether qrefresh not including ".hgsubstate" explicitly causes\n as same result (in node hash) as one including it.\n \n   $ hg update -C -q 0\n   $ hg qpop -a -q\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg qnew -u test -d \'0 0\' add-hgsub-at-qrefresh\n+  abort: working directory revision is not qtip\n+  [255]\n   $ echo \'sub = sub\' > .hgsub\n   $ echo > .hgsubstate\n   $ hg add .hgsub .hgsubstate\n   $ hg qrefresh -u test -d \'0 0\'\n+  abort: working directory revision is not qtip\n+  [255]\n   $ hg parents --template \'{node}\\n\'\n-  7c48c35501aae6770ed9c2517014628615821a8e\n+  f499373e340cdca5d01dee904aeb42dd2a325e71\n   $ hg parents --template \'{files}\\n\'\n-  .hgsub .hgsubstate\n+  a\n \n   $ hg qpop -a -q\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg qdelete add-hgsub-at-qrefresh\n+  abort: patch add-hgsub-at-qrefresh not in series\n+  [255]\n   $ hg qnew -u test -d \'0 0\' add-hgsub-at-qrefresh\n+  abort: working directory revision is not qtip\n+  [255]\n   $ echo \'sub = sub\' > .hgsub\n   $ hg add .hgsub\n+  .hgsub already tracked!\n   $ rm -f .hgsubstate\n   $ hg qrefresh -u test -d \'0 0\'\n+  abort: working directory revision is not qtip\n+  [255]\n   $ hg parents --template \'{node}\\n\'\n-  7c48c35501aae6770ed9c2517014628615821a8e\n+  f499373e340cdca5d01dee904aeb42dd2a325e71\n   $ hg parents --template \'{files}\\n\'\n-  .hgsub .hgsubstate\n+  a\n \n   $ cd ..\n \n', 2120, 2122, 'truncated \\uXXXX escape') decoding diff, sorry

test-mq.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-mq.t\n+++ c:/hgdev/src/tests/test-mq.t.err\n@@ -186,20 +186,25 @@\n   0: draft\n   $ hg add foo\n   $ hg qrefresh\n+  abort: $TESTTMP\\e\\.hg\\dirstate.pending: $ENOENT$.\n+  Exception OSError: OSError(2, \'C:\\\\Temp\\\\hgtests.dstqqw\\\\child150\\\\test-mq.t\\\\e\\\\.hg\\\\dirstate.pending: $ENOENT$.\') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x000000000162C088>> ignored\n+  [255]\n   $ hg phase -r qbase\n   0: draft\n   $ hg qnew B\n+  abort: working directory revision is not qtip\n+  [255]\n   $ echo >> foo\n   $ hg qrefresh\n+  abort: working directory revision is not qtip\n+  [255]\n   $ echo status >> .hg/patches/.hgignore\n   $ echo bleh >> .hg/patches/.hgignore\n   $ hg qinit -c\n   adding .hg/patches/A\n-  adding .hg/patches/B\n   $ hg -R .hg/patches status\n   A .hgignore\n   A A\n-  A B\n   A series\n \n qinit -c shouldn\'t touch these files if they already exist\n@@ -209,7 +214,6 @@\n   bleh\n   $ cat .hg/patches/series\n   A\n-  B\n \n add an untracked file\n \n@@ -220,7 +224,6 @@\n   $ hg status --mq --config extensions.color= --config color.mode=ansi --color=always\n   \\x1b[0;32;1mA \\x1b[0m\\x1b[0;32;1m.hgignore\\x1b[0m (esc)\n   \\x1b[0;32;1mA \\x1b[0m\\x1b[0;32;1mA\\x1b[0m (esc)\n-  \\x1b[0;32;1mA \\x1b[0m\\x1b[0;32;1mB\\x1b[0m (esc)\n   \\x1b[0;32;1mA \\x1b[0m\\x1b[0;32;1mseries\\x1b[0m (esc)\n   \\x1b[0;35;1;4m? \\x1b[0m\\x1b[0;35;1;4mflaf\\x1b[0m (esc)\n \n@@ -278,19 +281,18 @@\n \n   $ echo a >> a\n   $ hg qrefresh\n+  abort: $TESTTMP\\a\\.hg\\dirstate.pending: $ENOENT$.\n+  Exception OSError: OSError(2, \'C:\\\\Temp\\\\hgtests.dstqqw\\\\child150\\\\test-mq.t\\\\a\\\\.hg\\\\dirstate.pending: $ENOENT$.\') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x000000000179C088>> ignored\n+  [255]\n   $ cat .hg/patches/test.patch\n   foo bar\n   \n-  diff -r [a-f0-9]* a (re)\n-  --- a/a\\t(?P<date>.*) (re)\n-  \\+\\+\\+ b/a\\t(?P<date2>.*) (re)\n-  @@ -1,1 +1,2 @@\n-   a\n-  +a\n \n empty qrefresh\n \n   $ hg qrefresh -X a\n+  abort: working directory revision is not qtip\n+  [255]\n \n revision:\n \n@@ -305,7 +307,7 @@\n working dir diff:\n \n   $ hg diff --nodates -q\n-  diff -r dde259bd5934 a\n+  diff -r cd5f170638d1 a\n   --- a/a\n   +++ b/a\n   @@ -1,1 +1,2 @@\n@@ -315,6 +317,8 @@\n restore things\n \n   $ hg qrefresh\n+  abort: working directory revision is not qtip\n+  [255]\n   $ checkundo qrefresh\n \n \n@@ -322,7 +326,9 @@\n \n   $ hg qpop\n   popping test.patch\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ checkundo qpop\n \n \n@@ -335,10 +341,11 @@\n .hg/cache/tags2-visible (pre qpush):\n \n   $ cat .hg/cache/tags2-visible\n-  1 [\\da-f]{40} (re)\n+  2 dde259bd59348efcce6e3aa4387dca492cf0e553\n   $ hg qpush\n-  applying test.patch\n-  now at: test.patch\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n   $ hg phase -r qbase\n   2: draft\n   $ hg tags > /dev/null\n@@ -354,13 +361,18 @@\n pop/push outside repo\n   $ hg -R a qpop\n   popping test.patch\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg -R a qpush\n-  applying test.patch\n-  now at: test.patch\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n \n   $ cd a\n   $ hg qnew test2.patch\n+  abort: working directory revision is not qtip\n+  [255]\n \n qrefresh in subdir\n \n@@ -368,51 +380,53 @@\n   $ echo a > a\n   $ hg add a\n   $ hg qrefresh\n+  abort: working directory revision is not qtip\n+  [255]\n \n pop/push -a in subdir\n \n   $ hg qpop -a\n-  popping test2.patch\n   popping test.patch\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg --traceback qpush -a\n-  applying test.patch\n-  applying test2.patch\n-  now at: test2.patch\n+  (working directory not at a head)\n+  all patches are currently applied\n \n \n setting columns & formatted tests truncating (issue1912)\n \n   $ COLUMNS=4 hg qseries --config ui.formatted=true --color=no\n   test.patch\n-  test2.patch\n   $ COLUMNS=20 hg qseries --config ui.formatted=true -vs --color=no\n   0 A test.patch: f...\n-  1 A test2.patch: \n   $ hg qpop\n-  popping test2.patch\n-  now at: test.patch\n+  popping test.patch\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg qseries -vs\n   0 A test.patch: foo bar\n-  1 U test2.patch: \n   $ hg sum | grep mq\n-  mq:     1 applied, 1 unapplied\n+  mq:     1 applied\n   $ hg qpush\n-  applying test2.patch\n-  now at: test2.patch\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n   $ hg sum | grep mq\n-  mq:     2 applied\n+  mq:     1 applied\n   $ hg qapplied\n   test.patch\n-  test2.patch\n   $ hg qtop\n-  test2.patch\n+  test.patch\n \n \n prev\n \n   $ hg qapp -1\n-  test.patch\n+  only one patch applied\n+  [1]\n \n next\n \n@@ -421,14 +435,16 @@\n   [1]\n \n   $ hg qpop\n-  popping test2.patch\n-  now at: test.patch\n+  popping test.patch\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n commit should fail\n \n   $ hg commit\n-  abort: cannot commit over an applied mq patch\n-  [255]\n+  abort: empty commit message\n+  [10]\n \n push should fail if draft\n \n@@ -441,115 +457,133 @@\n import should fail\n \n   $ hg st .\n+  A a\n   $ echo foo >> ../a\n   $ hg diff > ../../import.diff\n   $ hg revert --no-backup ../a\n   $ hg import ../../import.diff\n-  abort: cannot import over an applied patch\n-  [255]\n+  abort: uncommitted changes\n+  [20]\n   $ hg st\n+  A b/a\n \n import --no-commit should succeed\n \n   $ hg import --no-commit ../../import.diff\n-  applying ../../import.diff\n+  abort: uncommitted changes\n+  [20]\n   $ hg st\n-  M a\n+  A b/a\n   $ hg revert --no-backup ../a\n+  no changes needed to ../a\n \n \n qunapplied\n \n   $ hg qunapplied\n-  test2.patch\n \n \n qpush/qpop with index\n \n   $ hg qnew test1b.patch\n+  abort: working directory revision is not qtip\n+  [255]\n   $ echo 1b > 1b\n   $ hg add 1b\n   $ hg qrefresh\n+  abort: working directory revision is not qtip\n+  [255]\n   $ hg qpush 2\n-  applying test2.patch\n-  now at: test2.patch\n+  (working directory not at a head)\n+  abort: patch 2 not in series\n+  [255]\n   $ hg qpop 0\n-  popping test2.patch\n-  popping test1b.patch\n-  now at: test.patch\n+  qpop: test.patch is already at the top\n   $ hg qpush test.patch+1\n-  applying test1b.patch\n-  now at: test1b.patch\n+  (working directory not at a head)\n+  abort: patch test.patch+1 not in series\n+  [255]\n   $ hg qpush test.patch+2\n-  applying test2.patch\n-  now at: test2.patch\n+  (working directory not at a head)\n+  abort: patch test.patch+2 not in series\n+  [255]\n   $ hg qpop test2.patch-1\n-  popping test2.patch\n-  now at: test1b.patch\n+  abort: patch test2.patch-1 not in series\n+  [255]\n   $ hg qpop test2.patch-2\n-  popping test1b.patch\n-  now at: test.patch\n+  abort: patch test2.patch-2 not in series\n+  [255]\n   $ hg qpush test1b.patch+1\n-  applying test1b.patch\n-  applying test2.patch\n-  now at: test2.patch\n+  (working directory not at a head)\n+  abort: patch test1b.patch+1 not in series\n+  [255]\n \n \n qpush --move\n \n-  $ hg qpop -a\n-  popping test2.patch\n-  popping test1b.patch\n-  popping test.patch\n-  patch queue now empty\n-  $ hg qguard test1b.patch -- -negguard\n-  $ hg qguard test2.patch -- +posguard\n-  $ hg qpush --move test2.patch # can\'t move guarded patch\n-  cannot push \'test2.patch\' - guarded by \'+posguard\'\n-  [1]\n-  $ hg qselect posguard\n-  number of unguarded, unapplied patches has changed from 2 to 3\n-  $ hg qpush --move test2.patch # move to front\n-  applying test2.patch\n-  now at: test2.patch\n-  $ hg qpush --move test1b.patch # negative guard unselected\n-  applying test1b.patch\n-  now at: test1b.patch\n-  $ hg qpush --move test.patch # noop move\n-  applying test.patch\n-  now at: test.patch\n-  $ hg qseries -v\n-  0 A test2.patch\n-  1 A test1b.patch\n-  2 A test.patch\n   $ hg qpop -a\n   popping test.patch\n-  popping test1b.patch\n-  popping test2.patch\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg qguard test1b.patch -- -negguard\n+  abort: no patch named test1b.patch\n+  [255]\n+  $ hg qguard test2.patch -- +posguard\n+  abort: no patch named test2.patch\n+  [255]\n+  $ hg qpush --move test2.patch # can\'t move guarded patch\n+  (working directory not at a head)\n+  abort: patch test2.patch not in series\n+  [255]\n+  $ hg qselect posguard\n+  $ hg qpush --move test2.patch # move to front\n+  (working directory not at a head)\n+  abort: patch test2.patch not in series\n+  [255]\n+  $ hg qpush --move test1b.patch # negative guard unselected\n+  (working directory not at a head)\n+  abort: patch test1b.patch not in series\n+  [255]\n+  $ hg qpush --move test.patch # noop move\n+  (working directory not at a head)\n+  qpush: test.patch is already at the top\n+  $ hg qseries -v\n+  0 A test.patch\n+  $ hg qpop -a\n+  popping test.patch\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n cleaning up\n \n   $ hg qselect --none\n   guards deactivated\n-  number of unguarded, unapplied patches has changed from 3 to 2\n   $ hg qguard --none test1b.patch\n+  abort: no patch named test1b.patch\n+  [255]\n   $ hg qguard --none test2.patch\n+  abort: no patch named test2.patch\n+  [255]\n   $ hg qpush --move test.patch\n-  applying test.patch\n-  now at: test.patch\n+  (working directory not at a head)\n+  qpush: test.patch is already at the top\n   $ hg qpush --move test1b.patch\n-  applying test1b.patch\n-  now at: test1b.patch\n+  (working directory not at a head)\n+  abort: patch test1b.patch not in series\n+  [255]\n   $ hg qpush --move bogus # nonexistent patch\n+  (working directory not at a head)\n   abort: patch bogus not in series\n   [255]\n   $ hg qpush --move # no patch\n-  abort: please specify the patch to move\n-  [255]\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n   $ hg qpush --move test.patch # already applied\n-  abort: cannot push to a previous patch: test.patch\n-  [255]\n+  (working directory not at a head)\n+  qpush: test.patch is already at the top\n   $ sed \'2i\\\n   > # make qtip index different in series and fullseries\n   > \' `hg root`/.hg/patches/series > $TESTTMP/sedtmp\n@@ -559,11 +593,10 @@\n   # make qtip index different in series and fullseries\n   \n   test.patch\n-  test1b.patch\n-  test2.patch\n   $ hg qpush --move test2.patch\n-  applying test2.patch\n-  now at: test2.patch\n+  (working directory not at a head)\n+  abort: patch test2.patch not in series\n+  [255]\n \n \n series after move\n@@ -573,16 +606,12 @@\n   # make qtip index different in series and fullseries\n   \n   test.patch\n-  test1b.patch\n-  test2.patch\n \n \n pop, qapplied, qunapplied\n \n   $ hg qseries -v\n   0 A test.patch\n-  1 A test1b.patch\n-  2 A test2.patch\n \n qapplied -1 test.patch\n \n@@ -593,30 +622,31 @@\n qapplied -1 test1b.patch\n \n   $ hg qapplied -1 test1b.patch\n-  test.patch\n+  abort: patch test1b.patch is not in series file\n+  [255]\n \n qapplied -1 test2.patch\n \n   $ hg qapplied -1 test2.patch\n-  test1b.patch\n+  abort: patch test2.patch is not in series file\n+  [255]\n \n qapplied -1\n \n   $ hg qapplied -1\n-  test1b.patch\n+  only one patch applied\n+  [1]\n \n qapplied\n \n   $ hg qapplied\n   test.patch\n-  test1b.patch\n-  test2.patch\n \n qapplied test1b.patch\n \n   $ hg qapplied test1b.patch\n-  test.patch\n-  test1b.patch\n+  abort: patch test1b.patch is not in series file\n+  [255]\n \n qunapplied -1\n \n@@ -631,160 +661,177 @@\n popping\n \n   $ hg qpop\n-  popping test2.patch\n-  now at: test1b.patch\n+  popping test.patch\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n qunapplied -1\n \n   $ hg qunapplied -1\n-  test2.patch\n+  all patches applied\n+  [1]\n \n qunapplied\n \n   $ hg qunapplied\n-  test2.patch\n \n qunapplied test2.patch\n \n   $ hg qunapplied test2.patch\n+  abort: patch test2.patch is not in series file\n+  [255]\n \n qunapplied -1 test2.patch\n \n   $ hg qunapplied -1 test2.patch\n-  all patches applied\n-  [1]\n+  abort: patch test2.patch is not in series file\n+  [255]\n \n popping -a\n-\n-  $ hg qpop -a\n-  popping test1b.patch\n-  popping test.patch\n-  patch queue now empty\n-\n-qapplied\n-\n-  $ hg qapplied\n-\n-qapplied -1\n-\n-  $ hg qapplied -1\n-  no patches applied\n-  [1]\n-  $ hg qpush\n-  applying test.patch\n-  now at: test.patch\n-\n-\n-push should succeed\n \n   $ hg qpop -a\n   popping test.patch\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+qapplied\n+\n+  $ hg qapplied\n+  test.patch\n+\n+qapplied -1\n+\n+  $ hg qapplied -1\n+  only one patch applied\n+  [1]\n+  $ hg qpush\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n+\n+\n+push should succeed\n+\n+  $ hg qpop -a\n+  popping test.patch\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg push ../../k\n   pushing to ../../k\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n+  abort: source has mq patches applied\n+  [255]\n \n \n we want to start with some patches applied\n \n   $ hg qpush -a\n-  applying test.patch\n-  applying test1b.patch\n-  applying test2.patch\n-  now at: test2.patch\n+  (working directory not at a head)\n+  all patches are currently applied\n \n % pops all patches and succeeds\n \n   $ hg qpop -a\n-  popping test2.patch\n-  popping test1b.patch\n   popping test.patch\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n % does nothing and succeeds\n \n   $ hg qpop -a\n-  no patches applied\n+  popping test.patch\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n % fails - nothing else to pop\n-\n-  $ hg qpop\n-  no patches applied\n-  [1]\n-\n-% pushes a patch and succeeds\n-\n-  $ hg qpush\n-  applying test.patch\n-  now at: test.patch\n-\n-% pops a patch and succeeds\n \n   $ hg qpop\n   popping test.patch\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+% pushes a patch and succeeds\n+\n+  $ hg qpush\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n+\n+% pops a patch and succeeds\n+\n+  $ hg qpop\n+  popping test.patch\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n % pushes up to test1b.patch and succeeds\n \n   $ hg qpush test1b.patch\n-  applying test.patch\n-  applying test1b.patch\n-  now at: test1b.patch\n+  (working directory not at a head)\n+  abort: patch test1b.patch not in series\n+  [255]\n \n % does nothing and succeeds\n \n   $ hg qpush test1b.patch\n-  qpush: test1b.patch is already at the top\n+  (working directory not at a head)\n+  abort: patch test1b.patch not in series\n+  [255]\n \n % does nothing and succeeds\n \n   $ hg qpop test1b.patch\n-  qpop: test1b.patch is already at the top\n+  abort: patch test1b.patch not in series\n+  [255]\n \n % fails - can\'t push to this patch\n \n   $ hg qpush test.patch\n-  abort: cannot push to a previous patch: test.patch\n-  [255]\n+  (working directory not at a head)\n+  qpush: test.patch is already at the top\n \n % fails - can\'t pop to this patch\n \n   $ hg qpop test2.patch\n-  abort: patch test2.patch is not applied\n+  abort: patch test2.patch not in series\n   [255]\n \n % pops up to test.patch and succeeds\n \n   $ hg qpop test.patch\n-  popping test1b.patch\n-  now at: test.patch\n+  qpop: test.patch is already at the top\n \n % pushes all patches and succeeds\n \n   $ hg qpush -a\n-  applying test1b.patch\n-  applying test2.patch\n-  now at: test2.patch\n+  (working directory not at a head)\n+  all patches are currently applied\n \n % does nothing and succeeds\n \n   $ hg qpush -a\n+  (working directory not at a head)\n   all patches are currently applied\n \n % fails - nothing else to push\n \n   $ hg qpush\n+  (working directory not at a head)\n   patch series already fully applied\n   [1]\n \n % does nothing and succeeds\n \n   $ hg qpush test2.patch\n-  qpush: test2.patch is already at the top\n+  (working directory not at a head)\n+  abort: patch test2.patch not in series\n+  [255]\n \n strip\n \n@@ -795,13 +842,65 @@\n   $ hg strip tip\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/b/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\b\\.hg\\strip-backup/770eb8fce608-0ddcae0f-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg unbundle .hg/strip-backup/*\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  new changesets 770eb8fce608 (1 drafts)\n-  (run \'hg update\' to get a working copy)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n \n strip with local changes, should complain\n@@ -819,6 +918,10 @@\n   $ hg strip -f tip\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/b/.hg/strip-backup/770eb8fce608-0ddcae0f-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\b\\.hg\\strip-backup/770eb8fce608-0ddcae0f-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cd ..\n \n \n@@ -832,81 +935,74 @@\n   $ hg qnew -mfoo foo\n   $ echo a >> a\n   $ hg qrefresh\n+  abort: $TESTTMP\\refresh\\.hg\\dirstate.pending: $ENOENT$.\n+  Exception OSError: OSError(2, \'C:\\\\Temp\\\\hgtests.dstqqw\\\\child150\\\\test-mq.t\\\\refresh\\\\.hg\\\\dirstate.pending: $ENOENT$.\') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x000000000164C088>> ignored\n+  [255]\n   $ mkdir b\n   $ cd b\n   $ echo f > f\n   $ hg add f\n   $ hg qrefresh\n+  abort: working directory revision is not qtip\n+  [255]\n   $ cat ../.hg/patches/foo\n   foo\n   \n-  diff -r cb9a9f314b8b a\n-  --- a/a\\t(?P<date>.*) (re)\n-  \\+\\+\\+ b/a\\t(?P<date>.*) (re)\n-  @@ -1,1 +1,2 @@\n-   a\n-  +a\n-  diff -r cb9a9f314b8b b/f\n-  --- /dev/null\\t(?P<date>.*) (re)\n-  \\+\\+\\+ b/b/f\\t(?P<date>.*) (re)\n-  @@ -0,0 +1,1 @@\n-  +f\n \n hg qrefresh .\n \n   $ hg qrefresh .\n+  abort: working directory revision is not qtip\n+  [255]\n   $ cat ../.hg/patches/foo\n   foo\n   \n-  diff -r cb9a9f314b8b b/f\n-  --- /dev/null\\t(?P<date>.*) (re)\n-  \\+\\+\\+ b/b/f\\t(?P<date>.*) (re)\n-  @@ -0,0 +1,1 @@\n-  +f\n   $ hg status\n   M a\n+  A b/f\n \n \n qpush failure\n \n   $ cd ..\n   $ hg qrefresh\n+  abort: working directory revision is not qtip\n+  [255]\n   $ hg qnew -mbar bar\n+  abort: working directory revision is not qtip\n+  [255]\n   $ echo foo > foo\n   $ echo bar > bar\n   $ hg add foo bar\n   $ hg qrefresh\n+  abort: working directory revision is not qtip\n+  [255]\n   $ hg qpop -a\n-  popping bar\n   popping foo\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo bar > foo\n   $ hg qpush -a\n-  applying foo\n-  applying bar\n-  file foo already exists\n-  1 out of 1 hunks FAILED -- saving rejects to file foo.rej\n-  patch failed, unable to continue (try -v)\n-  patch failed, rejects left in working directory\n-  errors during apply, please fix and qrefresh bar\n-  [2]\n+  (working directory not at a head)\n+  all patches are currently applied\n   $ hg st\n-  ? foo\n-  ? foo.rej\n+  M a\n+  A b/f\n+  A bar\n+  A foo\n \n \n mq tags\n \n   $ hg log --template \'{rev} {tags}\\n\' -r qparent:qtip\n   0 qparent\n-  1 foo qbase\n-  2 bar qtip tip\n+  1 foo qbase qtip tip\n \n mq revset\n \n   $ hg log -r \'mq()\' --template \'{rev}\\n\'\n   1\n-  2\n   $ hg help revisions.mq\n       "mq()"\n         Changesets managed by MQ.\n@@ -915,18 +1011,24 @@\n bad node in status\n \n   $ hg qpop\n-  popping bar\n-  now at: foo\n+  popping foo\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg strip -qn tip\n+  strip failed, backup bundle stored in \'$TESTTMP\\refresh\\.hg\\strip-backup/b24686a20b77-c9124766-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg tip\n-  changeset:   0:cb9a9f314b8b\n+  changeset:   1:b24686a20b77\n   tag:         tip\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     a\n+  summary:     foo\n   \n   $ hg branches\n-  default                        0:cb9a9f314b8b\n+  default                        1:b24686a20b77\n   $ hg qpop\n   no patches applied\n   [1]\n@@ -951,46 +1053,47 @@\n #endif\n   $ hg add new\n   $ hg qrefresh\n+  abort: $TESTTMP\\git\\.hg\\dirstate.pending: $ENOENT$.\n+  Exception OSError: OSError(2, \'C:\\\\Temp\\\\hgtests.dstqqw\\\\child150\\\\test-mq.t\\\\git\\\\.hg\\\\dirstate.pending: $ENOENT$.\') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x000000000172C248>> ignored\n+  [255]\n \n   $ cat .hg/patches/new\n   new file\n   \n-  diff --git a/new b/new\n   new file mode 100755 (execbit !)\n   new file mode 100644 (no-execbit !)\n-  --- /dev/null\n-  +++ b/new\n-  @@ -0,0 +1,1 @@\n-  +foo\n \n   $ hg qnew -m\'copy file\' copy\n+  abort: working directory revision is not qtip\n+  [255]\n   $ hg cp new copy\n+  new has not been committed yet, so no copy data will be stored for copy.\n   $ hg qrefresh\n+  abort: working directory revision is not qtip\n+  [255]\n   $ cat .hg/patches/copy\n-  copy file\n-  \n-  diff --git a/new b/copy\n-  copy from new\n-  copy to copy\n+  cat: .hg/patches/copy: $ENOENT$\n+  [1]\n \n   $ hg qpop\n-  popping copy\n-  now at: new\n+  popping new\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg qpush\n-  applying copy\n-  now at: copy\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n   $ hg qdiff\n-  diff --git a/new b/copy\n-  copy from new\n-  copy to copy\n+  abort: working directory revision is not qtip\n+  [255]\n   $ cat >>$HGRCPATH <<EOF\n   > [diff]\n   > git = False\n   > EOF\n   $ hg qdiff --git\n-  diff --git a/new b/copy\n-  copy from new\n-  copy to copy\n+  abort: working directory revision is not qtip\n+  [255]\n   $ cd ..\n \n empty lines in status\n@@ -1026,105 +1129,114 @@\n   $ hg add bar\n   $ hg mv foo baz\n   $ hg qrefresh --git\n+  abort: $TESTTMP\\slow\\.hg\\dirstate.pending: $ENOENT$.\n+  Exception OSError: OSError(2, \'C:\\\\Temp\\\\hgtests.dstqqw\\\\child150\\\\test-mq.t\\\\slow\\\\.hg\\\\dirstate.pending: $ENOENT$.\') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x00000000016BC248>> ignored\n+  [255]\n   $ hg up -C 0\n-  1 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ echo >> foo\n   $ hg ci -m \'change foo\'\n-  created new head\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up -C 1\n-  2 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg qrefresh --git\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat .hg/patches/bar\n-  diff --git a/bar b/bar\n-  new file mode 100644\n-  --- /dev/null\n-  +++ b/bar\n-  @@ -0,0 +1,1 @@\n-  +bar\n-  diff --git a/foo b/baz\n-  rename from foo\n-  rename to baz\n   $ hg log -v --template \'{rev} {file_copies}\\n\' -r .\n-  2 baz (foo)\n+  1 \n   $ hg qrefresh --git\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat .hg/patches/bar\n-  diff --git a/bar b/bar\n-  new file mode 100644\n-  --- /dev/null\n-  +++ b/bar\n-  @@ -0,0 +1,1 @@\n-  +bar\n-  diff --git a/foo b/baz\n-  rename from foo\n-  rename to baz\n   $ hg log -v --template \'{rev} {file_copies}\\n\' -r .\n-  2 baz (foo)\n+  1 \n   $ hg qrefresh\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ grep \'diff --git\' .hg/patches/bar\n-  diff --git a/bar b/bar\n-  diff --git a/foo b/baz\n+  [1]\n \n \n test file move chains in the slow path\n \n   $ hg up -C 1\n-  1 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ echo >> foo\n   $ hg ci -m \'change foo again\'\n+  abort: cannot commit over an applied mq patch\n+  [255]\n   $ hg up -C 2\n-  2 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: unknown revision \'2\'\n+  [255]\n   $ hg mv bar quux\n+  bar: not copying - file is not managed\n+  abort: no files to copy\n+  [10]\n   $ hg mv baz bleh\n+  baz: not copying - file is not managed\n+  abort: no files to copy\n+  [10]\n   $ hg qrefresh --git\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat .hg/patches/bar\n-  diff --git a/foo b/bleh\n-  rename from foo\n-  rename to bleh\n-  diff --git a/quux b/quux\n-  new file mode 100644\n-  --- /dev/null\n-  +++ b/quux\n-  @@ -0,0 +1,1 @@\n-  +bar\n   $ hg log -v --template \'{rev} {file_copies}\\n\' -r .\n-  3 bleh (foo)\n+  1 \n   $ hg mv quux fred\n+  quux: $ENOENT$\n+  abort: no files to copy\n+  [10]\n   $ hg mv bleh barney\n+  bleh: $ENOENT$\n+  abort: no files to copy\n+  [10]\n   $ hg qrefresh --git\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat .hg/patches/bar\n-  diff --git a/foo b/barney\n-  rename from foo\n-  rename to barney\n-  diff --git a/fred b/fred\n-  new file mode 100644\n-  --- /dev/null\n-  +++ b/fred\n-  @@ -0,0 +1,1 @@\n-  +bar\n   $ hg log -v --template \'{rev} {file_copies}\\n\' -r .\n-  3 barney (foo)\n+  1 \n \n \n refresh omitting an added file\n \n   $ hg qnew baz\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo newfile > newfile\n   $ hg add newfile\n   $ hg qrefresh\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st -A newfile\n-  C newfile\n+  A newfile\n   $ hg qrefresh -X newfile\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st -A newfile\n   A newfile\n   $ hg revert newfile\n   $ rm newfile\n   $ hg qpop\n-  popping baz\n-  now at: bar\n+  abort: local changes found, qrefresh first\n+  [255]\n \n test qdel/qrm\n \n   $ hg qdel baz\n+  abort: patch baz not in series\n+  [255]\n   $ echo p >> .hg/patches/series\n   $ hg qrm p\n   $ hg qser\n@@ -1135,8 +1247,12 @@\n   $ echo a > alexander\n   $ hg add alexander\n   $ hg qnew -f --git addalexander\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ grep diff .hg/patches/addalexander\n-  diff --git a/alexander b/alexander\n+  grep: .hg/patches/addalexander: $ENOENT$\n+  [2]\n \n \n create a git binary patch\n@@ -1152,20 +1268,24 @@\n   8ba2a2f3e77b55d03051ff9c24ad65e7  bucephalus\n   $ hg add bucephalus\n   $ hg qnew -f --git addbucephalus\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ grep diff .hg/patches/addbucephalus\n-  diff --git a/bucephalus b/bucephalus\n+  grep: .hg/patches/addbucephalus: $ENOENT$\n+  [2]\n \n \n check binary patches can be popped and pushed\n \n   $ hg qpop\n-  popping addbucephalus\n-  now at: addalexander\n+  abort: local changes found, qrefresh first\n+  [255]\n   $ test -f bucephalus && echo % bucephalus should not be there\n-  [1]\n+  % bucephalus should not be there\n   $ hg qpush\n-  applying addbucephalus\n-  now at: addbucephalus\n+  patch series already fully applied\n+  [1]\n   $ test -f bucephalus\n   $ "$PYTHON" "$TESTDIR/md5sum.py" bucephalus\n   8ba2a2f3e77b55d03051ff9c24ad65e7  bucephalus\n@@ -1220,13 +1340,84 @@\n   $ hg strip 1\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/strip/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\strip\\.hg\\strip-backup/d2871fc282d4-98cdc04e-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\strip\\.hg\\strip-backup/d2871fc282d4-f9670feb-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\strip\\.hg\\strip-backup/d2871fc282d4-f9670feb-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ checkundo strip\n+  .hg/store/undo still exists after strip\n   $ hg log\n-  changeset:   1:20cbbe65cff7\n+  changeset:   3:99615015637b\n   tag:         tip\n+  parent:      2:20cbbe65cff7\n+  parent:      1:d2871fc282d4\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     merge\n+  \n+  changeset:   2:20cbbe65cff7\n+  parent:      0:53245c60e682\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n   summary:     change foo 2\n+  \n+  changeset:   1:d2871fc282d4\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     change foo 1\n   \n   changeset:   0:53245c60e682\n   user:        test\n@@ -1254,6 +1445,9 @@\n   $ hg qnew patch1\n   $ echo bar >> foo\n   $ hg qrefresh -m \'change foo\'\n+  abort: $TESTTMP\\qclonesource\\.hg\\dirstate.pending: $ENOENT$.\n+  Exception OSError: OSError(2, \'C:\\\\Temp\\\\hgtests.dstqqw\\\\child150\\\\test-mq.t\\\\qclonesource\\\\.hg\\\\dirstate.pending: $ENOENT$.\') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x000000000175C248>> ignored\n+  [255]\n   $ cd ..\n \n \n@@ -1269,7 +1463,7 @@\n   $ hg qci -m checkpoint\n   $ qlog\n   main repo:\n-      rev 1: change foo\n+      rev 1: [mq]: patch1\n       rev 0: add foo\n   patch repo:\n       rev 0: checkpoint\n@@ -1281,10 +1475,58 @@\n   $ hg qclone qclonesource qclonedest\n   updating to branch default\n   3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 2925, in clone\n+      strip(ui, repo, [qbase], update=False, backup=None)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cd qclonedest\n   $ qlog\n   main repo:\n+      rev 1: [mq]: patch1\n       rev 0: add foo\n   patch repo:\n       rev 0: checkpoint\n@@ -1296,9 +1538,12 @@\n   $ cd qclonesource\n   $ hg qpop -a\n   popping patch1\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ qlog\n   main repo:\n+      rev 1: [mq]: patch1\n       rev 0: add foo\n   patch repo:\n       rev 0: checkpoint\n@@ -1306,10 +1551,58 @@\n   $ hg qclone qclonesource qclonedest2\n   updating to branch default\n   3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 2925, in clone\n+      strip(ui, repo, [qbase], update=False, backup=None)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cd qclonedest2\n   $ qlog\n   main repo:\n+      rev 1: [mq]: patch1\n       rev 0: add foo\n   patch repo:\n       rev 0: checkpoint\n@@ -1327,10 +1620,60 @@\n   $ hg qnew -f -e changea\n   $ hg qpop\n   popping changea\n-  patch queue now empty\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3582, in pop\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1863, in pop\n+      strip(self.ui, repo, [rev], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg qpush\n-  applying changea\n-  now at: changea\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n   $ cd ..\n \n test qpush with --force, issue1087\n@@ -1345,52 +1688,102 @@\n   $ hg qnew -d \'0 0\' empty\n   $ hg qpop\n   popping empty\n-  patch queue now empty\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3582, in pop\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1863, in pop\n+      strip(self.ui, repo, [rev], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo world >> hello.txt\n \n \n qpush should fail, local changes\n \n   $ hg qpush\n-  abort: local changes found\n-  [255]\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n \n \n apply force, should not discard changes with empty patch\n \n   $ hg qpush -f\n-  applying empty\n-  patch empty is empty\n-  now at: empty\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n   $ hg diff --config diff.nodates=True\n-  diff -r d58265112590 hello.txt\n+  diff -r 9ecee4f634e3 hello.txt\n   --- a/hello.txt\n   +++ b/hello.txt\n   @@ -1,1 +1,2 @@\n    hello\n   +world\n   $ hg qdiff --config diff.nodates=True\n-  diff -r 9ecee4f634e3 hello.txt\n-  --- a/hello.txt\n-  +++ b/hello.txt\n-  @@ -1,1 +1,2 @@\n-   hello\n-  +world\n+  abort: working directory revision is not qtip\n+  [255]\n   $ hg log -l1 -p\n-  changeset:   1:d58265112590\n+  changeset:   1:a965bbc2db9c\n   tag:         empty\n   tag:         qbase\n   tag:         qtip\n   tag:         tip\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     imported patch empty\n+  summary:     [mq]: empty\n   \n   \n   $ hg qref -d \'0 0\'\n+  abort: working directory revision is not qtip\n+  [255]\n   $ hg qpop\n   popping empty\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo universe >> hello.txt\n   $ echo universe >> bye.txt\n \n@@ -1398,32 +1791,21 @@\n qpush should fail, local changes\n \n   $ hg qpush\n-  abort: local changes found\n-  [255]\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n \n \n apply force, should discard changes in hello, but not bye\n \n   $ hg qpush -f --verbose --config \'ui.origbackuppath=.hg/origbackups\'\n-  applying empty\n-  creating directory: $TESTTMP/forcepush/.hg/origbackups\n-  saving current version of hello.txt as .hg/origbackups/hello.txt\n-  patching file hello.txt\n-  committing files:\n-  hello.txt\n-  committing manifest\n-  committing changelog\n-  now at: empty\n+  (working directory not at a head)\n+  patch series already fully applied\n+  [1]\n   $ hg st\n   M bye.txt\n+  M hello.txt\n   $ hg diff --config diff.nodates=True\n-  diff -r ba252371dbc1 bye.txt\n-  --- a/bye.txt\n-  +++ b/bye.txt\n-  @@ -1,1 +1,2 @@\n-   bye\n-  +universe\n-  $ hg qdiff --config diff.nodates=True\n   diff -r 9ecee4f634e3 bye.txt\n   --- a/bye.txt\n   +++ b/bye.txt\n@@ -1437,21 +1819,27 @@\n    hello\n   +world\n   +universe\n+  $ hg qdiff --config diff.nodates=True\n+  abort: working directory revision is not qtip\n+  [255]\n \n test that the previous call to qpush with -f (--force) and --config actually put\n the orig files out of the working copy\n   $ ls .hg/origbackups\n-  hello.txt\n+  ls: .hg/origbackups: $ENOENT$\n+  [2]\n \n test popping revisions not in working dir ancestry\n \n   $ hg qseries -v\n   0 A empty\n   $ hg up qparent\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg qpop\n   popping empty\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ cd ..\n   $ hg init deletion-order\n@@ -1463,18 +1851,27 @@\n   $ hg qnew rename-dir\n   $ hg rm a\n   $ hg qrefresh\n+  abort: $TESTTMP\\deletion-order\\.hg\\dirstate.pending: $ENOENT$.\n+  Exception OSError: OSError(2, \'C:\\\\Temp\\\\hgtests.dstqqw\\\\child150\\\\test-mq.t\\\\deletion-order\\\\.hg\\\\dirstate.pending: $ENOENT$.\') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x00000000016AB248>> ignored\n+  [255]\n \n   $ mkdir a b\n   $ touch a/a b/b\n   $ hg add -q a b\n+  a not added: only files and symlinks supported currently\n+  [1]\n   $ hg qrefresh\n+  abort: working directory revision is not qtip\n+  [255]\n \n \n test popping must remove files added in subdirectories first\n \n   $ hg qpop\n   popping rename-dir\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cd ..\n \n \n@@ -1488,25 +1885,34 @@\n   $ echo a > TeXtFiLe.TxT\n   $ hg add TeXtFiLe.TxT\n   $ hg qrefresh\n+  abort: $TESTTMP\\casepreserve\\.hg\\dirstate.pending: $ENOENT$.\n+  Exception OSError: OSError(2, \'C:\\\\Temp\\\\hgtests.dstqqw\\\\child150\\\\test-mq.t\\\\casepreserve\\\\.hg\\\\dirstate.pending: $ENOENT$.\') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x000000000180B248>> ignored\n+  [255]\n \n   $ hg qnew add-file2\n+  abort: working directory revision is not qtip\n+  [255]\n   $ echo b > AnOtHeRFiLe.TxT\n   $ hg add AnOtHeRFiLe.TxT\n   $ hg qrefresh\n+  abort: working directory revision is not qtip\n+  [255]\n \n   $ hg qnew modify-file\n+  abort: working directory revision is not qtip\n+  [255]\n   $ echo c >> AnOtHeRFiLe.TxT\n   $ hg qrefresh\n+  abort: working directory revision is not qtip\n+  [255]\n \n   $ hg qapplied\n   add-file1\n-  add-file2\n-  modify-file\n   $ hg qpop -a\n-  popping modify-file\n-  popping add-file2\n   popping add-file1\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n this qpush causes problems below, if case preservation on case\n insensitive filesystem is not enough:\n@@ -1514,10 +1920,8 @@\n (2) patching fails in modification of (1) files\n \n   $ hg qpush -a\n-  applying add-file1\n-  applying add-file2\n-  applying modify-file\n-  now at: modify-file\n+  (working directory not at a head)\n+  all patches are currently applied\n \n Proper phase default with mq:\n \n@@ -1527,53 +1931,48 @@\n   $ hg phase \'qparent::\'\n   -1: public\n   0: draft\n-  1: draft\n-  2: draft\n   $ echo \'[mq]\' >> $HGRCPATH\n   $ echo \'secret=true\' >> $HGRCPATH\n   $ rm -f .hg/store/phaseroots\n   $ hg phase \'qparent::\'\n   -1: public\n   0: secret\n-  1: secret\n-  2: secret\n \n Test that qfinish change phase when mq.secret=true\n \n+  $ hg qfinish qbase\n+  patch add-file1 finalized without changeset message\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg phase \'all()\'\n+  0: secret\n+\n+Test that qfinish respect phases.new-commit setting\n+\n+  $ echo \'[phases]\' >> $HGRCPATH\n+  $ echo \'new-commit=secret\' >> $HGRCPATH\n   $ hg qfinish qbase\n   patch add-file1 finalized without changeset message\n   $ hg phase \'all()\'\n-  0: draft\n-  1: secret\n-  2: secret\n-\n-Test that qfinish respect phases.new-commit setting\n-\n-  $ echo \'[phases]\' >> $HGRCPATH\n-  $ echo \'new-commit=secret\' >> $HGRCPATH\n-  $ hg qfinish qbase\n-  patch add-file2 finalized without changeset message\n-  $ hg phase \'all()\'\n-  0: draft\n-  1: secret\n-  2: secret\n+  0: public\n \n (restore env for next test)\n \n   $ sed -e \'s/new-commit=secret//\' $HGRCPATH > $TESTTMP/sedtmp\n   $ cp $TESTTMP/sedtmp $HGRCPATH\n   $ hg qimport -r 1 --name  add-file2\n+  abort: unknown revision \'1\'\n+  [255]\n \n Test that qfinish preserve phase when mq.secret=false\n \n   $ sed -e \'s/secret=true/secret=false/\' $HGRCPATH > $TESTTMP/sedtmp\n   $ cp $TESTTMP/sedtmp $HGRCPATH\n   $ hg qfinish qbase\n-  patch add-file2 finalized without changeset message\n+  no patches applied\n   $ hg phase \'all()\'\n-  0: draft\n-  1: secret\n-  2: secret\n+  0: public\n \n Test that secret mq patch does not break hgweb\n \n@@ -1594,7 +1993,7 @@\n #endif\n   $ QUERY_STRING=\'style=raw\'\n   $ "$PYTHON" hgweb.cgi | grep \'^tip\'\n-  tip\t[0-9a-f]{40} (re)\n+  [1]\n \n   $ cd ..\n \n', 18356, 18358, 'truncated \\uXXXX escape') decoding diff, sorry

test-narrow-acl.t

--- c:/hgdev/src/tests/test-narrow-acl.t
+++ c:/hgdev/src/tests/test-narrow-acl.t.err
@@ -9,6 +9,7 @@
   >   hg add "f$x"
   >   hg commit -m "Add $x"
   > done
+  /usr/bin/env: python3: $ENOENT$
   $ cat >> .hg/hgrc << EOF
   > [narrowacl]
   > default.includes=f1 f2
@@ -18,26 +19,19 @@
 
   $ cd ..
   $ hg clone http://localhost:$HGPORT1 narrowclone1
-  requesting all changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 3 changesets with 2 changes to 2 files
-  new changesets * (glob)
+  no changes found
   updating to branch default
-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 The clone directory should only contain f1 and f2
   $ ls -A -1 narrowclone1 | sort
   .hg
-  f1
-  f2
 
 Requirements should contain narrowhg
   $ cat narrowclone1/.hg/requires | grep narrowhg
-  narrowhg-experimental
+  [1]
 
 NarrowHG should track f1 and f2
   $ hg -R narrowclone1 tracked
-  I path:f1
-  I path:f2
+  abort: the tracked command is only supported on repositories cloned with --narrow
+  [255]

test-narrow-archive.t

--- c:/hgdev/src/tests/test-narrow-archive.t
+++ c:/hgdev/src/tests/test-narrow-archive.t.err
@@ -9,24 +9,25 @@
   >   hg add "f$x"
   >   hg commit -m "Add $x"
   > done
+  /usr/bin/env: python3: $ENOENT$
 
   $ hg serve -a localhost -p $HGPORT1 -d --pid-file=hg.pid
   $ cat hg.pid >> "$DAEMON_PIDS"
 
   $ cd ..
   $ hg clone --narrow --include f1 --include f2 http://localhost:$HGPORT1/ narrowclone1
-  requesting all changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 3 changesets with 2 changes to 2 files
-  new changesets * (glob)
+  no changes found
   updating to branch default
-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 The tar should only contain f1 and f2
   $ cd narrowclone1
   $ hg archive -t tgz repo.tgz
+  abort: no working directory: please specify a revision
+  [10]
   $ tar tfz repo.tgz
-  repo/f1
-  repo/f2
+  tar (child): repo.tgz: Cannot open: $ENOENT$
+  tar (child): Error is not recoverable: exiting now
+  tar: Child returned status 2
+  tar: Error is not recoverable: exiting now
+  [2]

test-narrow-clone-no-ellipsis.t

--- c:/hgdev/src/tests/test-narrow-clone-no-ellipsis.t
+++ c:/hgdev/src/tests/test-narrow-clone-no-ellipsis.t.err
@@ -6,21 +6,18 @@
   $ mkdir dir/src
   $ cd dir/src
   $ for x in `$TESTDIR/seq.py 20`; do echo $x > "f$x"; hg add "f$x"; hg commit -m "Commit src $x"; done
+  /usr/bin/env: python3: $ENOENT$
   $ cd ..
   $ mkdir tests
   $ cd tests
   $ for x in `$TESTDIR/seq.py 20`; do echo $x > "t$x"; hg add "t$x"; hg commit -m "Commit test $x"; done
+  /usr/bin/env: python3: $ENOENT$
   $ cd ../../..
 
 narrow clone a file, f10
 
   $ hg clone --narrow ssh://user@dummy/master narrow --noupdate --include "dir/src/f10"
-  requesting all changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 40 changesets with 1 changes to 1 files
-  new changesets *:* (glob)
+  no changes found
   $ cd narrow
   $ cat .hg/requires | grep -v generaldelta
   dotencode
@@ -34,94 +31,42 @@
   $ hg tracked
   I path:dir/src/f10
   $ hg update
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ find * | sort
-  dir
-  dir/src
-  dir/src/f10
+  find: `*': $ENOENT$
   $ cat dir/src/f10
-  10
+  cat: dir/src/f10: $ENOENT$
+  [1]
 
   $ cd ..
 
 narrow clone a directory, tests/, except tests/t19
 
   $ hg clone --narrow ssh://user@dummy/master narrowdir --noupdate --include "dir/tests/" --exclude "dir/tests/t19"
-  requesting all changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 40 changesets with 19 changes to 19 files
-  new changesets *:* (glob)
+  no changes found
   $ cd narrowdir
   $ hg tracked
   I path:dir/tests
   X path:dir/tests/t19
   $ hg update
-  19 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ find * | sort
-  dir
-  dir/tests
-  dir/tests/t1
-  dir/tests/t10
-  dir/tests/t11
-  dir/tests/t12
-  dir/tests/t13
-  dir/tests/t14
-  dir/tests/t15
-  dir/tests/t16
-  dir/tests/t17
-  dir/tests/t18
-  dir/tests/t2
-  dir/tests/t20
-  dir/tests/t3
-  dir/tests/t4
-  dir/tests/t5
-  dir/tests/t6
-  dir/tests/t7
-  dir/tests/t8
-  dir/tests/t9
+  find: `*': $ENOENT$
 
   $ cd ..
 
 narrow clone everything but a directory (tests/)
 
   $ hg clone --narrow ssh://user@dummy/master narrowroot --noupdate --exclude "dir/tests"
-  requesting all changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 40 changesets with 20 changes to 20 files
-  new changesets *:* (glob)
+  no changes found
   $ cd narrowroot
   $ hg tracked
   I path:.
   X path:dir/tests
   $ hg update
-  20 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ find * | sort
-  dir
-  dir/src
-  dir/src/f1
-  dir/src/f10
-  dir/src/f11
-  dir/src/f12
-  dir/src/f13
-  dir/src/f14
-  dir/src/f15
-  dir/src/f16
-  dir/src/f17
-  dir/src/f18
-  dir/src/f19
-  dir/src/f2
-  dir/src/f20
-  dir/src/f3
-  dir/src/f4
-  dir/src/f5
-  dir/src/f6
-  dir/src/f7
-  dir/src/f8
-  dir/src/f9
+  find: `*': $ENOENT$
 
   $ cd ..
 
@@ -147,14 +92,9 @@
 
   $ hg clone ssh://user@dummy/master specfile --narrowspec narrowspecs
   reading narrowspec from '$TESTTMP/narrowspecs'
-  requesting all changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 40 changesets with 21 changes to 21 files
-  new changesets 681085829a73:26ce255d5b5d
+  no changes found
   updating to branch default
-  21 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd specfile
   $ hg tracked
   I path:dir/src/f12

test-narrow-clone-non-narrow-server.t

--- c:/hgdev/src/tests/test-narrow-clone-non-narrow-server.t
+++ c:/hgdev/src/tests/test-narrow-clone-non-narrow-server.t.err
@@ -10,6 +10,7 @@
   >   hg add "f$x"
   >   hg commit -m "Add $x"
   > done
+  /usr/bin/env: python3: $ENOENT$
 
   $ hg serve -a localhost -p $HGPORT1 --config extensions.narrow=! -d    >    --pid-file=hg.pid
@@ -37,7 +38,7 @@
   $ cd ..
 
   $ hg clone --narrow --include f1 http://localhost:$HGPORT1/ narrowclone
-  requesting all changes
+  no changes found
   abort: server does not support narrow clones
   [255]
 
@@ -45,17 +46,12 @@
 into it (from HGPORT1) to prove that narrowing is fine and widening fails
 gracefully:
   $ hg clone -r 0 --narrow --include f1 http://localhost:$HGPORT2/ narrowclone
-  adding changesets
-  adding manifests
-  adding file changes
-  added 1 changesets with 1 changes to 1 files
-  new changesets * (glob)
+  no changes found
   updating to branch default
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd narrowclone
   $ hg tracked --addexclude f2 http://localhost:$HGPORT1/
   comparing with http://localhost:$HGPORT1/
-  searching for changes
   looking for local changes to affected paths
 
   $ hg tracked --addinclude f1 http://localhost:$HGPORT1/

test-narrow-clone-nonlinear.t

--- c:/hgdev/src/tests/test-narrow-clone-nonlinear.t
+++ c:/hgdev/src/tests/test-narrow-clone-nonlinear.t.err
@@ -18,6 +18,7 @@
   >   hg add "f$x"
   >   hg commit -m "Add $x"
   > done
+  /usr/bin/env: python3: $ENOENT$
 
   $ hg branch release-v1
   marked working directory as branch release-v1
@@ -25,49 +26,55 @@
   $ hg commit -m "Start release for v1"
 
   $ hg update default
-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  abort: unknown revision 'default'
+  [255]
   $ for x in `$TESTDIR/seq.py 10`; do
   >   echo "$x v2" > "f$x"
   >   hg commit -m "Update $x to v2"
   > done
+  /usr/bin/env: python3: $ENOENT$
 
   $ hg update release-v1
-  10 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg branch release-v1
   marked working directory as branch release-v1
   $ for x in `$TESTDIR/seq.py 1 5`; do
   >   echo "$x v1 hotfix" > "f$x"
   >   hg commit -m "Hotfix $x in v1"
   > done
+  /usr/bin/env: python3: $ENOENT$
 
   $ hg update default
-  10 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  abort: unknown revision 'default'
+  [255]
   $ hg branch release-v2
   marked working directory as branch release-v2
   $ hg commit -m "Start release for v2"
 
   $ hg update default
-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  abort: unknown revision 'default'
+  [255]
   $ hg branch default
   marked working directory as branch default
   $ for x in `$TESTDIR/seq.py 10`; do
   >   echo "$x v3" > "f$x"
   >   hg commit -m "Update $x to v3"
   > done
+  /usr/bin/env: python3: $ENOENT$
 
   $ hg update release-v2
-  10 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg branch release-v2
   marked working directory as branch release-v2
   $ for x in `$TESTDIR/seq.py 4 9`; do
   >   echo "$x v2 hotfix" > "f$x"
   >   hg commit -m "Hotfix $x in v2"
   > done
+  /usr/bin/env: python3: $ENOENT$
 
   $ hg heads -T '{rev} <- {p1rev} ({branch}): {desc}
'
-  42 <- 41 (release-v2): Hotfix 9 in v2
-  36 <- 35 (default): Update 10 to v3
-  25 <- 24 (release-v1): Hotfix 5 in v1
+  1 <- 0 (release-v2): Start release for v2
+  0 <- -1 (release-v1): Start release for v1
 
   $ cd ..
 
@@ -81,35 +88,13 @@
   adding changesets
   adding manifests
   adding file changes
-  added 12 changesets with 5 changes to 1 files (+2 heads)
-  new changesets *:* (glob)
-  updating to branch default
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  added 1 changesets with 0 changes to 0 files
+  new changesets a4f44862f66a
+  updating to branch release-v2
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd narrow
   $ hg log -G -T "{if(ellipsis, '...')}{node|short} ({branch}): {desc}
"
-  o  ...031f516143fe (release-v2): Hotfix 9 in v2
-  |
-  o  9cd7f7bb9ca1 (release-v2): Hotfix 5 in v2
-  |
-  o  ...37bbc88f3ef0 (release-v2): Hotfix 4 in v2
-  |
-  | @  ...dae2f368ca07 (default): Update 10 to v3
-  | |
-  | o  9c224e89cb31 (default): Update 5 to v3
-  | |
-  | o  ...04fb59c7c9dc (default): Update 4 to v3
-  |/
-  | o  b2253e82401f (release-v1): Hotfix 5 in v1
-  | |
-  | o  ...960ac37d74fd (release-v1): Hotfix 4 in v1
-  | |
-  o |  986298e3f347 (default): Update 5 to v2
-  | |
-  o |  ...75d539c667ec (default): Update 4 to v2
-  |/
-  o  04c71bd5707f (default): Add 5
-  |
-  o  ...881b3891d041 (default): Add 4
+  @  ...a4f44862f66a (release-v2): Start release for v2
   
 
 Narrow clone the first file, hitting edge condition where unaligned
@@ -120,29 +105,11 @@
   adding changesets
   adding manifests
   adding file changes
-  added 10 changesets with 4 changes to 1 files (+2 heads)
-  new changesets *:* (glob)
-  updating to branch default
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  added 1 changesets with 0 changes to 0 files
+  new changesets a4f44862f66a
+  updating to branch release-v2
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd narrow
   $ hg log -G -T "{if(ellipsis, '...')}{node|short} ({branch}): {desc}
"
-  o  ...031f516143fe (release-v2): Hotfix 9 in v2
-  |
-  | @  ...dae2f368ca07 (default): Update 10 to v3
-  | |
-  | o  1f5d184b8e96 (default): Update 1 to v3
-  |/
-  | o  ...b2253e82401f (release-v1): Hotfix 5 in v1
-  | |
-  | o  133502f6b7e5 (release-v1): Hotfix 1 in v1
-  | |
-  o |  ...79165c83d644 (default): Update 10 to v2
-  | |
-  o |  c7b7a5f2f088 (default): Update 1 to v2
-  | |
-  | o  ...f0531a3db7a9 (release-v1): Start release for v1
-  |/
-  o  ...6a3f0f0abef3 (default): Add 10
-  |
-  o  e012ac15eaaa (default): Add 1
+  @  ...a4f44862f66a (release-v2): Start release for v2
   

test-narrow-clone-stream.t#flat-fncache

--- c:/hgdev/src/tests/test-narrow-clone-stream.t
+++ c:/hgdev/src/tests/test-narrow-clone-stream.t#flat-fncache.err
@@ -26,11 +26,13 @@
   $ mkdir dir/src
   $ cd dir/src
   $ for x in `$TESTDIR/seq.py 20`; do echo $x > "F$x"; hg add "F$x"; hg commit -m "Commit src $x"; done
+  /usr/bin/env: python3: $ENOENT$
 
   $ cd ..
   $ mkdir tests
   $ cd tests
   $ for x in `$TESTDIR/seq.py 20`; do echo $x > "F$x"; hg add "F$x"; hg commit -m "Commit src $x"; done
+  /usr/bin/env: python3: $ENOENT$
   $ cd ../../..
 
 Trying to stream clone when the server does not support it
@@ -50,8 +52,8 @@
 
   $ hg clone --narrow ssh://user@dummy/master narrow --noupdate --include "dir/src/F10" --stream
   streaming all changes
-  * files to transfer, * KB of data (glob)
-  transferred * KB in * seconds (* */sec) (glob)
+  0 files to transfer, 0 bytes of data
+  transferred 0 bytes in 0.2 seconds (0 bytes/sec)
 
   $ cd narrow
   $ ls -A
@@ -66,25 +68,24 @@
   dotencode (flat-fncache !)
   fncache (tree !)
   fncache (flat-fncache !)
+  dotencode
+  fncache
   generaldelta
   narrowhg-experimental
   revlogv1
+  treemanifest (tree !)
   sparserevlog
   store
-  treemanifest (tree !)
 
 Making sure store has the required files
 
   $ ls .hg/store/
-  00changelog.i
-  00manifest.i
-  data
+  narrowspec
+  undo
+  undo.backupfiles
   fncache (tree !)
   fncache (flat-fncache !)
   meta (tree !)
-  narrowspec
-  undo
-  undo.backupfiles
   undo.narrowspec
   undo.phaseroots
 
@@ -96,4 +97,4 @@
   checking directory manifests (tree !)
   crosschecking files in changesets and manifests
   checking files
-  checked 40 changesets with 1 changes to 1 files
+  checked 0 changesets with 0 changes to 0 files

test-narrow-clone-stream.t#flat-nofncache

--- c:/hgdev/src/tests/test-narrow-clone-stream.t
+++ c:/hgdev/src/tests/test-narrow-clone-stream.t#flat-nofncache.err
@@ -26,11 +26,13 @@
   $ mkdir dir/src
   $ cd dir/src
   $ for x in `$TESTDIR/seq.py 20`; do echo $x > "F$x"; hg add "F$x"; hg commit -m "Commit src $x"; done
+  /usr/bin/env: python3: $ENOENT$
 
   $ cd ..
   $ mkdir tests
   $ cd tests
   $ for x in `$TESTDIR/seq.py 20`; do echo $x > "F$x"; hg add "F$x"; hg commit -m "Commit src $x"; done
+  /usr/bin/env: python3: $ENOENT$
   $ cd ../../..
 
 Trying to stream clone when the server does not support it
@@ -50,8 +52,8 @@
 
   $ hg clone --narrow ssh://user@dummy/master narrow --noupdate --include "dir/src/F10" --stream
   streaming all changes
-  * files to transfer, * KB of data (glob)
-  transferred * KB in * seconds (* */sec) (glob)
+  0 files to transfer, 0 bytes of data
+  transferred 0 bytes in 0.2 seconds (0 bytes/sec)
 
   $ cd narrow
   $ ls -A
@@ -66,25 +68,24 @@
   dotencode (flat-fncache !)
   fncache (tree !)
   fncache (flat-fncache !)
+  dotencode
+  fncache
   generaldelta
   narrowhg-experimental
   revlogv1
+  treemanifest (tree !)
   sparserevlog
   store
-  treemanifest (tree !)
 
 Making sure store has the required files
 
   $ ls .hg/store/
-  00changelog.i
-  00manifest.i
-  data
+  narrowspec
+  undo
+  undo.backupfiles
   fncache (tree !)
   fncache (flat-fncache !)
   meta (tree !)
-  narrowspec
-  undo
-  undo.backupfiles
   undo.narrowspec
   undo.phaseroots
 
@@ -96,4 +97,4 @@
   checking directory manifests (tree !)
   crosschecking files in changesets and manifests
   checking files
-  checked 40 changesets with 1 changes to 1 files
+  checked 0 changesets with 0 changes to 0 files

test-narrow-clone-stream.t#tree

--- c:/hgdev/src/tests/test-narrow-clone-stream.t
+++ c:/hgdev/src/tests/test-narrow-clone-stream.t#tree.err
@@ -26,11 +26,13 @@
   $ mkdir dir/src
   $ cd dir/src
   $ for x in `$TESTDIR/seq.py 20`; do echo $x > "F$x"; hg add "F$x"; hg commit -m "Commit src $x"; done
+  /usr/bin/env: python3: $ENOENT$
 
   $ cd ..
   $ mkdir tests
   $ cd tests
   $ for x in `$TESTDIR/seq.py 20`; do echo $x > "F$x"; hg add "F$x"; hg commit -m "Commit src $x"; done
+  /usr/bin/env: python3: $ENOENT$
   $ cd ../../..
 
 Trying to stream clone when the server does not support it
@@ -50,8 +52,8 @@
 
   $ hg clone --narrow ssh://user@dummy/master narrow --noupdate --include "dir/src/F10" --stream
   streaming all changes
-  * files to transfer, * KB of data (glob)
-  transferred * KB in * seconds (* */sec) (glob)
+  0 files to transfer, 0 bytes of data
+  transferred 0 bytes in 0.2 seconds (0 bytes/sec)
 
   $ cd narrow
   $ ls -A
@@ -66,25 +68,24 @@
   dotencode (flat-fncache !)
   fncache (tree !)
   fncache (flat-fncache !)
+  dotencode
+  fncache
   generaldelta
   narrowhg-experimental
   revlogv1
+  treemanifest (tree !)
   sparserevlog
   store
-  treemanifest (tree !)
 
 Making sure store has the required files
 
   $ ls .hg/store/
-  00changelog.i
-  00manifest.i
-  data
+  narrowspec
+  undo
+  undo.backupfiles
   fncache (tree !)
   fncache (flat-fncache !)
   meta (tree !)
-  narrowspec
-  undo
-  undo.backupfiles
   undo.narrowspec
   undo.phaseroots
 
@@ -96,4 +97,4 @@
   checking directory manifests (tree !)
   crosschecking files in changesets and manifests
   checking files
-  checked 40 changesets with 1 changes to 1 files
+  checked 0 changesets with 0 changes to 0 files

test-narrow-clone.t

--- c:/hgdev/src/tests/test-narrow-clone.t
+++ c:/hgdev/src/tests/test-narrow-clone.t.err
@@ -10,10 +10,12 @@
   $ mkdir dir/src
   $ cd dir/src
   $ for x in `$TESTDIR/seq.py 20`; do echo $x > "f$x"; hg add "f$x"; hg commit -m "Commit src $x"; done
+  /usr/bin/env: python3: $ENOENT$
   $ cd ..
   $ mkdir tests
   $ cd tests
   $ for x in `$TESTDIR/seq.py 20`; do echo $x > "t$x"; hg add "t$x"; hg commit -m "Commit test $x"; done
+  /usr/bin/env: python3: $ENOENT$
   $ cd ../../..
 
 Only path: and rootfilesin: pattern prefixes are allowed
@@ -31,12 +33,7 @@
 narrow clone a file, f10
 
   $ hg clone --narrow ssh://user@dummy/master narrow --noupdate --include "dir/src/f10"
-  requesting all changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 3 changesets with 1 changes to 1 files
-  new changesets *:* (glob)
+  no changes found
   $ cd narrow
   $ cat .hg/requires | grep -v generaldelta
   dotencode
@@ -52,20 +49,19 @@
   $ hg tracked
   I path:dir/src/f10
   $ hg update
-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ find * | sort
-  dir
-  dir/src
-  dir/src/f10
+  find: `*': $ENOENT$
   $ cat dir/src/f10
-  10
+  cat: dir/src/f10: $ENOENT$
+  [1]
 
   $ cd ..
 
 BUG: local-to-local narrow clones should work, but don't.
 
   $ hg clone --narrow master narrow-via-localpeer --noupdate --include "dir/src/f10"
-  requesting all changes
+  no changes found
   abort: server does not support narrow clones
   [255]
   $ hg tracked -R narrow-via-localpeer
@@ -83,12 +79,7 @@
 narrow clone a directory, tests/, except tests/t19
 
   $ hg clone --narrow ssh://user@dummy/master narrowdir --noupdate --include "dir/tests/" --exclude "dir/tests/t19"
-  requesting all changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 21 changesets with 19 changes to 19 files
-  new changesets *:* (glob)
+  no changes found
   $ cd narrowdir
   $ hg tracked
   I path:dir/tests
@@ -97,41 +88,16 @@
   I path:dir/tests
   X path:dir/tests/t19
   $ hg update
-  19 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ find * | sort
-  dir
-  dir/tests
-  dir/tests/t1
-  dir/tests/t10
-  dir/tests/t11
-  dir/tests/t12
-  dir/tests/t13
-  dir/tests/t14
-  dir/tests/t15
-  dir/tests/t16
-  dir/tests/t17
-  dir/tests/t18
-  dir/tests/t2
-  dir/tests/t20
-  dir/tests/t3
-  dir/tests/t4
-  dir/tests/t5
-  dir/tests/t6
-  dir/tests/t7
-  dir/tests/t8
-  dir/tests/t9
+  find: `*': $ENOENT$
 
   $ cd ..
 
 narrow clone everything but a directory (tests/)
 
   $ hg clone --narrow ssh://user@dummy/master narrowroot --noupdate --exclude "dir/tests"
-  requesting all changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 21 changesets with 20 changes to 20 files
-  new changesets *:* (glob)
+  no changes found
   $ cd narrowroot
   $ hg tracked
   I path:.
@@ -140,42 +106,16 @@
   I path:.
   X path:dir/tests
   $ hg update
-  20 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ find * | sort
-  dir
-  dir/src
-  dir/src/f1
-  dir/src/f10
-  dir/src/f11
-  dir/src/f12
-  dir/src/f13
-  dir/src/f14
-  dir/src/f15
-  dir/src/f16
-  dir/src/f17
-  dir/src/f18
-  dir/src/f19
-  dir/src/f2
-  dir/src/f20
-  dir/src/f3
-  dir/src/f4
-  dir/src/f5
-  dir/src/f6
-  dir/src/f7
-  dir/src/f8
-  dir/src/f9
+  find: `*': $ENOENT$
 
   $ cd ..
 
 narrow clone no paths at all
 
   $ hg clone --narrow ssh://user@dummy/master narrowempty --noupdate
-  requesting all changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 1 changesets with 0 changes to 0 files
-  new changesets * (glob)
+  no changes found
   $ cd narrowempty
   $ hg tracked
   $ hg update
@@ -187,59 +127,12 @@
 
 simple clone
   $ hg clone ssh://user@dummy/master simpleclone
-  requesting all changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 40 changesets with 40 changes to 40 files
-  new changesets * (glob)
+  no changes found
   updating to branch default
-  40 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd simpleclone
   $ find * | sort
-  dir
-  dir/src
-  dir/src/f1
-  dir/src/f10
-  dir/src/f11
-  dir/src/f12
-  dir/src/f13
-  dir/src/f14
-  dir/src/f15
-  dir/src/f16
-  dir/src/f17
-  dir/src/f18
-  dir/src/f19
-  dir/src/f2
-  dir/src/f20
-  dir/src/f3
-  dir/src/f4
-  dir/src/f5
-  dir/src/f6
-  dir/src/f7
-  dir/src/f8
-  dir/src/f9
-  dir/tests
-  dir/tests/t1
-  dir/tests/t10
-  dir/tests/t11
-  dir/tests/t12
-  dir/tests/t13
-  dir/tests/t14
-  dir/tests/t15
-  dir/tests/t16
-  dir/tests/t17
-  dir/tests/t18
-  dir/tests/t19
-  dir/tests/t2
-  dir/tests/t20
-  dir/tests/t3
-  dir/tests/t4
-  dir/tests/t5
-  dir/tests/t6
-  dir/tests/t7
-  dir/tests/t8
-  dir/tests/t9
+  find: `*': $ENOENT$
 
   $ cd ..
 
@@ -265,14 +158,9 @@
 
   $ hg clone ssh://user@dummy/master specfile --narrowspec narrowspecs
   reading narrowspec from '$TESTTMP/narrowspecs'
-  requesting all changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 23 changesets with 21 changes to 21 files
-  new changesets c13e3773edb4:26ce255d5b5d
+  no changes found
   updating to branch default
-  21 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd specfile
   $ hg tracked
   I path:dir/src/f12

test-narrow-commit.t#flat

--- c:/hgdev/src/tests/test-narrow-commit.t
+++ c:/hgdev/src/tests/test-narrow-commit.t#flat.err
@@ -87,6 +87,7 @@
   4d6a634d5ba06331a60c29ee0db8412490a54fcd 644   inside/f1
   7fb3bb6356d28d4dc352c5ba52d7350a81b6bd46 644   outside/f1 (flat !)
   d0f2f706468ab0e8bec7af87446835fb1b13511b 755 d outside/ (tree !)
+  7fb3bb6356d28d4dc352c5ba52d7350a81b6bd46 644   outside/f1
   $ hg commit -m 'modify inside/f1'
   created new head
   $ hg files -r .
@@ -95,6 +96,7 @@
   3f4197b4a11b9016e77ebc47fe566944885fd11b 644   inside/f1
   7fb3bb6356d28d4dc352c5ba52d7350a81b6bd46 644   outside/f1 (flat !)
   d0f2f706468ab0e8bec7af87446835fb1b13511b 755 d outside/ (tree !)
+  7fb3bb6356d28d4dc352c5ba52d7350a81b6bd46 644   outside/f1
 Some filesystems (notably FAT/exFAT only store timestamps with 2
 seconds of precision, so by sleeping for 3 seconds, we can ensure that
 the timestamps of files stored by dirstate will appear older than the

test-narrow-commit.t#tree

--- c:/hgdev/src/tests/test-narrow-commit.t
+++ c:/hgdev/src/tests/test-narrow-commit.t#tree.err
@@ -87,6 +87,7 @@
   4d6a634d5ba06331a60c29ee0db8412490a54fcd 644   inside/f1
   7fb3bb6356d28d4dc352c5ba52d7350a81b6bd46 644   outside/f1 (flat !)
   d0f2f706468ab0e8bec7af87446835fb1b13511b 755 d outside/ (tree !)
+  7fb3bb6356d28d4dc352c5ba52d7350a81b6bd46 644   outside/f1
   $ hg commit -m 'modify inside/f1'
   created new head
   $ hg files -r .
@@ -95,6 +96,7 @@
   3f4197b4a11b9016e77ebc47fe566944885fd11b 644   inside/f1
   7fb3bb6356d28d4dc352c5ba52d7350a81b6bd46 644   outside/f1 (flat !)
   d0f2f706468ab0e8bec7af87446835fb1b13511b 755 d outside/ (tree !)
+  7fb3bb6356d28d4dc352c5ba52d7350a81b6bd46 644   outside/f1
 Some filesystems (notably FAT/exFAT only store timestamps with 2
 seconds of precision, so by sleeping for 3 seconds, we can ensure that
 the timestamps of files stored by dirstate will appear older than the

test-narrow-copies.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-narrow-copies.t\n+++ c:/hgdev/src/tests/test-narrow-copies.t.err\n@@ -63,12 +63,86 @@\n   $ hg --config extensions.rebase= rebase -d tip\n   rebasing 3:4f84b666728c "add inside/f4"\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/4f84b666728c-4269b76e-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/4f84b666728c-4269b76e-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/4f84b666728c-41fe58ab-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\narrow\\.hg\\strip-backup/4f84b666728c-41fe58ab-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: narrow, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg co -q 0\n   $ echo modified > inside/f1\n   $ hg ci -qm \'modify inside/f1\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo new > inside/f5\n   $ hg ci -Aqm \'add inside/f5\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg --config extensions.rebase= rebase -d \'public()\' -r .\n-  rebasing 6:610b60178c28 tip "add inside/f5"\n-  saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/610b60178c28-65716a78-rebase.hg\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n', 2561, 2563, 'truncated \\uXXXX escape') decoding diff, sorry

test-narrow-exchange.t#lfs-off

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-narrow-exchange.t\n+++ c:/hgdev/src/tests/test-narrow-exchange.t#lfs-off.err\n@@ -103,10 +103,63 @@\n   remote: adding changesets\n   remote: adding manifests\n   remote: adding file changes\n-  remote: transaction abort!\n-  remote: rollback completed\n+  remote: ** unknown exception encountered, please report by visiting\n+  remote: ** https://mercurial-scm.org/wiki/BugTracker\n   remote: abort: data/inside2/f.i@4a1aa07735e6: unknown parent (reporevlogstore !)\n   remote: abort: data/inside2/f/index@4a1aa07735e6: no node (reposimplestore !)\n+  remote: ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  remote: ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  remote: ** Extensions loaded: narrow\n+  remote: Traceback (most recent call last):\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+  remote:     dispatch.run()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+  remote:     status = dispatch(req)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+  remote:     ret = _runcatch(req) or 0\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+  remote:     return _callcatch(ui, _runcatchfunc)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+  remote:     return scmutil.callcatch(ui, func)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+  remote:     return func()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+  remote:     return _dispatch(req)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+  remote:     lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+  remote:     ret = _runcommand(ui, options, cmd, d)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+  remote:     return cmdfunc()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+  remote:     d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+  remote:     return func(*args, **kwargs)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6403, in serve\n+  remote:     s.serve_forever()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 851, in serve_forever\n+  remote:     self.serveuntil(threading.Event())\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 856, in serveuntil\n+  remote:     _runsshserver(self._ui, self._repo, self._fin, self._fout, ev)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 699, in _runsshserver\n+  remote:     rsp = wireprotov1server.dispatch(repo, proto, request)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotov1server.py", line 83, in dispatch\n+  remote:     return func(repo, proto, *args)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotov1server.py", line 665, in unbundle\n+  remote:     repo, gen, their_heads, b\'serve\', proto.client()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 2645, in unbundle\n+  remote:     lockmod.release(lockandtr[2], lockandtr[1], lockandtr[0])\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+  remote:     lock.release()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+  remote:     self._abort()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+  remote:     entries = self.readjournal()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+  remote:     return func(self, *args, **kwds)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+  remote:     for l in self._file:\n+  remote: TypeError: \'mixedfilemodewrapper\' object is not iterable\n   abort: stream ended unexpectedly (got 0 bytes, expected 4)\n   [255]\n \n@@ -146,12 +199,9 @@\n   $ hg pull ssh://user@dummy/narrow2\n   pulling from ssh://user@dummy/narrow2\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files\n-  new changesets d78a96df731d\n-  (run \'hg update\' to get a working copy)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Check that the resulting history is valid in the full repo\n \n@@ -201,12 +251,9 @@\n   $ hg pull\n   pulling from ssh://user@dummy/master\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files\n-  new changesets * (glob)\n-  (run \'hg update\' to get a working copy)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n TODO: this should tell the user that their narrow clone does not have the\n necessary content to be able to push to the target\n \n@@ -214,9 +261,9 @@\n   $ hg push ssh://user@dummy/narrow2 || true\n   pushing to ssh://user@dummy/narrow2\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n+  no changes found\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   remote: added 1 changesets with 0 changes to 0 files (no-lfs-on !)\n   remote: error: pretxnchangegroup.lfs hook raised an exception: data/inside2/f.i@f59b4e021835: no match found (lfs-on !)\n   remote: transaction abort! (lfs-on !)\n', 2574, 2576, 'truncated \\uXXXX escape') decoding diff, sorry

test-narrow-exchange.t#lfs-on

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-narrow-exchange.t\n+++ c:/hgdev/src/tests/test-narrow-exchange.t#lfs-on.err\n@@ -103,10 +103,63 @@\n   remote: adding changesets\n   remote: adding manifests\n   remote: adding file changes\n-  remote: transaction abort!\n-  remote: rollback completed\n+  remote: ** unknown exception encountered, please report by visiting\n+  remote: ** https://mercurial-scm.org/wiki/BugTracker\n   remote: abort: data/inside2/f.i@4a1aa07735e6: unknown parent (reporevlogstore !)\n   remote: abort: data/inside2/f/index@4a1aa07735e6: no node (reposimplestore !)\n+  remote: ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  remote: ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  remote: ** Extensions loaded: narrow\n+  remote: Traceback (most recent call last):\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+  remote:     dispatch.run()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+  remote:     status = dispatch(req)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+  remote:     ret = _runcatch(req) or 0\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+  remote:     return _callcatch(ui, _runcatchfunc)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+  remote:     return scmutil.callcatch(ui, func)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+  remote:     return func()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+  remote:     return _dispatch(req)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+  remote:     lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+  remote:     ret = _runcommand(ui, options, cmd, d)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+  remote:     return cmdfunc()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+  remote:     d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+  remote:     return func(*args, **kwargs)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6403, in serve\n+  remote:     s.serve_forever()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 851, in serve_forever\n+  remote:     self.serveuntil(threading.Event())\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 856, in serveuntil\n+  remote:     _runsshserver(self._ui, self._repo, self._fin, self._fout, ev)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 699, in _runsshserver\n+  remote:     rsp = wireprotov1server.dispatch(repo, proto, request)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotov1server.py", line 83, in dispatch\n+  remote:     return func(repo, proto, *args)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotov1server.py", line 665, in unbundle\n+  remote:     repo, gen, their_heads, b\'serve\', proto.client()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 2645, in unbundle\n+  remote:     lockmod.release(lockandtr[2], lockandtr[1], lockandtr[0])\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+  remote:     lock.release()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+  remote:     self._abort()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+  remote:     entries = self.readjournal()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+  remote:     return func(self, *args, **kwds)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+  remote:     for l in self._file:\n+  remote: TypeError: \'mixedfilemodewrapper\' object is not iterable\n   abort: stream ended unexpectedly (got 0 bytes, expected 4)\n   [255]\n \n@@ -146,12 +199,9 @@\n   $ hg pull ssh://user@dummy/narrow2\n   pulling from ssh://user@dummy/narrow2\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files\n-  new changesets d78a96df731d\n-  (run \'hg update\' to get a working copy)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Check that the resulting history is valid in the full repo\n \n@@ -201,12 +251,9 @@\n   $ hg pull\n   pulling from ssh://user@dummy/master\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files\n-  new changesets * (glob)\n-  (run \'hg update\' to get a working copy)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n TODO: this should tell the user that their narrow clone does not have the\n necessary content to be able to push to the target\n \n@@ -214,9 +261,9 @@\n   $ hg push ssh://user@dummy/narrow2 || true\n   pushing to ssh://user@dummy/narrow2\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n+  no changes found\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   remote: added 1 changesets with 0 changes to 0 files (no-lfs-on !)\n   remote: error: pretxnchangegroup.lfs hook raised an exception: data/inside2/f.i@f59b4e021835: no match found (lfs-on !)\n   remote: transaction abort! (lfs-on !)\n', 2573, 2575, 'truncated \\uXXXX escape') decoding diff, sorry

test-narrow-expanddirstate.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-narrow-expanddirstate.t\n+++ c:/hgdev/src/tests/test-narrow-expanddirstate.t.err\n@@ -135,11 +135,57 @@\n   patching file patchdir/f3\n   Hunk #1 FAILED at 0\n   1 out of 1 hunks FAILED -- saving rejects to file patchdir/f3.rej\n-  abort: patch failed to apply\n-  [255]\n+  ** Unknown exception encountered with possibly-broken third-party extension "expand_extension" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "expand_extension" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: expand_extension, narrow\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4163, in import_\n+      repo.savecommitmessage(b\'\\n* * *\\n\'.join(msgs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg tracked | grep patchdir\n-  [1]\n+  I path:patchdir\n   $ hg files | grep patchdir > /dev/null\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [1]\n \n Let\'s make it apply cleanly and see that it *did* expand properly\n@@ -151,9 +197,14 @@\n   > +patched_this\n   > EOF\n   $ PATCHINCLUDES=path:patchdir hg import -p0 -e "$TESTTMP/foo.patch" -m message\n-  applying $TESTTMP/foo.patch\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat patchdir/f3\n-  patched_this\n+  patch_this\n   $ hg tracked | grep patchdir\n   I path:patchdir\n   $ hg files | grep patchdir > /dev/null\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [1]\n', 2403, 2405, 'truncated \\uXXXX escape') decoding diff, sorry

test-narrow-merge.t#flat

--- c:/hgdev/src/tests/test-narrow-merge.t
+++ c:/hgdev/src/tests/test-narrow-merge.t#flat.err
@@ -86,6 +86,7 @@
   $ hg merge 'desc("modify outside/f1")'
   abort: merge affects file 'outside/f1' outside narrow, which is not yet supported (flat !)
   abort: merge affects file 'outside/' outside narrow, which is not yet supported (tree !)
+  abort: merge affects file 'outside/f1' outside narrow, which is not yet supported
   (merging in the other direction may work)
   [255]
 
@@ -101,4 +102,5 @@
   $ hg merge 'desc("conflicting outside/f1")'
   abort: conflict in file 'outside/f1' is outside narrow clone (flat !)
   abort: conflict in file 'outside/' is outside narrow clone (tree !)
+  abort: conflict in file 'outside/f1' is outside narrow clone
   [255]

test-narrow-merge.t#tree

--- c:/hgdev/src/tests/test-narrow-merge.t
+++ c:/hgdev/src/tests/test-narrow-merge.t#tree.err
@@ -86,6 +86,7 @@
   $ hg merge 'desc("modify outside/f1")'
   abort: merge affects file 'outside/f1' outside narrow, which is not yet supported (flat !)
   abort: merge affects file 'outside/' outside narrow, which is not yet supported (tree !)
+  abort: merge affects file 'outside/f1' outside narrow, which is not yet supported
   (merging in the other direction may work)
   [255]
 
@@ -101,4 +102,5 @@
   $ hg merge 'desc("conflicting outside/f1")'
   abort: conflict in file 'outside/f1' is outside narrow clone (flat !)
   abort: conflict in file 'outside/' is outside narrow clone (tree !)
+  abort: conflict in file 'outside/f1' is outside narrow clone
   [255]

test-narrow-patterns.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-narrow-patterns.t\n+++ c:/hgdev/src/tests/test-narrow-patterns.t.err\n@@ -136,22 +136,73 @@\n   comparing with ssh://user@dummy/master\n   searching for changes\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 9 changesets with 6 changes to 6 files\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/47f480a08324-f6243d3e-widen.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: narrow\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowcommands.py", line 656, in trackedcmd\n+      newexcludes,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowcommands.py", line 400, in _widen\n+      bundle2.processbundle(repo, bundle, op=op)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\bundle2.py", line 479, in processbundle\n+      processparts(repo, op, unbundler)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\bundle2.py", line 487, in processparts\n+      _processpart(op, part)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\bundle2.py", line 561, in _processpart\n+      handler(op, part)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowbundle2.py", line 254, in _handlechangespec\n+      op.ui, repo, list(clkills), backup=True, topic=b\'widen\'\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg tracked\n   I path:dir1\n   I path:dir2\n+  X path:dir1/dirA\n   X path:dir1/dirB\n   X path:dir2/dirA\n   X path:dir2/dirB\n   $ find * | sort\n   dir1\n   dir1/bar\n-  dir1/dirA\n-  dir1/dirA/bar\n-  dir1/dirA/foo\n   dir1/foo\n   dir2\n   dir2/bar\n@@ -165,13 +216,7 @@\n #endif\n \n   $ hg log -G -T \'{rev} {node|short}{if(ellipsis, "...")} {files}\\n\'\n-  @  8 c87ca422d521 dir1/dirA/foo\n-  |\n-  o  7 951b8a83924e... dir2/dirB/bar\n-  |\n-  o  6 623466a5f475 dir1/dirA/bar\n-  |\n-  o  5 06ff3a5be997 dir1/dirA/foo\n+  o  5 c87ca422d521... dir1/dirA/foo\n   |\n   o  4 33227af02764 dir2/bar\n   |\n@@ -193,41 +238,25 @@\n   deleting data/dir1/dirA/bar.i (reporevlogstore !)\n   deleting data/dir1/dirA/bar/0eca1d0cbdaea4651d1d04d71976a6d2d9bfaae5 (reposimplestore !)\n   deleting data/dir1/dirA/bar/index (reposimplestore !)\n-  saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 11 changesets with 7 changes to 7 files\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg tracked\n   I path:dir1\n   I path:dir2\n-  X path:dir1/dirA/bar\n+  X path:dir1/dirA\n   X path:dir1/dirB\n   X path:dir2/dirA\n-  $ find * | sort\n-  dir1\n-  dir1/bar\n-  dir1/dirA\n-  dir1/dirA/foo\n+  X path:dir2/dirB\n+  $ find * | sort\n+  dir1\n+  dir1/bar\n   dir1/foo\n   dir2\n   dir2/bar\n-  dir2/dirB\n-  dir2/dirB/bar\n-  dir2/dirB/foo\n-  dir2/foo\n-  $ hg log -G -T \'{rev} {node|short}{if(ellipsis, "...")} {files}\\n\'\n-  @  10 c87ca422d521 dir1/dirA/foo\n-  |\n-  o  9 951b8a83924e dir2/dirB/bar\n-  |\n-  o  8 01ae5a51b563 dir2/dirB/foo\n-  |\n-  o  7 5eababdf0ac5... dir2/dirA/bar\n-  |\n-  o  6 623466a5f475... dir1/dirA/bar\n-  |\n-  o  5 06ff3a5be997 dir1/dirA/foo\n+  dir2/foo\n+  $ hg log -G -T \'{rev} {node|short}{if(ellipsis, "...")} {files}\\n\'\n+  o  5 c87ca422d521... dir1/dirA/foo\n   |\n   o  4 33227af02764 dir2/bar\n   |\n@@ -245,50 +274,30 @@\n   $ hg tracked --removeexclude dir2/dirA --addexclude dir1/dirA\n   comparing with ssh://user@dummy/master\n   searching for changes\n-  looking for local changes to affected paths\n+  saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/47f480a08324-f6243d3e-widen.hg\n   deleting data/dir1/dirA/foo.i (reporevlogstore !)\n   deleting data/dir1/dirA/foo/162caeb3d55dceb1fee793aa631ac8c73fcb8b5e (reposimplestore !)\n   deleting data/dir1/dirA/foo/index (reposimplestore !)\n-  saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 13 changesets with 8 changes to 8 files\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/47f480a08324-f6243d3e-widen.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg tracked\n   I path:dir1\n   I path:dir2\n   X path:dir1/dirA\n-  X path:dir1/dirA/bar\n   X path:dir1/dirB\n+  X path:dir2/dirA\n+  X path:dir2/dirB\n   $ find * | sort\n   dir1\n   dir1/bar\n   dir1/foo\n   dir2\n   dir2/bar\n-  dir2/dirA\n-  dir2/dirA/bar\n-  dir2/dirA/foo\n-  dir2/dirB\n-  dir2/dirB/bar\n-  dir2/dirB/foo\n-  dir2/foo\n-  $ hg log -G -T \'{rev} {node|short}{if(ellipsis, "...")} {files}\\n\'\n-  @  12 c87ca422d521... dir1/dirA/foo\n-  |\n-  o  11 951b8a83924e dir2/dirB/bar\n-  |\n-  o  10 01ae5a51b563 dir2/dirB/foo\n-  |\n-  o  9 5eababdf0ac5 dir2/dirA/bar\n-  |\n-  o  8 99d690663739 dir2/dirA/foo\n-  |\n-  o  7 8e80155d5445... dir1/dirB/bar\n-  |\n-  o  6 623466a5f475... dir1/dirA/bar\n-  |\n-  o  5 06ff3a5be997... dir1/dirA/foo\n+  dir2/foo\n+  $ hg log -G -T \'{rev} {node|short}{if(ellipsis, "...")} {files}\\n\'\n+  o  5 c87ca422d521... dir1/dirA/foo\n   |\n   o  4 33227af02764 dir2/bar\n   |\n@@ -307,46 +316,26 @@\n   comparing with ssh://user@dummy/master\n   searching for changes\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 13 changesets with 9 changes to 9 files\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/47f480a08324-f6243d3e-widen.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg tracked\n   I path:dir1\n   I path:dir2\n-  X path:dir1/dirA/bar\n+  X path:dir1/dirA\n   X path:dir1/dirB\n-  $ find * | sort\n-  dir1\n-  dir1/bar\n-  dir1/dirA\n-  dir1/dirA/foo\n+  X path:dir2/dirA\n+  X path:dir2/dirB\n+  $ find * | sort\n+  dir1\n+  dir1/bar\n   dir1/foo\n   dir2\n   dir2/bar\n-  dir2/dirA\n-  dir2/dirA/bar\n-  dir2/dirA/foo\n-  dir2/dirB\n-  dir2/dirB/bar\n-  dir2/dirB/foo\n-  dir2/foo\n-  $ hg log -G -T \'{rev} {node|short}{if(ellipsis, "...")} {files}\\n\'\n-  @  12 c87ca422d521 dir1/dirA/foo\n-  |\n-  o  11 951b8a83924e dir2/dirB/bar\n-  |\n-  o  10 01ae5a51b563 dir2/dirB/foo\n-  |\n-  o  9 5eababdf0ac5 dir2/dirA/bar\n-  |\n-  o  8 99d690663739 dir2/dirA/foo\n-  |\n-  o  7 8e80155d5445... dir1/dirB/bar\n-  |\n-  o  6 623466a5f475... dir1/dirA/bar\n-  |\n-  o  5 06ff3a5be997 dir1/dirA/foo\n+  dir2/foo\n+  $ hg log -G -T \'{rev} {node|short}{if(ellipsis, "...")} {files}\\n\'\n+  o  5 c87ca422d521... dir1/dirA/foo\n   |\n   o  4 33227af02764 dir2/bar\n   |\n@@ -382,40 +371,78 @@\n   comparing with ssh://user@dummy/master\n   searching for changes\n   saved backup bundle to $TESTTMP/narrow2/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 10 changesets with 6 changes to 6 files\n-  $ find * | sort\n-  dir1\n-  dir1/bar\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow2\\.hg\\strip-backup/c87ca422d521-d64bc3df-widen.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: narrow\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowcommands.py", line 656, in trackedcmd\n+      newexcludes,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowcommands.py", line 400, in _widen\n+      bundle2.processbundle(repo, bundle, op=op)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\bundle2.py", line 479, in processbundle\n+      processparts(repo, op, unbundler)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\bundle2.py", line 487, in processparts\n+      _processpart(op, part)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\bundle2.py", line 561, in _processpart\n+      handler(op, part)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowbundle2.py", line 254, in _handlechangespec\n+      op.ui, repo, list(clkills), backup=True, topic=b\'widen\'\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ find * | sort\n+  dir1\n   dir1/dirA\n   dir1/dirA/bar\n   dir1/dirA/foo\n-  dir1/dirB\n-  dir1/dirB/bar\n-  dir1/dirB/foo\n-  dir1/foo\n-  $ hg log -G -T \'{rev} {node|short}{if(ellipsis, "...")} {files}\\n\'\n-  @  9 c87ca422d521 dir1/dirA/foo\n-  |\n-  o  8 951b8a83924e... dir2/dirB/bar\n-  |\n-  o  7 8e80155d5445 dir1/dirB/bar\n-  |\n-  o  6 406760310428 dir1/dirB/foo\n-  |\n-  o  5 623466a5f475 dir1/dirA/bar\n-  |\n-  o  4 06ff3a5be997 dir1/dirA/foo\n-  |\n-  o  3 33227af02764... dir2/bar\n-  |\n-  o  2 594bc4b13d4a dir1/bar\n-  |\n-  o  1 47f480a08324 dir1/foo\n-  |\n-  o  0 2a4f0c3b67da... root\n+  $ hg log -G -T \'{rev} {node|short}{if(ellipsis, "...")} {files}\\n\'\n+  o  4 c87ca422d521 dir1/dirA/foo\n+  |\n+  o  3 951b8a83924e... dir2/dirB/bar\n+  |\n+  o  2 623466a5f475 dir1/dirA/bar\n+  |\n+  o  1 06ff3a5be997 dir1/dirA/foo\n+  |\n+  o  0 33227af02764... dir2/bar\n   \n \n Illegal patterns are rejected\n@@ -432,7 +459,6 @@\n \n   $ cat .hg/store/narrowspec\n   [include]\n-  path:dir1\n   path:dir1/dirA\n   [exclude]\n \n', 2384, 2386, 'truncated \\uXXXX escape') decoding diff, sorry

test-narrow-pull.t

--- c:/hgdev/src/tests/test-narrow-pull.t
+++ c:/hgdev/src/tests/test-narrow-pull.t.err
@@ -12,27 +12,22 @@
   >   hg add "f$x"
   >   hg commit -m "Commit f$x"
   > done
+  /usr/bin/env: python3: $ENOENT$
   $ cd ..
 
 narrow clone a couple files, f2 and f8
 
   $ hg clone --narrow ssh://user@dummy/master narrow --include "f2" --include "f8"
-  requesting all changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 5 changesets with 2 changes to 2 files
-  new changesets *:* (glob)
+  no changes found
   updating to branch default
-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd narrow
   $ ls -A
   .hg
-  f2
-  f8
   $ cat f2 f8
-  2
-  8
+  cat: f2: $ENOENT$
+  cat: f8: $ENOENT$
+  [1]
 
   $ cd ..
 
@@ -44,11 +39,13 @@
   >   echo "update#1 $x" >> "f$x"
   >   hg commit -m "Update#1 to f$x" "f$x"
   > done
+  /usr/bin/env: python3: $ENOENT$
   $ for x in `$TESTDIR/seq.py 10`
   > do
   >   echo "update#2 $x" >> "f$x"
   >   hg commit -m "Update#2 to f$x" "f$x"
   > done
+  /usr/bin/env: python3: $ENOENT$
   $ cd ..
 
 look for incoming changes
@@ -56,90 +53,40 @@
   $ cd narrow
   $ hg incoming --limit 3
   comparing with ssh://user@dummy/master
-  searching for changes
-  changeset:   5:ddc055582556
-  user:        test
-  date:        Thu Jan 01 00:00:00 1970 +0000
-  summary:     Update#1 to f1
-  
-  changeset:   6:f66eb5ad621d
-  user:        test
-  date:        Thu Jan 01 00:00:00 1970 +0000
-  summary:     Update#1 to f2
-  
-  changeset:   7:c42ecff04e99
-  user:        test
-  date:        Thu Jan 01 00:00:00 1970 +0000
-  summary:     Update#1 to f3
-  
+  no changes found
+  [1]
 
 Interrupting the pull is safe
   $ hg --config hooks.pretxnchangegroup.bad=false pull -q
-  transaction abort!
-  rollback completed
-  abort: pretxnchangegroup.bad hook exited with status 1
-  [255]
   $ hg id
-  223311e70a6f tip
+  000000000000 tip
 
 pull new changes down to the narrow clone. Should get 8 new changesets: 4
 relevant to the narrow spec, and 4 ellipsis nodes gluing them all together.
 
   $ hg pull
   pulling from ssh://user@dummy/master
-  searching for changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 9 changesets with 4 changes to 2 files
-  new changesets *:* (glob)
-  (run 'hg update' to get a working copy)
+  no changes found
   $ hg log -T '{rev}: {desc}
'
-  13: Update#2 to f10
-  12: Update#2 to f8
-  11: Update#2 to f7
-  10: Update#2 to f2
-  9: Update#2 to f1
-  8: Update#1 to f8
-  7: Update#1 to f7
-  6: Update#1 to f2
-  5: Update#1 to f1
-  4: Commit f10
-  3: Commit f8
-  2: Commit f7
-  1: Commit f2
-  0: Commit f1
   $ hg update tip
-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
 add a change and push it
 
   $ echo "update#3 2" >> f2
   $ hg commit -m "Update#3 to f2" f2
+  abort: f2: file not tracked!
+  [10]
   $ hg log f2 -T '{rev}: {desc}
'
-  14: Update#3 to f2
-  10: Update#2 to f2
-  6: Update#1 to f2
-  1: Commit f2
   $ hg push
   pushing to ssh://user@dummy/master
-  searching for changes
-  remote: adding changesets
-  remote: adding manifests
-  remote: adding file changes
-  remote: added 1 changesets with 1 changes to 1 files
+  no changes found
+  [1]
   $ cd ..
 
   $ cd master
   $ hg log f2 -T '{rev}: {desc}
'
-  30: Update#3 to f2
-  21: Update#2 to f2
-  11: Update#1 to f2
-  1: Commit f2
   $ hg log -l 3 -T '{rev}: {desc}
'
-  30: Update#3 to f2
-  29: Update#2 to f10
-  28: Update#2 to f9
 
 Can pull into repo with a single commit
 
@@ -147,7 +94,5 @@
   $ hg clone -q --narrow ssh://user@dummy/master narrow2 --include "f1" -r 0
   $ cd narrow2
   $ hg pull -q -r 1
-  transaction abort!
-  rollback completed
-  abort: pull failed on remote
+  abort: unknown revision '1'
   [255]

test-narrow-rebase.t#continuecommand

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-narrow-rebase.t\n+++ c:/hgdev/src/tests/test-narrow-rebase.t#continuecommand.err\n@@ -63,37 +63,124 @@\n   $ hg rebase -d \'desc("modify inside/f1")\'\n   rebasing 5:c2f36d04e05d tip "modify inside/f2"\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-rebase.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/c2f36d04e05d-ef379dc8-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/c2f36d04e05d-507408d2-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\narrow\\.hg\\strip-backup/c2f36d04e05d-507408d2-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: narrow, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Can rebase onto conflicting changes inside narrow spec\n \n   $ hg update -q 0\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo conflicting > inside/f1\n   $ hg ci -qm \'conflicting inside/f1\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg rebase -d \'desc("modify inside/f1")\' 2>&1 | egrep -v \'(warning:|incomplete!)\'\n-  rebasing 6:cdce97fbf653 tip "conflicting inside/f1"\n-  merging inside/f1\n-  unresolved conflicts (see \'hg resolve\', then \'hg rebase --continue\')\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n   $ echo modified3 > inside/f1\n   $ hg resolve -m 2>&1 | grep -v continue:\n-  (no more unresolved files)\n+  abort: resolve command not applicable when not merging\n   $ hg continue\n-  rebasing 6:cdce97fbf653 tip "conflicting inside/f1"\n-  saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-rebase.hg (glob)\n+  already rebased 5:c2f36d04e05d "modify inside/f2" as fe608a86f45b\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Can rebase onto non-conflicting changes outside narrow spec\n \n   $ hg update -q 0\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo modified > inside/f2\n   $ hg ci -qm \'modify inside/f2\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg rebase -d \'desc("modify outside/f1")\'\n-  rebasing 7:c2f36d04e05d tip "modify inside/f2"\n-  saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-rebase.hg (glob)\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n Rebase interrupts on conflicting changes outside narrow spec\n \n   $ hg update -q \'desc("conflicting outside/f1")\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg phase -f -d .\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg rebase -d \'desc("modify outside/f1")\'\n-  rebasing 4:707c035aadb6 "conflicting outside/f1"\n-  abort: conflict in file \'outside/f1\' is outside narrow clone\n-  [255]\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n', 2567, 2569, 'truncated \\uXXXX escape') decoding diff, sorry

test-narrow-rebase.t#continueflag

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-narrow-rebase.t\n+++ c:/hgdev/src/tests/test-narrow-rebase.t#continueflag.err\n@@ -63,37 +63,124 @@\n   $ hg rebase -d \'desc("modify inside/f1")\'\n   rebasing 5:c2f36d04e05d tip "modify inside/f2"\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-rebase.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/c2f36d04e05d-ef379dc8-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/c2f36d04e05d-507408d2-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\narrow\\.hg\\strip-backup/c2f36d04e05d-507408d2-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: narrow, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Can rebase onto conflicting changes inside narrow spec\n \n   $ hg update -q 0\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo conflicting > inside/f1\n   $ hg ci -qm \'conflicting inside/f1\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg rebase -d \'desc("modify inside/f1")\' 2>&1 | egrep -v \'(warning:|incomplete!)\'\n-  rebasing 6:cdce97fbf653 tip "conflicting inside/f1"\n-  merging inside/f1\n-  unresolved conflicts (see \'hg resolve\', then \'hg rebase --continue\')\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n   $ echo modified3 > inside/f1\n   $ hg resolve -m 2>&1 | grep -v continue:\n-  (no more unresolved files)\n+  abort: resolve command not applicable when not merging\n   $ hg continue\n-  rebasing 6:cdce97fbf653 tip "conflicting inside/f1"\n-  saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-rebase.hg (glob)\n+  already rebased 5:c2f36d04e05d "modify inside/f2" as fe608a86f45b\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Can rebase onto non-conflicting changes outside narrow spec\n \n   $ hg update -q 0\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo modified > inside/f2\n   $ hg ci -qm \'modify inside/f2\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg rebase -d \'desc("modify outside/f1")\'\n-  rebasing 7:c2f36d04e05d tip "modify inside/f2"\n-  saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-rebase.hg (glob)\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n Rebase interrupts on conflicting changes outside narrow spec\n \n   $ hg update -q \'desc("conflicting outside/f1")\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg phase -f -d .\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg rebase -d \'desc("modify outside/f1")\'\n-  rebasing 4:707c035aadb6 "conflicting outside/f1"\n-  abort: conflict in file \'outside/f1\' is outside narrow clone\n-  [255]\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n', 2564, 2566, 'truncated \\uXXXX escape') decoding diff, sorry

test-narrow-share.t#flat#normal

--- c:/hgdev/src/tests/test-narrow-share.t
+++ c:/hgdev/src/tests/test-narrow-share.t#flat#normal.err
@@ -29,6 +29,7 @@
   >   hg add d$x/f
   >   hg commit -m "add d$x/f"
   > done
+  /usr/bin/env: python3: $ENOENT$
   $ cd ..
 
   $ hg clone --narrow ssh://user@dummy/remote main -q @@ -39,17 +40,14 @@
 
   $ hg share main share
   updating working directory
-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg -R share tracked
   I path:d1
   I path:d3
   I path:d5
   I path:d7
   $ hg -R share files
-  share/d1/f
-  share/d3/f
-  share/d5/f
-  share/d7/f
+  [1]
 
 Narrow the share and check that the main repo's working copy gets updated
 
@@ -57,40 +55,33 @@
   $ sleep 2
   $ hg -R main st
   $ hg -R main debugdirstate --no-dates
-  n 644          2 set                 d1/f
-  n 644          2 set                 d3/f
-  n 644          2 set                 d5/f
-  n 644          2 set                 d7/f
 # Make d3/f dirty
   $ echo x >> main/d3/f
+  $TESTTMP.sh: line 44: main/d3/f: $ENOENT$
+  [1]
   $ echo y >> main/d3/g
+  $TESTTMP.sh: line 46: main/d3/g: $ENOENT$
+  [1]
   $ touch main/d3/ignored
+  touch: cannot touch `main/d3/ignored': $ENOENT$
+  [1]
   $ touch main/d3/untracked
+  touch: cannot touch `main/d3/untracked': $ENOENT$
+  [1]
   $ hg add main/d3/g
+  main/d3/g: $ENOTDIR$
+  [1]
   $ hg -R main st
-  M d3/f
-  A d3/g
-  ? d3/untracked
 # Make d5/f not match the dirstate timestamp even though it's clean
   $ sleep 2
   $ hg -R main st
-  M d3/f
-  A d3/g
-  ? d3/untracked
   $ hg -R main debugdirstate --no-dates
-  n 644          2 set                 d1/f
-  n 644          2 set                 d3/f
-  a   0         -1 unset               d3/g
-  n 644          2 set                 d5/f
-  n 644          2 set                 d7/f
   $ touch main/d5/f
+  touch: cannot touch `main/d5/f': $ENOENT$
+  [1]
   $ hg -R share tracked --removeinclude d1 --removeinclude d3 --removeinclude d5
   comparing with ssh://user@dummy/remote
-  searching for changes
   looking for local changes to affected paths
-  deleting data/d1/f.i
-  deleting data/d3/f.i
-  deleting data/d5/f.i
   deleting meta/d1/00manifest.i (tree !)
   deleting meta/d3/00manifest.i (tree !)
   deleting meta/d5/00manifest.i (tree !)
@@ -101,23 +92,13 @@
   (run 'hg tracked --update-working-copy')
   [255]
   $ hg -R main tracked --update-working-copy
-  not deleting possibly dirty file d3/f
-  not deleting possibly dirty file d3/g
-  not deleting possibly dirty file d5/f
-  not deleting unknown file d3/untracked
-  not deleting ignored file d3/ignored
 # d1/f, d3/f, d3/g and d5/f should no longer be reported
   $ hg -R main files
-  main/d7/f
+  [1]
 # d1/f should no longer be there, d3/f should be since it was dirty, d3/g should be there since
 # it was added, and d5/f should be since we couldn't be sure it was clean
   $ find main/d* -type f | sort
-  main/d3/f
-  main/d3/g
-  main/d3/ignored
-  main/d3/untracked
-  main/d5/f
-  main/d7/f
+  find: `main/d*': $ENOENT$
 
 Widen the share and check that the main repo's working copy gets updated
 
@@ -127,9 +108,7 @@
   I path:d3
   I path:d7
   $ hg -R share files
-  share/d1/f
-  share/d3/f
-  share/d7/f
+  [1]
   $ hg -R main tracked
   I path:d1
   I path:d3
@@ -141,23 +120,15 @@
   $ hg -R main tracked --update-working-copy
 # d1/f, d3/f should be back
   $ hg -R main files
-  main/d1/f
-  main/d3/f
-  main/d7/f
+  [1]
 # d3/f should be modified (not clobbered by the widening), and d3/g should be untracked
   $ hg -R main st --all
-  M d3/f
-  ? d3/g
-  ? d3/untracked
-  I d3/ignored
-  C d1/f
-  C d7/f
 
 We should also be able to unshare without breaking everything:
 
   $ hg share main share-unshare
   updating working directory
-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd share-unshare
   $ hg unshare
   $ hg verify
@@ -166,23 +137,28 @@
   checking directory manifests (tree !)
   crosschecking files in changesets and manifests
   checking files
-  checked 11 changesets with 3 changes to 3 files
+  checked 0 changesets with 0 changes to 0 files
   $ cd ..
 
 Dirstate should be left alone when upgrading from version of hg that didn't support narrow+share
 
   $ hg share main share-upgrade
   updating working directory
-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd share-upgrade
   $ echo x >> d1/f
+  $TESTTMP.sh: line 106: d1/f: $ENOENT$
+  [1]
   $ echo y >> d3/g
+  $TESTTMP.sh: line 108: d3/g: $ENOENT$
+  [1]
   $ hg add d3/g
+  d3/g: $ENOTDIR$
+  [1]
   $ hg rm d7/f
+  d7/f: $ENOTDIR$
+  [1]
   $ hg st
-  M d1/f
-  A d3/g
-  R d7/f
 Make it look like a repo from before narrow+share was supported
   $ rm .hg/narrowspec.dirstate
   $ hg ci -Am test
@@ -191,7 +167,4 @@
   [255]
   $ hg tracked --update-working-copy
   $ hg st
-  M d1/f
-  A d3/g
-  R d7/f
   $ cd ..

test-narrow-share.t#flat#safe

--- c:/hgdev/src/tests/test-narrow-share.t
+++ c:/hgdev/src/tests/test-narrow-share.t#flat#safe.err
@@ -29,6 +29,7 @@
   >   hg add d$x/f
   >   hg commit -m "add d$x/f"
   > done
+  /usr/bin/env: python3: $ENOENT$
   $ cd ..
 
   $ hg clone --narrow ssh://user@dummy/remote main -q @@ -39,17 +40,14 @@
 
   $ hg share main share
   updating working directory
-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg -R share tracked
   I path:d1
   I path:d3
   I path:d5
   I path:d7
   $ hg -R share files
-  share/d1/f
-  share/d3/f
-  share/d5/f
-  share/d7/f
+  [1]
 
 Narrow the share and check that the main repo's working copy gets updated
 
@@ -57,40 +55,33 @@
   $ sleep 2
   $ hg -R main st
   $ hg -R main debugdirstate --no-dates
-  n 644          2 set                 d1/f
-  n 644          2 set                 d3/f
-  n 644          2 set                 d5/f
-  n 644          2 set                 d7/f
 # Make d3/f dirty
   $ echo x >> main/d3/f
+  $TESTTMP.sh: line 44: main/d3/f: $ENOENT$
+  [1]
   $ echo y >> main/d3/g
+  $TESTTMP.sh: line 46: main/d3/g: $ENOENT$
+  [1]
   $ touch main/d3/ignored
+  touch: cannot touch `main/d3/ignored': $ENOENT$
+  [1]
   $ touch main/d3/untracked
+  touch: cannot touch `main/d3/untracked': $ENOENT$
+  [1]
   $ hg add main/d3/g
+  main/d3/g: $ENOTDIR$
+  [1]
   $ hg -R main st
-  M d3/f
-  A d3/g
-  ? d3/untracked
 # Make d5/f not match the dirstate timestamp even though it's clean
   $ sleep 2
   $ hg -R main st
-  M d3/f
-  A d3/g
-  ? d3/untracked
   $ hg -R main debugdirstate --no-dates
-  n 644          2 set                 d1/f
-  n 644          2 set                 d3/f
-  a   0         -1 unset               d3/g
-  n 644          2 set                 d5/f
-  n 644          2 set                 d7/f
   $ touch main/d5/f
+  touch: cannot touch `main/d5/f': $ENOENT$
+  [1]
   $ hg -R share tracked --removeinclude d1 --removeinclude d3 --removeinclude d5
   comparing with ssh://user@dummy/remote
-  searching for changes
   looking for local changes to affected paths
-  deleting data/d1/f.i
-  deleting data/d3/f.i
-  deleting data/d5/f.i
   deleting meta/d1/00manifest.i (tree !)
   deleting meta/d3/00manifest.i (tree !)
   deleting meta/d5/00manifest.i (tree !)
@@ -101,23 +92,13 @@
   (run 'hg tracked --update-working-copy')
   [255]
   $ hg -R main tracked --update-working-copy
-  not deleting possibly dirty file d3/f
-  not deleting possibly dirty file d3/g
-  not deleting possibly dirty file d5/f
-  not deleting unknown file d3/untracked
-  not deleting ignored file d3/ignored
 # d1/f, d3/f, d3/g and d5/f should no longer be reported
   $ hg -R main files
-  main/d7/f
+  [1]
 # d1/f should no longer be there, d3/f should be since it was dirty, d3/g should be there since
 # it was added, and d5/f should be since we couldn't be sure it was clean
   $ find main/d* -type f | sort
-  main/d3/f
-  main/d3/g
-  main/d3/ignored
-  main/d3/untracked
-  main/d5/f
-  main/d7/f
+  find: `main/d*': $ENOENT$
 
 Widen the share and check that the main repo's working copy gets updated
 
@@ -127,9 +108,7 @@
   I path:d3
   I path:d7
   $ hg -R share files
-  share/d1/f
-  share/d3/f
-  share/d7/f
+  [1]
   $ hg -R main tracked
   I path:d1
   I path:d3
@@ -141,23 +120,15 @@
   $ hg -R main tracked --update-working-copy
 # d1/f, d3/f should be back
   $ hg -R main files
-  main/d1/f
-  main/d3/f
-  main/d7/f
+  [1]
 # d3/f should be modified (not clobbered by the widening), and d3/g should be untracked
   $ hg -R main st --all
-  M d3/f
-  ? d3/g
-  ? d3/untracked
-  I d3/ignored
-  C d1/f
-  C d7/f
 
 We should also be able to unshare without breaking everything:
 
   $ hg share main share-unshare
   updating working directory
-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd share-unshare
   $ hg unshare
   $ hg verify
@@ -166,23 +137,28 @@
   checking directory manifests (tree !)
   crosschecking files in changesets and manifests
   checking files
-  checked 11 changesets with 3 changes to 3 files
+  checked 0 changesets with 0 changes to 0 files
   $ cd ..
 
 Dirstate should be left alone when upgrading from version of hg that didn't support narrow+share
 
   $ hg share main share-upgrade
   updating working directory
-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd share-upgrade
   $ echo x >> d1/f
+  $TESTTMP.sh: line 106: d1/f: $ENOENT$
+  [1]
   $ echo y >> d3/g
+  $TESTTMP.sh: line 108: d3/g: $ENOENT$
+  [1]
   $ hg add d3/g
+  d3/g: $ENOTDIR$
+  [1]
   $ hg rm d7/f
+  d7/f: $ENOTDIR$
+  [1]
   $ hg st
-  M d1/f
-  A d3/g
-  R d7/f
 Make it look like a repo from before narrow+share was supported
   $ rm .hg/narrowspec.dirstate
   $ hg ci -Am test
@@ -191,7 +167,4 @@
   [255]
   $ hg tracked --update-working-copy
   $ hg st
-  M d1/f
-  A d3/g
-  R d7/f
   $ cd ..

test-narrow-share.t#tree#normal

--- c:/hgdev/src/tests/test-narrow-share.t
+++ c:/hgdev/src/tests/test-narrow-share.t#tree#normal.err
@@ -29,6 +29,7 @@
   >   hg add d$x/f
   >   hg commit -m "add d$x/f"
   > done
+  /usr/bin/env: python3: $ENOENT$
   $ cd ..
 
   $ hg clone --narrow ssh://user@dummy/remote main -q @@ -39,17 +40,14 @@
 
   $ hg share main share
   updating working directory
-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg -R share tracked
   I path:d1
   I path:d3
   I path:d5
   I path:d7
   $ hg -R share files
-  share/d1/f
-  share/d3/f
-  share/d5/f
-  share/d7/f
+  [1]
 
 Narrow the share and check that the main repo's working copy gets updated
 
@@ -57,40 +55,33 @@
   $ sleep 2
   $ hg -R main st
   $ hg -R main debugdirstate --no-dates
-  n 644          2 set                 d1/f
-  n 644          2 set                 d3/f
-  n 644          2 set                 d5/f
-  n 644          2 set                 d7/f
 # Make d3/f dirty
   $ echo x >> main/d3/f
+  $TESTTMP.sh: line 44: main/d3/f: $ENOENT$
+  [1]
   $ echo y >> main/d3/g
+  $TESTTMP.sh: line 46: main/d3/g: $ENOENT$
+  [1]
   $ touch main/d3/ignored
+  touch: cannot touch `main/d3/ignored': $ENOENT$
+  [1]
   $ touch main/d3/untracked
+  touch: cannot touch `main/d3/untracked': $ENOENT$
+  [1]
   $ hg add main/d3/g
+  main/d3/g: $ENOTDIR$
+  [1]
   $ hg -R main st
-  M d3/f
-  A d3/g
-  ? d3/untracked
 # Make d5/f not match the dirstate timestamp even though it's clean
   $ sleep 2
   $ hg -R main st
-  M d3/f
-  A d3/g
-  ? d3/untracked
   $ hg -R main debugdirstate --no-dates
-  n 644          2 set                 d1/f
-  n 644          2 set                 d3/f
-  a   0         -1 unset               d3/g
-  n 644          2 set                 d5/f
-  n 644          2 set                 d7/f
   $ touch main/d5/f
+  touch: cannot touch `main/d5/f': $ENOENT$
+  [1]
   $ hg -R share tracked --removeinclude d1 --removeinclude d3 --removeinclude d5
   comparing with ssh://user@dummy/remote
-  searching for changes
   looking for local changes to affected paths
-  deleting data/d1/f.i
-  deleting data/d3/f.i
-  deleting data/d5/f.i
   deleting meta/d1/00manifest.i (tree !)
   deleting meta/d3/00manifest.i (tree !)
   deleting meta/d5/00manifest.i (tree !)
@@ -101,23 +92,13 @@
   (run 'hg tracked --update-working-copy')
   [255]
   $ hg -R main tracked --update-working-copy
-  not deleting possibly dirty file d3/f
-  not deleting possibly dirty file d3/g
-  not deleting possibly dirty file d5/f
-  not deleting unknown file d3/untracked
-  not deleting ignored file d3/ignored
 # d1/f, d3/f, d3/g and d5/f should no longer be reported
   $ hg -R main files
-  main/d7/f
+  [1]
 # d1/f should no longer be there, d3/f should be since it was dirty, d3/g should be there since
 # it was added, and d5/f should be since we couldn't be sure it was clean
   $ find main/d* -type f | sort
-  main/d3/f
-  main/d3/g
-  main/d3/ignored
-  main/d3/untracked
-  main/d5/f
-  main/d7/f
+  find: `main/d*': $ENOENT$
 
 Widen the share and check that the main repo's working copy gets updated
 
@@ -127,9 +108,7 @@
   I path:d3
   I path:d7
   $ hg -R share files
-  share/d1/f
-  share/d3/f
-  share/d7/f
+  [1]
   $ hg -R main tracked
   I path:d1
   I path:d3
@@ -141,23 +120,15 @@
   $ hg -R main tracked --update-working-copy
 # d1/f, d3/f should be back
   $ hg -R main files
-  main/d1/f
-  main/d3/f
-  main/d7/f
+  [1]
 # d3/f should be modified (not clobbered by the widening), and d3/g should be untracked
   $ hg -R main st --all
-  M d3/f
-  ? d3/g
-  ? d3/untracked
-  I d3/ignored
-  C d1/f
-  C d7/f
 
 We should also be able to unshare without breaking everything:
 
   $ hg share main share-unshare
   updating working directory
-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd share-unshare
   $ hg unshare
   $ hg verify
@@ -166,23 +137,28 @@
   checking directory manifests (tree !)
   crosschecking files in changesets and manifests
   checking files
-  checked 11 changesets with 3 changes to 3 files
+  checked 0 changesets with 0 changes to 0 files
   $ cd ..
 
 Dirstate should be left alone when upgrading from version of hg that didn't support narrow+share
 
   $ hg share main share-upgrade
   updating working directory
-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd share-upgrade
   $ echo x >> d1/f
+  $TESTTMP.sh: line 106: d1/f: $ENOENT$
+  [1]
   $ echo y >> d3/g
+  $TESTTMP.sh: line 108: d3/g: $ENOENT$
+  [1]
   $ hg add d3/g
+  d3/g: $ENOTDIR$
+  [1]
   $ hg rm d7/f
+  d7/f: $ENOTDIR$
+  [1]
   $ hg st
-  M d1/f
-  A d3/g
-  R d7/f
 Make it look like a repo from before narrow+share was supported
   $ rm .hg/narrowspec.dirstate
   $ hg ci -Am test
@@ -191,7 +167,4 @@
   [255]
   $ hg tracked --update-working-copy
   $ hg st
-  M d1/f
-  A d3/g
-  R d7/f
   $ cd ..

test-narrow-share.t#tree#safe

--- c:/hgdev/src/tests/test-narrow-share.t
+++ c:/hgdev/src/tests/test-narrow-share.t#tree#safe.err
@@ -29,6 +29,7 @@
   >   hg add d$x/f
   >   hg commit -m "add d$x/f"
   > done
+  /usr/bin/env: python3: $ENOENT$
   $ cd ..
 
   $ hg clone --narrow ssh://user@dummy/remote main -q @@ -39,17 +40,14 @@
 
   $ hg share main share
   updating working directory
-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ hg -R share tracked
   I path:d1
   I path:d3
   I path:d5
   I path:d7
   $ hg -R share files
-  share/d1/f
-  share/d3/f
-  share/d5/f
-  share/d7/f
+  [1]
 
 Narrow the share and check that the main repo's working copy gets updated
 
@@ -57,40 +55,33 @@
   $ sleep 2
   $ hg -R main st
   $ hg -R main debugdirstate --no-dates
-  n 644          2 set                 d1/f
-  n 644          2 set                 d3/f
-  n 644          2 set                 d5/f
-  n 644          2 set                 d7/f
 # Make d3/f dirty
   $ echo x >> main/d3/f
+  $TESTTMP.sh: line 44: main/d3/f: $ENOENT$
+  [1]
   $ echo y >> main/d3/g
+  $TESTTMP.sh: line 46: main/d3/g: $ENOENT$
+  [1]
   $ touch main/d3/ignored
+  touch: cannot touch `main/d3/ignored': $ENOENT$
+  [1]
   $ touch main/d3/untracked
+  touch: cannot touch `main/d3/untracked': $ENOENT$
+  [1]
   $ hg add main/d3/g
+  main/d3/g: $ENOTDIR$
+  [1]
   $ hg -R main st
-  M d3/f
-  A d3/g
-  ? d3/untracked
 # Make d5/f not match the dirstate timestamp even though it's clean
   $ sleep 2
   $ hg -R main st
-  M d3/f
-  A d3/g
-  ? d3/untracked
   $ hg -R main debugdirstate --no-dates
-  n 644          2 set                 d1/f
-  n 644          2 set                 d3/f
-  a   0         -1 unset               d3/g
-  n 644          2 set                 d5/f
-  n 644          2 set                 d7/f
   $ touch main/d5/f
+  touch: cannot touch `main/d5/f': $ENOENT$
+  [1]
   $ hg -R share tracked --removeinclude d1 --removeinclude d3 --removeinclude d5
   comparing with ssh://user@dummy/remote
-  searching for changes
   looking for local changes to affected paths
-  deleting data/d1/f.i
-  deleting data/d3/f.i
-  deleting data/d5/f.i
   deleting meta/d1/00manifest.i (tree !)
   deleting meta/d3/00manifest.i (tree !)
   deleting meta/d5/00manifest.i (tree !)
@@ -101,23 +92,13 @@
   (run 'hg tracked --update-working-copy')
   [255]
   $ hg -R main tracked --update-working-copy
-  not deleting possibly dirty file d3/f
-  not deleting possibly dirty file d3/g
-  not deleting possibly dirty file d5/f
-  not deleting unknown file d3/untracked
-  not deleting ignored file d3/ignored
 # d1/f, d3/f, d3/g and d5/f should no longer be reported
   $ hg -R main files
-  main/d7/f
+  [1]
 # d1/f should no longer be there, d3/f should be since it was dirty, d3/g should be there since
 # it was added, and d5/f should be since we couldn't be sure it was clean
   $ find main/d* -type f | sort
-  main/d3/f
-  main/d3/g
-  main/d3/ignored
-  main/d3/untracked
-  main/d5/f
-  main/d7/f
+  find: `main/d*': $ENOENT$
 
 Widen the share and check that the main repo's working copy gets updated
 
@@ -127,9 +108,7 @@
   I path:d3
   I path:d7
   $ hg -R share files
-  share/d1/f
-  share/d3/f
-  share/d7/f
+  [1]
   $ hg -R main tracked
   I path:d1
   I path:d3
@@ -141,23 +120,15 @@
   $ hg -R main tracked --update-working-copy
 # d1/f, d3/f should be back
   $ hg -R main files
-  main/d1/f
-  main/d3/f
-  main/d7/f
+  [1]
 # d3/f should be modified (not clobbered by the widening), and d3/g should be untracked
   $ hg -R main st --all
-  M d3/f
-  ? d3/g
-  ? d3/untracked
-  I d3/ignored
-  C d1/f
-  C d7/f
 
 We should also be able to unshare without breaking everything:
 
   $ hg share main share-unshare
   updating working directory
-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd share-unshare
   $ hg unshare
   $ hg verify
@@ -166,23 +137,28 @@
   checking directory manifests (tree !)
   crosschecking files in changesets and manifests
   checking files
-  checked 11 changesets with 3 changes to 3 files
+  checked 0 changesets with 0 changes to 0 files
   $ cd ..
 
 Dirstate should be left alone when upgrading from version of hg that didn't support narrow+share
 
   $ hg share main share-upgrade
   updating working directory
-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd share-upgrade
   $ echo x >> d1/f
+  $TESTTMP.sh: line 106: d1/f: $ENOENT$
+  [1]
   $ echo y >> d3/g
+  $TESTTMP.sh: line 108: d3/g: $ENOENT$
+  [1]
   $ hg add d3/g
+  d3/g: $ENOTDIR$
+  [1]
   $ hg rm d7/f
+  d7/f: $ENOTDIR$
+  [1]
   $ hg st
-  M d1/f
-  A d3/g
-  R d7/f
 Make it look like a repo from before narrow+share was supported
   $ rm .hg/narrowspec.dirstate
   $ hg ci -Am test
@@ -191,7 +167,4 @@
   [255]
   $ hg tracked --update-working-copy
   $ hg st
-  M d1/f
-  A d3/g
-  R d7/f
   $ cd ..

test-narrow-strip.t#flat#lfs-off

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-narrow-strip.t\n+++ c:/hgdev/src/tests/test-narrow-strip.t#flat#lfs-off.err\n@@ -67,22 +67,70 @@\n   $ hg strip .\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-2b55e253-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-ab640c52-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-ab640c52-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: narrow, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg unbundle .hg/strip-backup/*-backup.hg\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets * (glob)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Can strip and recover changesets affecting files outside of narrow spec\n \n   $ hg co -r \'desc("modify outside")\'\n   0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg log -G -T \'{rev} {desc}\\n\'\n-  o  2 modify inside\n+  @  2 modify outside again\n   |\n-  | @  1 modify outside again\n+  | o  1 modify inside\n   |/\n   o  0 initial\n   \n@@ -91,18 +139,21 @@\n   outside/f1\\x0084ba604d54dee1f13310ce3d4ac2e8a36636691a (esc) (flat !)\n   inside\\x006a8bc41df94075d501f9740587a0c0e13c170dc5t (esc) (tree !)\n   outside\\x00255c2627ebdd3c7dcaa6945246f9b9f02bd45a09t (esc) (tree !)\n+  inside/f1\\x006f538d31d959dccbb33c26d098a05b71d5066f37 (esc)\n+  outside/f1\\x007fb3bb6356d28d4dc352c5ba52d7350a81b6bd46 (esc)\n \n   $ rm -f .hg/strip-backup/*-backup.hg\n   $ hg strip .\n   0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/9e48d953700d-ab640c52-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg unbundle .hg/strip-backup/*-backup.hg\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files (+1 heads)\n-  new changesets * (glob)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -G -T \'{rev} {desc}\\n\'\n   o  2 modify outside again\n   |\n@@ -116,6 +167,8 @@\n   outside/f1\\x0084ba604d54dee1f13310ce3d4ac2e8a36636691a (esc) (flat !)\n   inside\\x006a8bc41df94075d501f9740587a0c0e13c170dc5t (esc) (tree !)\n   outside\\x00255c2627ebdd3c7dcaa6945246f9b9f02bd45a09t (esc) (tree !)\n+  inside/f1\\x004d6a634d5ba06331a60c29ee0db8412490a54fcd (esc)\n+  outside/f1\\x0084ba604d54dee1f13310ce3d4ac2e8a36636691a (esc)\n \n Also verify we can apply the bundle with \'hg pull\':\n   $ hg co -r \'desc("modify inside")\'\n@@ -124,6 +177,12 @@\n   $ hg strip .\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-2b55e253-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-ab640c52-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-ab640c52-temp.hg\'")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n #if repobundlerepo\n   $ hg pull .hg/strip-backup/*-backup.hg\n   pulling from .hg/strip-backup/*-backup.hg (glob)\n', 2553, 2555, 'truncated \\uXXXX escape') decoding diff, sorry

test-narrow-strip.t#flat#lfs-on

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-narrow-strip.t\n+++ c:/hgdev/src/tests/test-narrow-strip.t#flat#lfs-on.err\n@@ -67,22 +67,70 @@\n   $ hg strip .\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-2b55e253-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-ab640c52-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-ab640c52-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: narrow, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg unbundle .hg/strip-backup/*-backup.hg\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets * (glob)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Can strip and recover changesets affecting files outside of narrow spec\n \n   $ hg co -r \'desc("modify outside")\'\n   0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg log -G -T \'{rev} {desc}\\n\'\n-  o  2 modify inside\n+  @  2 modify outside again\n   |\n-  | @  1 modify outside again\n+  | o  1 modify inside\n   |/\n   o  0 initial\n   \n@@ -91,18 +139,21 @@\n   outside/f1\\x0084ba604d54dee1f13310ce3d4ac2e8a36636691a (esc) (flat !)\n   inside\\x006a8bc41df94075d501f9740587a0c0e13c170dc5t (esc) (tree !)\n   outside\\x00255c2627ebdd3c7dcaa6945246f9b9f02bd45a09t (esc) (tree !)\n+  inside/f1\\x006f538d31d959dccbb33c26d098a05b71d5066f37 (esc)\n+  outside/f1\\x007fb3bb6356d28d4dc352c5ba52d7350a81b6bd46 (esc)\n \n   $ rm -f .hg/strip-backup/*-backup.hg\n   $ hg strip .\n   0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/9e48d953700d-ab640c52-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg unbundle .hg/strip-backup/*-backup.hg\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files (+1 heads)\n-  new changesets * (glob)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -G -T \'{rev} {desc}\\n\'\n   o  2 modify outside again\n   |\n@@ -116,6 +167,8 @@\n   outside/f1\\x0084ba604d54dee1f13310ce3d4ac2e8a36636691a (esc) (flat !)\n   inside\\x006a8bc41df94075d501f9740587a0c0e13c170dc5t (esc) (tree !)\n   outside\\x00255c2627ebdd3c7dcaa6945246f9b9f02bd45a09t (esc) (tree !)\n+  inside/f1\\x004d6a634d5ba06331a60c29ee0db8412490a54fcd (esc)\n+  outside/f1\\x0084ba604d54dee1f13310ce3d4ac2e8a36636691a (esc)\n \n Also verify we can apply the bundle with \'hg pull\':\n   $ hg co -r \'desc("modify inside")\'\n@@ -124,6 +177,12 @@\n   $ hg strip .\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-2b55e253-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-ab640c52-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-ab640c52-temp.hg\'")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n #if repobundlerepo\n   $ hg pull .hg/strip-backup/*-backup.hg\n   pulling from .hg/strip-backup/*-backup.hg (glob)\n', 2552, 2554, 'truncated \\uXXXX escape') decoding diff, sorry

test-narrow-strip.t#tree#lfs-off

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-narrow-strip.t\n+++ c:/hgdev/src/tests/test-narrow-strip.t#tree#lfs-off.err\n@@ -67,22 +67,70 @@\n   $ hg strip .\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-2b55e253-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-ab640c52-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-ab640c52-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: narrow, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg unbundle .hg/strip-backup/*-backup.hg\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets * (glob)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Can strip and recover changesets affecting files outside of narrow spec\n \n   $ hg co -r \'desc("modify outside")\'\n   0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg log -G -T \'{rev} {desc}\\n\'\n-  o  2 modify inside\n+  @  2 modify outside again\n   |\n-  | @  1 modify outside again\n+  | o  1 modify inside\n   |/\n   o  0 initial\n   \n@@ -91,18 +139,21 @@\n   outside/f1\\x0084ba604d54dee1f13310ce3d4ac2e8a36636691a (esc) (flat !)\n   inside\\x006a8bc41df94075d501f9740587a0c0e13c170dc5t (esc) (tree !)\n   outside\\x00255c2627ebdd3c7dcaa6945246f9b9f02bd45a09t (esc) (tree !)\n+  inside/f1\\x006f538d31d959dccbb33c26d098a05b71d5066f37 (esc)\n+  outside/f1\\x007fb3bb6356d28d4dc352c5ba52d7350a81b6bd46 (esc)\n \n   $ rm -f .hg/strip-backup/*-backup.hg\n   $ hg strip .\n   0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/9e48d953700d-ab640c52-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg unbundle .hg/strip-backup/*-backup.hg\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files (+1 heads)\n-  new changesets * (glob)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -G -T \'{rev} {desc}\\n\'\n   o  2 modify outside again\n   |\n@@ -116,6 +167,8 @@\n   outside/f1\\x0084ba604d54dee1f13310ce3d4ac2e8a36636691a (esc) (flat !)\n   inside\\x006a8bc41df94075d501f9740587a0c0e13c170dc5t (esc) (tree !)\n   outside\\x00255c2627ebdd3c7dcaa6945246f9b9f02bd45a09t (esc) (tree !)\n+  inside/f1\\x004d6a634d5ba06331a60c29ee0db8412490a54fcd (esc)\n+  outside/f1\\x0084ba604d54dee1f13310ce3d4ac2e8a36636691a (esc)\n \n Also verify we can apply the bundle with \'hg pull\':\n   $ hg co -r \'desc("modify inside")\'\n@@ -124,6 +177,12 @@\n   $ hg strip .\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-2b55e253-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-ab640c52-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-ab640c52-temp.hg\'")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n #if repobundlerepo\n   $ hg pull .hg/strip-backup/*-backup.hg\n   pulling from .hg/strip-backup/*-backup.hg (glob)\n', 2553, 2555, 'truncated \\uXXXX escape') decoding diff, sorry

test-narrow-strip.t#tree#lfs-on

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-narrow-strip.t\n+++ c:/hgdev/src/tests/test-narrow-strip.t#tree#lfs-on.err\n@@ -67,22 +67,70 @@\n   $ hg strip .\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-2b55e253-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-ab640c52-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-ab640c52-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: narrow, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg unbundle .hg/strip-backup/*-backup.hg\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets * (glob)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Can strip and recover changesets affecting files outside of narrow spec\n \n   $ hg co -r \'desc("modify outside")\'\n   0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg log -G -T \'{rev} {desc}\\n\'\n-  o  2 modify inside\n+  @  2 modify outside again\n   |\n-  | @  1 modify outside again\n+  | o  1 modify inside\n   |/\n   o  0 initial\n   \n@@ -91,18 +139,21 @@\n   outside/f1\\x0084ba604d54dee1f13310ce3d4ac2e8a36636691a (esc) (flat !)\n   inside\\x006a8bc41df94075d501f9740587a0c0e13c170dc5t (esc) (tree !)\n   outside\\x00255c2627ebdd3c7dcaa6945246f9b9f02bd45a09t (esc) (tree !)\n+  inside/f1\\x006f538d31d959dccbb33c26d098a05b71d5066f37 (esc)\n+  outside/f1\\x007fb3bb6356d28d4dc352c5ba52d7350a81b6bd46 (esc)\n \n   $ rm -f .hg/strip-backup/*-backup.hg\n   $ hg strip .\n   0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/9e48d953700d-ab640c52-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg unbundle .hg/strip-backup/*-backup.hg\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files (+1 heads)\n-  new changesets * (glob)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -G -T \'{rev} {desc}\\n\'\n   o  2 modify outside again\n   |\n@@ -116,6 +167,8 @@\n   outside/f1\\x0084ba604d54dee1f13310ce3d4ac2e8a36636691a (esc) (flat !)\n   inside\\x006a8bc41df94075d501f9740587a0c0e13c170dc5t (esc) (tree !)\n   outside\\x00255c2627ebdd3c7dcaa6945246f9b9f02bd45a09t (esc) (tree !)\n+  inside/f1\\x004d6a634d5ba06331a60c29ee0db8412490a54fcd (esc)\n+  outside/f1\\x0084ba604d54dee1f13310ce3d4ac2e8a36636691a (esc)\n \n Also verify we can apply the bundle with \'hg pull\':\n   $ hg co -r \'desc("modify inside")\'\n@@ -124,6 +177,12 @@\n   $ hg strip .\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-2b55e253-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-ab640c52-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\narrow\\.hg\\strip-backup/f505d5e96aa8-ab640c52-temp.hg\'")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n #if repobundlerepo\n   $ hg pull .hg/strip-backup/*-backup.hg\n   pulling from .hg/strip-backup/*-backup.hg (glob)\n', 2552, 2554, 'truncated \\uXXXX escape') decoding diff, sorry

test-narrow-trackedcmd.t#flat

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-narrow-trackedcmd.t\n+++ c:/hgdev/src/tests/test-narrow-trackedcmd.t#flat.err\n@@ -149,12 +149,64 @@\n   deleting data/inside/f.i\n   deleting meta/inside/00manifest.i (tree !)\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 0 changes to 0 files\n-  $ hg tracked\n-  I path:outisde\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/c1045981e692-af610757-widen.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: narrow\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowcommands.py", line 656, in trackedcmd\n+      newexcludes,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowcommands.py", line 400, in _widen\n+      bundle2.processbundle(repo, bundle, op=op)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\bundle2.py", line 479, in processbundle\n+      processparts(repo, op, unbundler)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\bundle2.py", line 487, in processparts\n+      _processpart(op, part)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\bundle2.py", line 561, in _processpart\n+      handler(op, part)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowbundle2.py", line 254, in _handlechangespec\n+      op.ui, repo, list(clkills), backup=True, topic=b\'widen\'\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg tracked\n   X path:inside\n \n Testing the --import-rules flag with --addinclude and --addexclude\n@@ -168,14 +220,11 @@\n   comparing with ssh://user@dummy/master\n   searching for changes\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 3 changesets with 1 changes to 1 files\n-  $ hg tracked\n-  I path:outisde\n-  I path:wider\n-  I path:widest\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/c1045981e692-af610757-widen.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg tracked\n   X path:inside\n \n   $ cat > specs <<EOF\n@@ -187,14 +236,12 @@\n   comparing with ssh://user@dummy/master\n   searching for changes\n   looking for local changes to affected paths\n-  deleting data/widest/f.i\n+  abort: abandoned transaction found\n   deleting meta/widest/00manifest.i (tree !)\n-  $ hg tracked\n-  I path:outisde\n-  I path:wider\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg tracked\n   X path:inside\n-  X path:outside2\n-  X path:widest\n \n   $ hg tracked --import-rules specs --clear\n   abort: the --clear option is not yet supported\n@@ -211,10 +258,10 @@\n   comparing with ssh://user@dummy/master\n   searching for changes\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 3 changesets with 0 changes to 0 files\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/c1045981e692-af610757-widen.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ cd ..\n \n', 2434, 2436, 'truncated \\uXXXX escape') decoding diff, sorry

test-narrow-trackedcmd.t#tree

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-narrow-trackedcmd.t\n+++ c:/hgdev/src/tests/test-narrow-trackedcmd.t#tree.err\n@@ -149,12 +149,64 @@\n   deleting data/inside/f.i\n   deleting meta/inside/00manifest.i (tree !)\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 0 changes to 0 files\n-  $ hg tracked\n-  I path:outisde\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/c1045981e692-af610757-widen.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: narrow\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowcommands.py", line 656, in trackedcmd\n+      newexcludes,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowcommands.py", line 400, in _widen\n+      bundle2.processbundle(repo, bundle, op=op)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\bundle2.py", line 479, in processbundle\n+      processparts(repo, op, unbundler)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\bundle2.py", line 487, in processparts\n+      _processpart(op, part)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\bundle2.py", line 561, in _processpart\n+      handler(op, part)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowbundle2.py", line 254, in _handlechangespec\n+      op.ui, repo, list(clkills), backup=True, topic=b\'widen\'\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg tracked\n   X path:inside\n \n Testing the --import-rules flag with --addinclude and --addexclude\n@@ -168,14 +220,11 @@\n   comparing with ssh://user@dummy/master\n   searching for changes\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 3 changesets with 1 changes to 1 files\n-  $ hg tracked\n-  I path:outisde\n-  I path:wider\n-  I path:widest\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/c1045981e692-af610757-widen.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg tracked\n   X path:inside\n \n   $ cat > specs <<EOF\n@@ -187,14 +236,12 @@\n   comparing with ssh://user@dummy/master\n   searching for changes\n   looking for local changes to affected paths\n-  deleting data/widest/f.i\n+  abort: abandoned transaction found\n   deleting meta/widest/00manifest.i (tree !)\n-  $ hg tracked\n-  I path:outisde\n-  I path:wider\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg tracked\n   X path:inside\n-  X path:outside2\n-  X path:widest\n \n   $ hg tracked --import-rules specs --clear\n   abort: the --clear option is not yet supported\n@@ -211,10 +258,10 @@\n   comparing with ssh://user@dummy/master\n   searching for changes\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 3 changesets with 0 changes to 0 files\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/c1045981e692-af610757-widen.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ cd ..\n \n', 2434, 2436, 'truncated \\uXXXX escape') decoding diff, sorry

test-narrow-widen-no-ellipsis.t#flat

--- c:/hgdev/src/tests/test-narrow-widen-no-ellipsis.t
+++ c:/hgdev/src/tests/test-narrow-widen-no-ellipsis.t#flat.err
@@ -243,31 +243,16 @@
   >   hg add d$x/f
   >   hg commit -m "add d$x/f"
   > done
+  /usr/bin/env: python3: $ENOENT$
   $ hg log -T "{rev}: {desc}
"
-  10: add d10/f
-  9: add d9/f
-  8: add d8/f
-  7: add d7/f
-  6: add d6/f
-  5: add d5/f
-  4: add d4/f
-  3: add d3/f
-  2: add d2/f
-  1: add d1/f
-  0: add d0/f
 
 make narrow clone with every third node.
 
   $ cd ..
   $ hg clone --narrow ssh://user@dummy/upstream narrow2 --include d0 --include d3 --include d6 --include d9
-  requesting all changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 11 changesets with 4 changes to 4 files
-  new changesets *:* (glob)
+  no changes found
   updating to branch default
-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd narrow2
   $ hg tracked
   I path:d0
@@ -280,26 +265,13 @@
   checking directory manifests (tree !)
   crosschecking files in changesets and manifests
   checking files
-  checked 11 changesets with 4 changes to 4 files
-  $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}
"
-  10: add d10/f
-  9: add d9/f
-  8: add d8/f
-  7: add d7/f
-  6: add d6/f
-  5: add d5/f
-  4: add d4/f
-  3: add d3/f
-  2: add d2/f
-  1: add d1/f
-  0: add d0/f
+  checked 0 changesets with 0 changes to 0 files
+  $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}
"
   $ hg tracked --addinclude d1
   comparing with ssh://user@dummy/upstream
-  searching for changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 0 changesets with 1 changes to 1 files
+  adding changesets
+  adding manifests
+  adding file changes
   $ hg tracked
   I path:d0
   I path:d1
@@ -307,17 +279,6 @@
   I path:d6
   I path:d9
   $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}
"
-  10: add d10/f
-  9: add d9/f
-  8: add d8/f
-  7: add d7/f
-  6: add d6/f
-  5: add d5/f
-  4: add d4/f
-  3: add d3/f
-  2: add d2/f
-  1: add d1/f
-  0: add d0/f
 
 Verify shouldn't claim the repo is corrupt after a widen.
 
@@ -327,100 +288,14 @@
   checking directory manifests (tree !)
   crosschecking files in changesets and manifests
   checking files
-  checked 11 changesets with 5 changes to 5 files
+  checked 0 changesets with 0 changes to 0 files
 
 Widening preserves parent of local commit
 
   $ cd ..
   $ hg clone -q --narrow ssh://user@dummy/upstream narrow3 --include d2 -r 2
+  abort: unknown revision '2'
+  [255]
   $ cd narrow3
-  $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}
"
-  2: add d2/f
-  1: add d1/f
-  0: add d0/f
-  $ hg pull -q -r 3
-  $ hg co -q tip
-  $ hg pull -q -r 4
-  $ echo local > d2/f
-  $ hg ci -m local
-  created new head
-  $ hg tracked -q --addinclude d0 --addinclude d9
-
-Widening preserves bookmarks
-
-  $ cd ..
-  $ hg clone -q --narrow ssh://user@dummy/upstream narrow-bookmarks --include d4
-  $ cd narrow-bookmarks
-  $ echo local > d4/f
-  $ hg ci -m local
-  $ hg bookmarks bookmark
-  $ hg bookmarks
-   * bookmark                  11:* (glob)
-  $ hg -q tracked --addinclude d2
-  $ hg bookmarks
-   * bookmark                  11:* (glob)
-  $ hg log -r bookmark -T '{desc}
'
-  local
-
-Widening that fails can be recovered from
-
-  $ cd ..
-  $ hg clone -q --narrow ssh://user@dummy/upstream interrupted --include d0
-  $ cd interrupted
-  $ echo local > d0/f
-  $ hg ci -m local
-  $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}
"
-  11: local
-  10: add d10/f
-  9: add d9/f
-  8: add d8/f
-  7: add d7/f
-  6: add d6/f
-  5: add d5/f
-  4: add d4/f
-  3: add d3/f
-  2: add d2/f
-  1: add d1/f
-  0: add d0/f
-  $ hg bookmarks bookmark
-  $ hg --config hooks.pretxnchangegroup.bad=false tracked --addinclude d1
-  comparing with ssh://user@dummy/upstream
-  searching for changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 0 changesets with 1 changes to 1 files
-  $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}
"
-  11: local
-  10: add d10/f
-  9: add d9/f
-  8: add d8/f
-  7: add d7/f
-  6: add d6/f
-  5: add d5/f
-  4: add d4/f
-  3: add d3/f
-  2: add d2/f
-  1: add d1/f
-  0: add d0/f
-  $ hg bookmarks
-   * bookmark                  11:* (glob)
-  $ hg unbundle .hg/strip-backup/*-widen.hg
-  abort: .hg/strip-backup/*-widen.hg: $ENOTDIR$ (windows !)
-  abort: $ENOENT$: '.hg/strip-backup/*-widen.hg' (no-windows !)
-  [255]
-  $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}
"
-  11: local
-  10: add d10/f
-  9: add d9/f
-  8: add d8/f
-  7: add d7/f
-  6: add d6/f
-  5: add d5/f
-  4: add d4/f
-  3: add d3/f
-  2: add d2/f
-  1: add d1/f
-  0: add d0/f
-  $ hg bookmarks
-   * bookmark                  11:* (glob)
+  $TESTTMP.sh: line 187: cd: narrow3: $ENOENT$
+  $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}
"

test-narrow-widen-no-ellipsis.t#tree

--- c:/hgdev/src/tests/test-narrow-widen-no-ellipsis.t
+++ c:/hgdev/src/tests/test-narrow-widen-no-ellipsis.t#tree.err
@@ -243,31 +243,16 @@
   >   hg add d$x/f
   >   hg commit -m "add d$x/f"
   > done
+  /usr/bin/env: python3: $ENOENT$
   $ hg log -T "{rev}: {desc}
"
-  10: add d10/f
-  9: add d9/f
-  8: add d8/f
-  7: add d7/f
-  6: add d6/f
-  5: add d5/f
-  4: add d4/f
-  3: add d3/f
-  2: add d2/f
-  1: add d1/f
-  0: add d0/f
 
 make narrow clone with every third node.
 
   $ cd ..
   $ hg clone --narrow ssh://user@dummy/upstream narrow2 --include d0 --include d3 --include d6 --include d9
-  requesting all changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 11 changesets with 4 changes to 4 files
-  new changesets *:* (glob)
+  no changes found
   updating to branch default
-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
   $ cd narrow2
   $ hg tracked
   I path:d0
@@ -280,26 +265,13 @@
   checking directory manifests (tree !)
   crosschecking files in changesets and manifests
   checking files
-  checked 11 changesets with 4 changes to 4 files
-  $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}
"
-  10: add d10/f
-  9: add d9/f
-  8: add d8/f
-  7: add d7/f
-  6: add d6/f
-  5: add d5/f
-  4: add d4/f
-  3: add d3/f
-  2: add d2/f
-  1: add d1/f
-  0: add d0/f
+  checked 0 changesets with 0 changes to 0 files
+  $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}
"
   $ hg tracked --addinclude d1
   comparing with ssh://user@dummy/upstream
-  searching for changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 0 changesets with 1 changes to 1 files
+  adding changesets
+  adding manifests
+  adding file changes
   $ hg tracked
   I path:d0
   I path:d1
@@ -307,17 +279,6 @@
   I path:d6
   I path:d9
   $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}
"
-  10: add d10/f
-  9: add d9/f
-  8: add d8/f
-  7: add d7/f
-  6: add d6/f
-  5: add d5/f
-  4: add d4/f
-  3: add d3/f
-  2: add d2/f
-  1: add d1/f
-  0: add d0/f
 
 Verify shouldn't claim the repo is corrupt after a widen.
 
@@ -327,100 +288,14 @@
   checking directory manifests (tree !)
   crosschecking files in changesets and manifests
   checking files
-  checked 11 changesets with 5 changes to 5 files
+  checked 0 changesets with 0 changes to 0 files
 
 Widening preserves parent of local commit
 
   $ cd ..
   $ hg clone -q --narrow ssh://user@dummy/upstream narrow3 --include d2 -r 2
+  abort: unknown revision '2'
+  [255]
   $ cd narrow3
-  $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}
"
-  2: add d2/f
-  1: add d1/f
-  0: add d0/f
-  $ hg pull -q -r 3
-  $ hg co -q tip
-  $ hg pull -q -r 4
-  $ echo local > d2/f
-  $ hg ci -m local
-  created new head
-  $ hg tracked -q --addinclude d0 --addinclude d9
-
-Widening preserves bookmarks
-
-  $ cd ..
-  $ hg clone -q --narrow ssh://user@dummy/upstream narrow-bookmarks --include d4
-  $ cd narrow-bookmarks
-  $ echo local > d4/f
-  $ hg ci -m local
-  $ hg bookmarks bookmark
-  $ hg bookmarks
-   * bookmark                  11:* (glob)
-  $ hg -q tracked --addinclude d2
-  $ hg bookmarks
-   * bookmark                  11:* (glob)
-  $ hg log -r bookmark -T '{desc}
'
-  local
-
-Widening that fails can be recovered from
-
-  $ cd ..
-  $ hg clone -q --narrow ssh://user@dummy/upstream interrupted --include d0
-  $ cd interrupted
-  $ echo local > d0/f
-  $ hg ci -m local
-  $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}
"
-  11: local
-  10: add d10/f
-  9: add d9/f
-  8: add d8/f
-  7: add d7/f
-  6: add d6/f
-  5: add d5/f
-  4: add d4/f
-  3: add d3/f
-  2: add d2/f
-  1: add d1/f
-  0: add d0/f
-  $ hg bookmarks bookmark
-  $ hg --config hooks.pretxnchangegroup.bad=false tracked --addinclude d1
-  comparing with ssh://user@dummy/upstream
-  searching for changes
-  adding changesets
-  adding manifests
-  adding file changes
-  added 0 changesets with 1 changes to 1 files
-  $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}
"
-  11: local
-  10: add d10/f
-  9: add d9/f
-  8: add d8/f
-  7: add d7/f
-  6: add d6/f
-  5: add d5/f
-  4: add d4/f
-  3: add d3/f
-  2: add d2/f
-  1: add d1/f
-  0: add d0/f
-  $ hg bookmarks
-   * bookmark                  11:* (glob)
-  $ hg unbundle .hg/strip-backup/*-widen.hg
-  abort: .hg/strip-backup/*-widen.hg: $ENOTDIR$ (windows !)
-  abort: $ENOENT$: '.hg/strip-backup/*-widen.hg' (no-windows !)
-  [255]
-  $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}
"
-  11: local
-  10: add d10/f
-  9: add d9/f
-  8: add d8/f
-  7: add d7/f
-  6: add d6/f
-  5: add d5/f
-  4: add d4/f
-  3: add d3/f
-  2: add d2/f
-  1: add d1/f
-  0: add d0/f
-  $ hg bookmarks
-   * bookmark                  11:* (glob)
+  $TESTTMP.sh: line 187: cd: narrow3: $ENOENT$
+  $ hg log -T "{if(ellipsis, '...')}{rev}: {desc}
"

test-narrow-widen.t#flat

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-narrow-widen.t\n+++ c:/hgdev/src/tests/test-narrow-widen.t#flat.err\n@@ -115,61 +115,101 @@\n   comparing with ssh://user@dummy/master\n   searching for changes\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 3 changesets with 2 changes to 2 files\n-  $ hg l\n-  @  ...2: add outside\n-  |\n-  o  1: add widest\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/c1045981e692-af610757-widen.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: narrow\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowcommands.py", line 656, in trackedcmd\n+      newexcludes,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowcommands.py", line 400, in _widen\n+      bundle2.processbundle(repo, bundle, op=op)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\bundle2.py", line 479, in processbundle\n+      processparts(repo, op, unbundler)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\bundle2.py", line 487, in processparts\n+      _processpart(op, part)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\bundle2.py", line 561, in _processpart\n+      handler(op, part)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowbundle2.py", line 254, in _handlechangespec\n+      op.ui, repo, list(clkills), backup=True, topic=b\'widen\'\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg l\n+  o  ...1: add outside\n   |\n   o  0: add inside\n   \n   $ hg tracked\n   I path:inside\n-  I path:widest/f\n-\n-  $ cat widest/f\n-  widest\n+\n+  $ cat widest/f\n+  cat: widest/f: $ENOENT$\n+  [1]\n \n Pull down the newly added upstream revision.\n \n   $ hg pull\n   pulling from ssh://user@dummy/master\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 5 changesets with 4 changes to 2 files\n-  new changesets *:* (glob)\n-  (run \'hg update\' to get a working copy)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg update -r \'desc("add wider")\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ cat widest/f\n-  widest v2\n+  abort: empty revision set\n+  [255]\n+  $ cat widest/f\n+  cat: widest/f: $ENOENT$\n+  [1]\n \n   $ hg update -r \'desc("update inside")\'\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ cat widest/f\n-  widest v3\n+  abort: empty revision set\n+  [255]\n+  $ cat widest/f\n+  cat: widest/f: $ENOENT$\n+  [1]\n   $ cat inside/f\n-  inside v2\n-\n-  $ hg l\n-  o  7: update widest v4\n-  |\n-  o  ...6: add outside2\n-  |\n-  @  5: update inside\n-  |\n-  o  4: update widest v3\n-  |\n-  o  3: add wider, update widest\n-  |\n-  o  ...2: add outside\n-  |\n-  o  1: add widest\n+  inside\n+\n+  $ hg l\n+  o  ...1: add outside\n   |\n   o  0: add inside\n   \n@@ -187,47 +227,42 @@\n   comparing with ssh://user@dummy/master\n   searching for changes\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 8 changesets with 7 changes to 3 files\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/c1045981e692-af610757-widen.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg tracked\n   I path:inside\n-  I path:wider\n-  I path:widest/f\n   $ hg update \'desc("add widest")\'\n-  2 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ cat widest/f\n-  widest\n+  abort: empty revision set\n+  [255]\n+  $ cat widest/f\n+  cat: widest/f: $ENOENT$\n+  [1]\n   $ hg update \'desc("add wider, update widest")\'\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ cat wider/f\n-  wider\n-  $ cat widest/f\n-  widest v2\n+  cat: wider/f: $ENOENT$\n+  [1]\n+  $ cat widest/f\n+  cat: widest/f: $ENOENT$\n+  [1]\n   $ hg update \'desc("update widest v3")\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ cat widest/f\n-  widest v3\n+  abort: empty revision set\n+  [255]\n+  $ cat widest/f\n+  cat: widest/f: $ENOENT$\n+  [1]\n   $ hg update \'desc("update widest v4")\'\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ cat widest/f\n-  widest v4\n-\n-  $ hg l\n-  @  7: update widest v4\n-  |\n-  o  ...6: add outside2\n-  |\n-  o  5: update inside\n-  |\n-  o  4: update widest v3\n-  |\n-  o  3: add wider, update widest\n-  |\n-  o  ...2: add outside\n-  |\n-  o  1: add widest\n+  abort: empty revision set\n+  [255]\n+  $ cat widest/f\n+  cat: widest/f: $ENOENT$\n+  [1]\n+\n+  $ hg l\n+  o  ...1: add outside\n   |\n   o  0: add inside\n   \n@@ -249,31 +284,16 @@\n   >   hg add d$x/f\n   >   hg commit -m "add d$x/f"\n   > done\n+  /usr/bin/env: python3: $ENOENT$\n   $ hg log -T "{rev}: {desc}\\n"\n-  10: add d10/f\n-  9: add d9/f\n-  8: add d8/f\n-  7: add d7/f\n-  6: add d6/f\n-  5: add d5/f\n-  4: add d4/f\n-  3: add d3/f\n-  2: add d2/f\n-  1: add d1/f\n-  0: add d0/f\n \n make narrow clone with every third node.\n \n   $ cd ..\n   $ hg clone --narrow ssh://user@dummy/upstream narrow2 --include d0 --include d3 --include d6 --include d9\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 8 changesets with 4 changes to 4 files\n-  new changesets *:* (glob)\n+  no changes found\n   updating to branch default\n-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ cd narrow2\n   $ hg tracked\n   I path:d0\n@@ -286,32 +306,10 @@\n   checking directory manifests (tree !)\n   crosschecking files in changesets and manifests\n   checking files\n-  checked 8 changesets with 4 changes to 4 files\n-  $ hg l\n-  @  ...7: add d10/f\n-  |\n-  o  6: add d9/f\n-  |\n-  o  ...5: add d8/f\n-  |\n-  o  4: add d6/f\n-  |\n-  o  ...3: add d5/f\n-  |\n-  o  2: add d3/f\n-  |\n-  o  ...1: add d2/f\n-  |\n-  o  0: add d0/f\n-  \n+  checked 0 changesets with 0 changes to 0 files\n+  $ hg l\n   $ hg tracked --addinclude d1\n   comparing with ssh://user@dummy/upstream\n-  searching for changes\n-  saved backup bundle to $TESTTMP/narrow2/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 9 changesets with 5 changes to 5 files\n   $ hg tracked\n   I path:d0\n   I path:d1\n@@ -319,24 +317,6 @@\n   I path:d6\n   I path:d9\n   $ hg l\n-  @  ...8: add d10/f\n-  |\n-  o  7: add d9/f\n-  |\n-  o  ...6: add d8/f\n-  |\n-  o  5: add d6/f\n-  |\n-  o  ...4: add d5/f\n-  |\n-  o  3: add d3/f\n-  |\n-  o  ...2: add d2/f\n-  |\n-  o  1: add d1/f\n-  |\n-  o  0: add d0/f\n-  \n \n Verify shouldn\'t claim the repo is corrupt after a widen.\n \n@@ -346,108 +326,14 @@\n   checking directory manifests (tree !)\n   crosschecking files in changesets and manifests\n   checking files\n-  checked 9 changesets with 5 changes to 5 files\n+  checked 0 changesets with 0 changes to 0 files\n \n Widening preserves parent of local commit\n \n   $ cd ..\n   $ hg clone -q --narrow ssh://user@dummy/upstream narrow3 --include d2 -r 2\n+  abort: unknown revision \'2\'\n+  [255]\n   $ cd narrow3\n-  $ hg l\n-  @  1: add d2/f\n-  |\n-  o  ...0: add d1/f\n-  \n-  $ hg pull -q -r 3\n-  $ hg co -q tip\n-  $ hg pull -q -r 4\n-  $ echo local > d2/f\n-  $ hg ci -m local\n-  created new head\n-  $ hg l\n-  @  4: local\n-  |\n-  | o  ...3: add d4/f\n-  |/\n-  o  ...2: add d3/f\n-  |\n-  o  1: add d2/f\n-  |\n-  o  ...0: add d1/f\n-  \n-  $ hg tracked -q --addinclude d0 --addinclude d9\n-  $ hg l\n-  @  5: local\n-  |\n-  | o  ...4: add d4/f\n-  |/\n-  o  ...3: add d3/f\n-  |\n-  o  2: add d2/f\n-  |\n-  o  ...1: add d1/f\n-  |\n-  o  0: add d0/f\n-  \n-\n-Widening preserves bookmarks\n-\n-  $ cd ..\n-  $ hg clone -q --narrow ssh://user@dummy/upstream narrow-bookmarks --include d4\n-  $ cd narrow-bookmarks\n-  $ echo local > d4/f\n-  $ hg ci -m local\n-  $ hg bookmarks bookmark\n-  $ hg bookmarks\n-   * bookmark                  3:* (glob)\n-  $ hg -q tracked --addinclude d2\n-  $ hg bookmarks\n-   * bookmark                  5:* (glob)\n-  $ hg log -r bookmark -T \'{desc}\\n\'\n-  local\n-\n-Widening that fails can be recovered from\n-\n-  $ cd ..\n-  $ hg clone -q --narrow ssh://user@dummy/upstream interrupted --include d0\n-  $ cd interrupted\n-  $ echo local > d0/f\n-  $ hg ci -m local\n-  $ hg l\n-  @  2: local\n-  |\n-  o  ...1: add d10/f\n-  |\n-  o  0: add d0/f\n-  \n-  $ hg bookmarks bookmark\n-  $ hg --config hooks.pretxnchangegroup.bad=false tracked --addinclude d1\n-  comparing with ssh://user@dummy/upstream\n-  searching for changes\n-  saved backup bundle to $TESTTMP/interrupted/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnchangegroup.bad hook exited with status 1\n-  [255]\n-  $ hg l\n-  $ hg bookmarks\n-  no bookmarks set\n-  $ hg unbundle .hg/strip-backup/*-widen.hg\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 3 changesets with 2 changes to 1 files\n-  new changesets *:* (glob)\n-  (run \'hg update\' to get a working copy)\n-  $ hg l\n-  o  2: local\n-  |\n-  o  ...1: add d10/f\n-  |\n-  o  0: add d0/f\n-  \n-  $ hg bookmarks\n-   * bookmark                  2:* (glob)\n+  $TESTTMP.sh: line 194: cd: narrow3: $ENOENT$\n+  $ hg l\n', 2443, 2445, 'truncated \\uXXXX escape') decoding diff, sorry

test-narrow-widen.t#tree

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-narrow-widen.t\n+++ c:/hgdev/src/tests/test-narrow-widen.t#tree.err\n@@ -115,61 +115,101 @@\n   comparing with ssh://user@dummy/master\n   searching for changes\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 3 changesets with 2 changes to 2 files\n-  $ hg l\n-  @  ...2: add outside\n-  |\n-  o  1: add widest\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/c1045981e692-af610757-widen.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: narrow\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowcommands.py", line 656, in trackedcmd\n+      newexcludes,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowcommands.py", line 400, in _widen\n+      bundle2.processbundle(repo, bundle, op=op)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\bundle2.py", line 479, in processbundle\n+      processparts(repo, op, unbundler)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\bundle2.py", line 487, in processparts\n+      _processpart(op, part)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\bundle2.py", line 561, in _processpart\n+      handler(op, part)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowbundle2.py", line 254, in _handlechangespec\n+      op.ui, repo, list(clkills), backup=True, topic=b\'widen\'\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg l\n+  o  ...1: add outside\n   |\n   o  0: add inside\n   \n   $ hg tracked\n   I path:inside\n-  I path:widest/f\n-\n-  $ cat widest/f\n-  widest\n+\n+  $ cat widest/f\n+  cat: widest/f: $ENOENT$\n+  [1]\n \n Pull down the newly added upstream revision.\n \n   $ hg pull\n   pulling from ssh://user@dummy/master\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 5 changesets with 4 changes to 2 files\n-  new changesets *:* (glob)\n-  (run \'hg update\' to get a working copy)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg update -r \'desc("add wider")\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ cat widest/f\n-  widest v2\n+  abort: empty revision set\n+  [255]\n+  $ cat widest/f\n+  cat: widest/f: $ENOENT$\n+  [1]\n \n   $ hg update -r \'desc("update inside")\'\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ cat widest/f\n-  widest v3\n+  abort: empty revision set\n+  [255]\n+  $ cat widest/f\n+  cat: widest/f: $ENOENT$\n+  [1]\n   $ cat inside/f\n-  inside v2\n-\n-  $ hg l\n-  o  7: update widest v4\n-  |\n-  o  ...6: add outside2\n-  |\n-  @  5: update inside\n-  |\n-  o  4: update widest v3\n-  |\n-  o  3: add wider, update widest\n-  |\n-  o  ...2: add outside\n-  |\n-  o  1: add widest\n+  inside\n+\n+  $ hg l\n+  o  ...1: add outside\n   |\n   o  0: add inside\n   \n@@ -187,47 +227,42 @@\n   comparing with ssh://user@dummy/master\n   searching for changes\n   saved backup bundle to $TESTTMP/narrow/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 8 changesets with 7 changes to 3 files\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow\\.hg\\strip-backup/c1045981e692-af610757-widen.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg tracked\n   I path:inside\n-  I path:wider\n-  I path:widest/f\n   $ hg update \'desc("add widest")\'\n-  2 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ cat widest/f\n-  widest\n+  abort: empty revision set\n+  [255]\n+  $ cat widest/f\n+  cat: widest/f: $ENOENT$\n+  [1]\n   $ hg update \'desc("add wider, update widest")\'\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ cat wider/f\n-  wider\n-  $ cat widest/f\n-  widest v2\n+  cat: wider/f: $ENOENT$\n+  [1]\n+  $ cat widest/f\n+  cat: widest/f: $ENOENT$\n+  [1]\n   $ hg update \'desc("update widest v3")\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ cat widest/f\n-  widest v3\n+  abort: empty revision set\n+  [255]\n+  $ cat widest/f\n+  cat: widest/f: $ENOENT$\n+  [1]\n   $ hg update \'desc("update widest v4")\'\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ cat widest/f\n-  widest v4\n-\n-  $ hg l\n-  @  7: update widest v4\n-  |\n-  o  ...6: add outside2\n-  |\n-  o  5: update inside\n-  |\n-  o  4: update widest v3\n-  |\n-  o  3: add wider, update widest\n-  |\n-  o  ...2: add outside\n-  |\n-  o  1: add widest\n+  abort: empty revision set\n+  [255]\n+  $ cat widest/f\n+  cat: widest/f: $ENOENT$\n+  [1]\n+\n+  $ hg l\n+  o  ...1: add outside\n   |\n   o  0: add inside\n   \n@@ -249,31 +284,16 @@\n   >   hg add d$x/f\n   >   hg commit -m "add d$x/f"\n   > done\n+  /usr/bin/env: python3: $ENOENT$\n   $ hg log -T "{rev}: {desc}\\n"\n-  10: add d10/f\n-  9: add d9/f\n-  8: add d8/f\n-  7: add d7/f\n-  6: add d6/f\n-  5: add d5/f\n-  4: add d4/f\n-  3: add d3/f\n-  2: add d2/f\n-  1: add d1/f\n-  0: add d0/f\n \n make narrow clone with every third node.\n \n   $ cd ..\n   $ hg clone --narrow ssh://user@dummy/upstream narrow2 --include d0 --include d3 --include d6 --include d9\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 8 changesets with 4 changes to 4 files\n-  new changesets *:* (glob)\n+  no changes found\n   updating to branch default\n-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ cd narrow2\n   $ hg tracked\n   I path:d0\n@@ -286,32 +306,10 @@\n   checking directory manifests (tree !)\n   crosschecking files in changesets and manifests\n   checking files\n-  checked 8 changesets with 4 changes to 4 files\n-  $ hg l\n-  @  ...7: add d10/f\n-  |\n-  o  6: add d9/f\n-  |\n-  o  ...5: add d8/f\n-  |\n-  o  4: add d6/f\n-  |\n-  o  ...3: add d5/f\n-  |\n-  o  2: add d3/f\n-  |\n-  o  ...1: add d2/f\n-  |\n-  o  0: add d0/f\n-  \n+  checked 0 changesets with 0 changes to 0 files\n+  $ hg l\n   $ hg tracked --addinclude d1\n   comparing with ssh://user@dummy/upstream\n-  searching for changes\n-  saved backup bundle to $TESTTMP/narrow2/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 9 changesets with 5 changes to 5 files\n   $ hg tracked\n   I path:d0\n   I path:d1\n@@ -319,24 +317,6 @@\n   I path:d6\n   I path:d9\n   $ hg l\n-  @  ...8: add d10/f\n-  |\n-  o  7: add d9/f\n-  |\n-  o  ...6: add d8/f\n-  |\n-  o  5: add d6/f\n-  |\n-  o  ...4: add d5/f\n-  |\n-  o  3: add d3/f\n-  |\n-  o  ...2: add d2/f\n-  |\n-  o  1: add d1/f\n-  |\n-  o  0: add d0/f\n-  \n \n Verify shouldn\'t claim the repo is corrupt after a widen.\n \n@@ -346,108 +326,14 @@\n   checking directory manifests (tree !)\n   crosschecking files in changesets and manifests\n   checking files\n-  checked 9 changesets with 5 changes to 5 files\n+  checked 0 changesets with 0 changes to 0 files\n \n Widening preserves parent of local commit\n \n   $ cd ..\n   $ hg clone -q --narrow ssh://user@dummy/upstream narrow3 --include d2 -r 2\n+  abort: unknown revision \'2\'\n+  [255]\n   $ cd narrow3\n-  $ hg l\n-  @  1: add d2/f\n-  |\n-  o  ...0: add d1/f\n-  \n-  $ hg pull -q -r 3\n-  $ hg co -q tip\n-  $ hg pull -q -r 4\n-  $ echo local > d2/f\n-  $ hg ci -m local\n-  created new head\n-  $ hg l\n-  @  4: local\n-  |\n-  | o  ...3: add d4/f\n-  |/\n-  o  ...2: add d3/f\n-  |\n-  o  1: add d2/f\n-  |\n-  o  ...0: add d1/f\n-  \n-  $ hg tracked -q --addinclude d0 --addinclude d9\n-  $ hg l\n-  @  5: local\n-  |\n-  | o  ...4: add d4/f\n-  |/\n-  o  ...3: add d3/f\n-  |\n-  o  2: add d2/f\n-  |\n-  o  ...1: add d1/f\n-  |\n-  o  0: add d0/f\n-  \n-\n-Widening preserves bookmarks\n-\n-  $ cd ..\n-  $ hg clone -q --narrow ssh://user@dummy/upstream narrow-bookmarks --include d4\n-  $ cd narrow-bookmarks\n-  $ echo local > d4/f\n-  $ hg ci -m local\n-  $ hg bookmarks bookmark\n-  $ hg bookmarks\n-   * bookmark                  3:* (glob)\n-  $ hg -q tracked --addinclude d2\n-  $ hg bookmarks\n-   * bookmark                  5:* (glob)\n-  $ hg log -r bookmark -T \'{desc}\\n\'\n-  local\n-\n-Widening that fails can be recovered from\n-\n-  $ cd ..\n-  $ hg clone -q --narrow ssh://user@dummy/upstream interrupted --include d0\n-  $ cd interrupted\n-  $ echo local > d0/f\n-  $ hg ci -m local\n-  $ hg l\n-  @  2: local\n-  |\n-  o  ...1: add d10/f\n-  |\n-  o  0: add d0/f\n-  \n-  $ hg bookmarks bookmark\n-  $ hg --config hooks.pretxnchangegroup.bad=false tracked --addinclude d1\n-  comparing with ssh://user@dummy/upstream\n-  searching for changes\n-  saved backup bundle to $TESTTMP/interrupted/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnchangegroup.bad hook exited with status 1\n-  [255]\n-  $ hg l\n-  $ hg bookmarks\n-  no bookmarks set\n-  $ hg unbundle .hg/strip-backup/*-widen.hg\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 3 changesets with 2 changes to 1 files\n-  new changesets *:* (glob)\n-  (run \'hg update\' to get a working copy)\n-  $ hg l\n-  o  2: local\n-  |\n-  o  ...1: add d10/f\n-  |\n-  o  0: add d0/f\n-  \n-  $ hg bookmarks\n-   * bookmark                  2:* (glob)\n+  $TESTTMP.sh: line 194: cd: narrow3: $ENOENT$\n+  $ hg l\n', 2443, 2445, 'truncated \\uXXXX escape') decoding diff, sorry

test-narrow.t#flat#lfs-off

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-narrow.t\n+++ c:/hgdev/src/tests/test-narrow.t#flat#lfs-off.err\n@@ -35,18 +35,8 @@\n   >   hg add d$x/f\n   >   hg commit -m "add d$x/f"\n   > done\n+  /usr/bin/env: python3: $ENOENT$\n   $ hg log -T "{rev}: {desc}\\n"\n-  10: add d10/f\n-  9: add d9/f\n-  8: add d8/f\n-  7: add d7/f\n-  6: add d6/f\n-  5: add d5/f\n-  4: add d4/f\n-  3: add d3/f\n-  2: add d2/f\n-  1: add d1/f\n-  0: add d0/f\n   $ cd ..\n \n Error if \'.\' or \'..\' are in the directory to track.\n@@ -62,77 +52,52 @@\n \n Names with \'.\' in them are OK.\n   $ hg clone --narrow ssh://user@dummy/master should-work --include a/.b/c\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files\n-  new changesets * (glob)\n+  no changes found\n   updating to branch default\n   0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n \n Test repo with local changes\n   $ hg clone --narrow ssh://user@dummy/master narrow-local-changes --include d0 --include d3 --include d6\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 6 changesets with 3 changes to 3 files\n-  new changesets *:* (glob)\n+  no changes found\n   updating to branch default\n-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ cd narrow-local-changes\n   $ echo local change >> d0/f\n+  $TESTTMP.sh: line 46: d0/f: $ENOENT$\n+  [1]\n   $ hg ci -m \'local change to d0\'\n+  nothing changed\n+  [1]\n   $ hg co \'.^\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo local change >> d3/f\n+  $TESTTMP.sh: line 52: d3/f: $ENOENT$\n+  [1]\n   $ hg ci -m \'local hidden change to d3\'\n-  created new head\n+  nothing changed\n+  [1]\n   $ hg ci --amend -m \'local change to d3\'\n+  abort: cannot amend null changeset\n+  (no changeset checked out)\n+  [10]\n   $ hg tracked --removeinclude d0\n   comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  The following changeset(s) or their ancestors have local changes not on the remote:\n-  * (glob)\n-  abort: local changes found\n-  (use --force-delete-local-changes to ignore)\n-  [255]\n+  looking for local changes to affected paths\n Check that nothing was removed by the failed attempts\n   $ hg tracked\n-  I path:d0\n   I path:d3\n   I path:d6\n   $ hg files\n-  d0/f\n-  d3/f\n-  d6/f\n+  [1]\n   $ find *\n-  d0\n-  d0/f\n-  d3\n-  d3/f\n-  d6\n-  d6/f\n+  find: `*\': $ENOENT$\n+  [1]\n   $ hg verify -q\n Force deletion of local changes\n   $ hg log -T "{rev}: {desc} {outsidenarrow}\\n"\n-  8: local change to d3 \n-  6: local change to d0 \n-  5: add d10/f outsidenarrow\n-  4: add d6/f \n-  3: add d5/f outsidenarrow\n-  2: add d3/f \n-  1: add d2/f outsidenarrow\n-  0: add d0/f \n   $ hg tracked --removeinclude d0 --force-delete-local-changes\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  The following changeset(s) or their ancestors have local changes not on the remote:\n-  * (glob)\n-  saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)\n+  nothing to widen or narrow\n   deleting data/d0/f.i (reporevlogstore !)\n   deleting meta/d0/00manifest.i (tree !)\n   deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)\n@@ -140,31 +105,25 @@\n   deleting data/d0/f/index (reposimplestore !)\n \n   $ hg log -T "{rev}: {desc} {outsidenarrow}\\n"\n-  7: local change to d3 \n-  5: add d10/f outsidenarrow\n-  4: add d6/f \n-  3: add d5/f outsidenarrow\n-  2: add d3/f \n-  1: add d2/f outsidenarrow\n-  0: add d0/f outsidenarrow\n Can restore stripped local changes after widening\n   $ hg tracked --addinclude d0 -q\n   $ hg unbundle .hg/strip-backup/*-narrow.hg -q\n+  abort: .hg/strip-backup/*-narrow.hg: $ENOTDIR$\n+  [255]\n   $ hg --hidden co -r \'desc("local change to d0")\' -q\n+  abort: empty revision set\n+  [255]\n   $ cat d0/f\n-  0\n-  local change\n+  cat: d0/f: $ENOENT$\n+  [1]\n Pruned commits affecting removed paths should not prevent narrowing\n   $ hg co \'.^\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ hg debugobsolete `hg log -T \'{node}\' -r \'desc("local change to d0")\'`\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n   $ hg tracked --removeinclude d0\n   comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)\n+  looking for local changes to affected paths\n   deleting data/d0/f.i (reporevlogstore !)\n   deleting meta/d0/00manifest.i (tree !)\n   deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)\n@@ -173,24 +132,24 @@\n \n Updates off of stripped commit if necessary\n   $ hg co -r \'desc("local change to d3")\' -q\n+  abort: empty revision set\n+  [255]\n   $ echo local change >> d6/f\n+  $TESTTMP.sh: line 90: d6/f: $ENOENT$\n+  [1]\n   $ hg ci -m \'local change to d6\'\n+  nothing changed\n+  [1]\n   $ hg tracked --removeinclude d3 --force-delete-local-changes\n   comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  The following changeset(s) or their ancestors have local changes not on the remote:\n-  * (glob)\n-  * (glob)\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)\n+  looking for local changes to affected paths\n   deleting data/d3/f.i (reporevlogstore !)\n   deleting meta/d3/00manifest.i (tree !)\n   deleting data/d3/f/2661d26c649684b482d10f91960cc3db683c38b4 (reposimplestore !)\n   deleting data/d3/f/99fa7136105a15e2045ce3d9152e4837c5349e4d (reposimplestore !)\n   deleting data/d3/f/index (reposimplestore !)\n   $ hg log -T \'{desc}\\n\' -r .\n-  add d10/f\n+  \n Updates to nullid if necessary\n   $ hg tracked --addinclude d3 -q\n   $ hg co null -q\n@@ -198,7 +157,6 @@\n   $ echo local change > d3/f\n   $ hg add d3/f\n   $ hg ci -m \'local change to d3\'\n-  created new head\n   $ hg tracked --removeinclude d3 --force-delete-local-changes\n   comparing with ssh://user@dummy/master\n   searching for changes\n@@ -212,6 +170,55 @@\n   deleting data/d3/f/2661d26c649684b482d10f91960cc3db683c38b4 (reposimplestore !)\n   deleting data/d3/f/5ce0767945cbdbca3b924bb9fbf5143f72ab40ac (reposimplestore !)\n   deleting data/d3/f/index (reposimplestore !)\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow-local-changes\\.hg\\strip-backup/b0adba10fa79-fbbbf907-narrow.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: narrow\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowcommands.py", line 637, in trackedcmd\n+      opts[b\'force_delete_local_changes\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowcommands.py", line 271, in _narrow\n+      repair.strip(ui, unfi, tostrip, topic=b\'narrow\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg id\n   000000000000\n   $ cd ..\n@@ -220,23 +227,27 @@\n   $ hg clone --narrow ssh://user@dummy/master narrow-obsmarkers --include d0 --include d3 -q\n   $ cd narrow-obsmarkers\n   $ echo a >> d0/f2\n+  $TESTTMP.sh: line 120: d0/f2: $ENOENT$\n+  [1]\n   $ hg add d0/f2\n+  d0/f2: $ENOTDIR$\n+  [1]\n   $ hg ci -m \'modify d0/\'\n+  nothing changed\n+  [1]\n   $ echo a >> d3/f2\n+  $TESTTMP.sh: line 126: d3/f2: $ENOENT$\n+  [1]\n   $ hg add d3/f2\n+  d3/f2: $ENOTDIR$\n+  [1]\n   $ hg commit --amend -m \'modify d0/ and d3/\'\n+  abort: cannot amend null changeset\n+  (no changeset checked out)\n+  [10]\n   $ hg log -T "{rev}: {desc}\\n"\n-  5: modify d0/ and d3/\n-  3: add d10/f\n-  2: add d3/f\n-  1: add d2/f\n-  0: add d0/f\n   $ hg tracked --removeinclude d3 --force-delete-local-changes -q\n   $ hg log -T "{rev}: {desc}\\n"\n-  3: add d10/f\n-  2: add d3/f\n-  1: add d2/f\n-  0: add d0/f\n   $ cd ..\n \n Widening doesn\'t lose bookmarks\n@@ -244,251 +255,14 @@\n   $ cd widen-bookmarks\n   $ hg bookmark my-bookmark\n   $ hg log -T "{rev}: {desc} {bookmarks}\\n"\n-  1: add d10/f my-bookmark\n-  0: add d0/f \n   $ hg tracked --addinclude d3 -q\n   $ hg log -T "{rev}: {desc} {bookmarks}\\n"\n-  3: add d10/f my-bookmark\n-  2: add d3/f \n-  1: add d2/f \n-  0: add d0/f \n   $ cd ..\n \n Can remove last include, making repo empty\n   $ hg clone --narrow ssh://user@dummy/master narrow-empty --include d0 -r 5\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 1 changes to 1 files\n-  new changesets *:* (glob)\n-  updating to branch default\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: unknown revision \'5\'\n+  [255]\n   $ cd narrow-empty\n+  $TESTTMP.sh: line 156: cd: narrow-empty: $ENOENT$\n   $ hg tracked --removeinclude d0\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  deleting data/d0/f.i (reporevlogstore !)\n-  deleting meta/d0/00manifest.i (tree !)\n-  deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)\n-  deleting data/d0/f/index (reposimplestore !)\n-  $ hg tracked\n-  $ hg files\n-  [1]\n-  $ test -d d0\n-  [1]\n-Do some work in the empty clone\n-  $ hg diff --change .\n-  $ hg branch foo\n-  marked working directory as branch foo\n-  (branches are permanent and global, did you want a bookmark?)\n-  $ hg ci -m empty\n-  $ hg log -T "{rev}: {desc} {outsidenarrow}\\n"\n-  2: empty \n-  1: add d5/f outsidenarrow\n-  0: add d0/f outsidenarrow\n-  $ hg pull -q\n-Can widen the empty clone\n-  $ hg tracked --addinclude d0\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  saved backup bundle to $TESTTMP/narrow-empty/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 3 changesets with 1 changes to 1 files\n-  $ hg tracked\n-  I path:d0\n-  $ hg files\n-  d0/f\n-  $ find *\n-  d0\n-  d0/f\n-  $ cd ..\n-\n-TODO(martinvonz): test including e.g. d3/g and then removing it once\n-https://bitbucket.org/Google/narrowhg/issues/6 is fixed\n-\n-  $ hg clone --narrow ssh://user@dummy/master narrow --include d0 --include d3 --include d6 --include d9\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 8 changesets with 4 changes to 4 files\n-  new changesets *:* (glob)\n-  updating to branch default\n-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ cd narrow\n-  $ hg tracked\n-  I path:d0\n-  I path:d3\n-  I path:d6\n-  I path:d9\n-  $ hg tracked --removeinclude d6\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  deleting data/d6/f.i (reporevlogstore !)\n-  deleting meta/d6/00manifest.i (tree !)\n-  deleting data/d6/f/7339d30678f451ac8c3f38753beeb4cf2e1655c7 (reposimplestore !)\n-  deleting data/d6/f/index (reposimplestore !)\n-  $ hg tracked\n-  I path:d0\n-  I path:d3\n-  I path:d9\n-#if repofncache\n-  $ hg debugrebuildfncache\n-  fncache already up to date\n-#endif\n-  $ find *\n-  d0\n-  d0/f\n-  d3\n-  d3/f\n-  d9\n-  d9/f\n-  $ hg verify -q\n-  $ hg tracked --addexclude d3/f\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  deleting data/d3/f.i (reporevlogstore !)\n-  deleting data/d3/f/2661d26c649684b482d10f91960cc3db683c38b4 (reposimplestore !)\n-  deleting data/d3/f/index (reposimplestore !)\n-  $ hg tracked\n-  I path:d0\n-  I path:d3\n-  I path:d9\n-  X path:d3/f\n-#if repofncache\n-  $ hg debugrebuildfncache\n-  fncache already up to date\n-#endif\n-  $ find *\n-  d0\n-  d0/f\n-  d9\n-  d9/f\n-  $ hg verify -q\n-  $ hg tracked --addexclude d0\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  deleting data/d0/f.i (reporevlogstore !)\n-  deleting meta/d0/00manifest.i (tree !)\n-  deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)\n-  deleting data/d0/f/index (reposimplestore !)\n-  $ hg tracked\n-  I path:d3\n-  I path:d9\n-  X path:d0\n-  X path:d3/f\n-#if repofncache\n-  $ hg debugrebuildfncache\n-  fncache already up to date\n-#endif\n-  $ find *\n-  d9\n-  d9/f\n-\n-Make a 15 of changes to d9 to test the path without --verbose\n-(Note: using regexes instead of "* (glob)" because if the test fails, it\n-produces more sensible diffs)\n-  $ hg tracked\n-  I path:d3\n-  I path:d9\n-  X path:d0\n-  X path:d3/f\n-  $ for x in `$TESTDIR/seq.py 1 15`\n-  > do\n-  >   echo local change >> d9/f\n-  >   hg commit -m "change $x to d9/f"\n-  > done\n-  $ hg tracked --removeinclude d9\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  The following changeset(s) or their ancestors have local changes not on the remote:\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ...and 5 more, use --verbose to list all\n-  abort: local changes found\n-  (use --force-delete-local-changes to ignore)\n-  [255]\n-Now test it *with* verbose.\n-  $ hg tracked --removeinclude d9 --verbose\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  The following changeset(s) or their ancestors have local changes not on the remote:\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  abort: local changes found\n-  (use --force-delete-local-changes to ignore)\n-  [255]\n-  $ cd ..\n-\n-Test --auto-remove-includes\n-  $ hg clone --narrow ssh://user@dummy/master narrow-auto-remove -q \\\n-  > --include d0 --include d1 --include d2\n-  $ cd narrow-auto-remove\n-  $ echo a >> d0/f\n-  $ hg ci -m \'local change to d0\'\n-  $ hg co \'.^\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ echo a >> d1/f\n-  $ hg ci -m \'local change to d1\'\n-  created new head\n-  $ hg debugobsolete $(hg log -T \'{node}\' -r \'desc("local change to d0")\')\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n-  $ echo n | hg tracked --auto-remove-includes --config ui.interactive=yes\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for unused includes to remove\n-  path:d0\n-  path:d2\n-  remove these unused includes (yn)? n\n-  $ hg tracked --auto-remove-includes\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for unused includes to remove\n-  path:d0\n-  path:d2\n-  remove these unused includes (yn)? y\n-  looking for local changes to affected paths\n-  saved backup bundle to $TESTTMP/narrow-auto-remove/.hg/strip-backup/*-narrow.hg (glob)\n-  deleting data/d0/f.i\n-  deleting data/d2/f.i\n-  deleting meta/d0/00manifest.i (tree !)\n-  deleting meta/d2/00manifest.i (tree !)\n-  $ hg tracked\n-  I path:d1\n-  $ hg files\n-  d1/f\n-  $ hg tracked --auto-remove-includes\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for unused includes to remove\n-  found no unused includes\n', 8616, 8618, 'truncated \\uXXXX escape') decoding diff, sorry

test-narrow.t#flat#lfs-on

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-narrow.t\n+++ c:/hgdev/src/tests/test-narrow.t#flat#lfs-on.err\n@@ -35,18 +35,8 @@\n   >   hg add d$x/f\n   >   hg commit -m "add d$x/f"\n   > done\n+  /usr/bin/env: python3: $ENOENT$\n   $ hg log -T "{rev}: {desc}\\n"\n-  10: add d10/f\n-  9: add d9/f\n-  8: add d8/f\n-  7: add d7/f\n-  6: add d6/f\n-  5: add d5/f\n-  4: add d4/f\n-  3: add d3/f\n-  2: add d2/f\n-  1: add d1/f\n-  0: add d0/f\n   $ cd ..\n \n Error if \'.\' or \'..\' are in the directory to track.\n@@ -62,77 +52,52 @@\n \n Names with \'.\' in them are OK.\n   $ hg clone --narrow ssh://user@dummy/master should-work --include a/.b/c\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files\n-  new changesets * (glob)\n+  no changes found\n   updating to branch default\n   0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n \n Test repo with local changes\n   $ hg clone --narrow ssh://user@dummy/master narrow-local-changes --include d0 --include d3 --include d6\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 6 changesets with 3 changes to 3 files\n-  new changesets *:* (glob)\n+  no changes found\n   updating to branch default\n-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ cd narrow-local-changes\n   $ echo local change >> d0/f\n+  $TESTTMP.sh: line 46: d0/f: $ENOENT$\n+  [1]\n   $ hg ci -m \'local change to d0\'\n+  nothing changed\n+  [1]\n   $ hg co \'.^\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo local change >> d3/f\n+  $TESTTMP.sh: line 52: d3/f: $ENOENT$\n+  [1]\n   $ hg ci -m \'local hidden change to d3\'\n-  created new head\n+  nothing changed\n+  [1]\n   $ hg ci --amend -m \'local change to d3\'\n+  abort: cannot amend null changeset\n+  (no changeset checked out)\n+  [10]\n   $ hg tracked --removeinclude d0\n   comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  The following changeset(s) or their ancestors have local changes not on the remote:\n-  * (glob)\n-  abort: local changes found\n-  (use --force-delete-local-changes to ignore)\n-  [255]\n+  looking for local changes to affected paths\n Check that nothing was removed by the failed attempts\n   $ hg tracked\n-  I path:d0\n   I path:d3\n   I path:d6\n   $ hg files\n-  d0/f\n-  d3/f\n-  d6/f\n+  [1]\n   $ find *\n-  d0\n-  d0/f\n-  d3\n-  d3/f\n-  d6\n-  d6/f\n+  find: `*\': $ENOENT$\n+  [1]\n   $ hg verify -q\n Force deletion of local changes\n   $ hg log -T "{rev}: {desc} {outsidenarrow}\\n"\n-  8: local change to d3 \n-  6: local change to d0 \n-  5: add d10/f outsidenarrow\n-  4: add d6/f \n-  3: add d5/f outsidenarrow\n-  2: add d3/f \n-  1: add d2/f outsidenarrow\n-  0: add d0/f \n   $ hg tracked --removeinclude d0 --force-delete-local-changes\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  The following changeset(s) or their ancestors have local changes not on the remote:\n-  * (glob)\n-  saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)\n+  nothing to widen or narrow\n   deleting data/d0/f.i (reporevlogstore !)\n   deleting meta/d0/00manifest.i (tree !)\n   deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)\n@@ -140,31 +105,25 @@\n   deleting data/d0/f/index (reposimplestore !)\n \n   $ hg log -T "{rev}: {desc} {outsidenarrow}\\n"\n-  7: local change to d3 \n-  5: add d10/f outsidenarrow\n-  4: add d6/f \n-  3: add d5/f outsidenarrow\n-  2: add d3/f \n-  1: add d2/f outsidenarrow\n-  0: add d0/f outsidenarrow\n Can restore stripped local changes after widening\n   $ hg tracked --addinclude d0 -q\n   $ hg unbundle .hg/strip-backup/*-narrow.hg -q\n+  abort: .hg/strip-backup/*-narrow.hg: $ENOTDIR$\n+  [255]\n   $ hg --hidden co -r \'desc("local change to d0")\' -q\n+  abort: empty revision set\n+  [255]\n   $ cat d0/f\n-  0\n-  local change\n+  cat: d0/f: $ENOENT$\n+  [1]\n Pruned commits affecting removed paths should not prevent narrowing\n   $ hg co \'.^\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ hg debugobsolete `hg log -T \'{node}\' -r \'desc("local change to d0")\'`\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n   $ hg tracked --removeinclude d0\n   comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)\n+  looking for local changes to affected paths\n   deleting data/d0/f.i (reporevlogstore !)\n   deleting meta/d0/00manifest.i (tree !)\n   deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)\n@@ -173,24 +132,24 @@\n \n Updates off of stripped commit if necessary\n   $ hg co -r \'desc("local change to d3")\' -q\n+  abort: empty revision set\n+  [255]\n   $ echo local change >> d6/f\n+  $TESTTMP.sh: line 90: d6/f: $ENOENT$\n+  [1]\n   $ hg ci -m \'local change to d6\'\n+  nothing changed\n+  [1]\n   $ hg tracked --removeinclude d3 --force-delete-local-changes\n   comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  The following changeset(s) or their ancestors have local changes not on the remote:\n-  * (glob)\n-  * (glob)\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)\n+  looking for local changes to affected paths\n   deleting data/d3/f.i (reporevlogstore !)\n   deleting meta/d3/00manifest.i (tree !)\n   deleting data/d3/f/2661d26c649684b482d10f91960cc3db683c38b4 (reposimplestore !)\n   deleting data/d3/f/99fa7136105a15e2045ce3d9152e4837c5349e4d (reposimplestore !)\n   deleting data/d3/f/index (reposimplestore !)\n   $ hg log -T \'{desc}\\n\' -r .\n-  add d10/f\n+  \n Updates to nullid if necessary\n   $ hg tracked --addinclude d3 -q\n   $ hg co null -q\n@@ -198,7 +157,6 @@\n   $ echo local change > d3/f\n   $ hg add d3/f\n   $ hg ci -m \'local change to d3\'\n-  created new head\n   $ hg tracked --removeinclude d3 --force-delete-local-changes\n   comparing with ssh://user@dummy/master\n   searching for changes\n@@ -212,6 +170,55 @@\n   deleting data/d3/f/2661d26c649684b482d10f91960cc3db683c38b4 (reposimplestore !)\n   deleting data/d3/f/5ce0767945cbdbca3b924bb9fbf5143f72ab40ac (reposimplestore !)\n   deleting data/d3/f/index (reposimplestore !)\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow-local-changes\\.hg\\strip-backup/b0adba10fa79-fbbbf907-narrow.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: narrow\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowcommands.py", line 637, in trackedcmd\n+      opts[b\'force_delete_local_changes\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowcommands.py", line 271, in _narrow\n+      repair.strip(ui, unfi, tostrip, topic=b\'narrow\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg id\n   000000000000\n   $ cd ..\n@@ -220,23 +227,27 @@\n   $ hg clone --narrow ssh://user@dummy/master narrow-obsmarkers --include d0 --include d3 -q\n   $ cd narrow-obsmarkers\n   $ echo a >> d0/f2\n+  $TESTTMP.sh: line 120: d0/f2: $ENOENT$\n+  [1]\n   $ hg add d0/f2\n+  d0/f2: $ENOTDIR$\n+  [1]\n   $ hg ci -m \'modify d0/\'\n+  nothing changed\n+  [1]\n   $ echo a >> d3/f2\n+  $TESTTMP.sh: line 126: d3/f2: $ENOENT$\n+  [1]\n   $ hg add d3/f2\n+  d3/f2: $ENOTDIR$\n+  [1]\n   $ hg commit --amend -m \'modify d0/ and d3/\'\n+  abort: cannot amend null changeset\n+  (no changeset checked out)\n+  [10]\n   $ hg log -T "{rev}: {desc}\\n"\n-  5: modify d0/ and d3/\n-  3: add d10/f\n-  2: add d3/f\n-  1: add d2/f\n-  0: add d0/f\n   $ hg tracked --removeinclude d3 --force-delete-local-changes -q\n   $ hg log -T "{rev}: {desc}\\n"\n-  3: add d10/f\n-  2: add d3/f\n-  1: add d2/f\n-  0: add d0/f\n   $ cd ..\n \n Widening doesn\'t lose bookmarks\n@@ -244,251 +255,14 @@\n   $ cd widen-bookmarks\n   $ hg bookmark my-bookmark\n   $ hg log -T "{rev}: {desc} {bookmarks}\\n"\n-  1: add d10/f my-bookmark\n-  0: add d0/f \n   $ hg tracked --addinclude d3 -q\n   $ hg log -T "{rev}: {desc} {bookmarks}\\n"\n-  3: add d10/f my-bookmark\n-  2: add d3/f \n-  1: add d2/f \n-  0: add d0/f \n   $ cd ..\n \n Can remove last include, making repo empty\n   $ hg clone --narrow ssh://user@dummy/master narrow-empty --include d0 -r 5\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 1 changes to 1 files\n-  new changesets *:* (glob)\n-  updating to branch default\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: unknown revision \'5\'\n+  [255]\n   $ cd narrow-empty\n+  $TESTTMP.sh: line 156: cd: narrow-empty: $ENOENT$\n   $ hg tracked --removeinclude d0\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  deleting data/d0/f.i (reporevlogstore !)\n-  deleting meta/d0/00manifest.i (tree !)\n-  deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)\n-  deleting data/d0/f/index (reposimplestore !)\n-  $ hg tracked\n-  $ hg files\n-  [1]\n-  $ test -d d0\n-  [1]\n-Do some work in the empty clone\n-  $ hg diff --change .\n-  $ hg branch foo\n-  marked working directory as branch foo\n-  (branches are permanent and global, did you want a bookmark?)\n-  $ hg ci -m empty\n-  $ hg log -T "{rev}: {desc} {outsidenarrow}\\n"\n-  2: empty \n-  1: add d5/f outsidenarrow\n-  0: add d0/f outsidenarrow\n-  $ hg pull -q\n-Can widen the empty clone\n-  $ hg tracked --addinclude d0\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  saved backup bundle to $TESTTMP/narrow-empty/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 3 changesets with 1 changes to 1 files\n-  $ hg tracked\n-  I path:d0\n-  $ hg files\n-  d0/f\n-  $ find *\n-  d0\n-  d0/f\n-  $ cd ..\n-\n-TODO(martinvonz): test including e.g. d3/g and then removing it once\n-https://bitbucket.org/Google/narrowhg/issues/6 is fixed\n-\n-  $ hg clone --narrow ssh://user@dummy/master narrow --include d0 --include d3 --include d6 --include d9\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 8 changesets with 4 changes to 4 files\n-  new changesets *:* (glob)\n-  updating to branch default\n-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ cd narrow\n-  $ hg tracked\n-  I path:d0\n-  I path:d3\n-  I path:d6\n-  I path:d9\n-  $ hg tracked --removeinclude d6\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  deleting data/d6/f.i (reporevlogstore !)\n-  deleting meta/d6/00manifest.i (tree !)\n-  deleting data/d6/f/7339d30678f451ac8c3f38753beeb4cf2e1655c7 (reposimplestore !)\n-  deleting data/d6/f/index (reposimplestore !)\n-  $ hg tracked\n-  I path:d0\n-  I path:d3\n-  I path:d9\n-#if repofncache\n-  $ hg debugrebuildfncache\n-  fncache already up to date\n-#endif\n-  $ find *\n-  d0\n-  d0/f\n-  d3\n-  d3/f\n-  d9\n-  d9/f\n-  $ hg verify -q\n-  $ hg tracked --addexclude d3/f\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  deleting data/d3/f.i (reporevlogstore !)\n-  deleting data/d3/f/2661d26c649684b482d10f91960cc3db683c38b4 (reposimplestore !)\n-  deleting data/d3/f/index (reposimplestore !)\n-  $ hg tracked\n-  I path:d0\n-  I path:d3\n-  I path:d9\n-  X path:d3/f\n-#if repofncache\n-  $ hg debugrebuildfncache\n-  fncache already up to date\n-#endif\n-  $ find *\n-  d0\n-  d0/f\n-  d9\n-  d9/f\n-  $ hg verify -q\n-  $ hg tracked --addexclude d0\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  deleting data/d0/f.i (reporevlogstore !)\n-  deleting meta/d0/00manifest.i (tree !)\n-  deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)\n-  deleting data/d0/f/index (reposimplestore !)\n-  $ hg tracked\n-  I path:d3\n-  I path:d9\n-  X path:d0\n-  X path:d3/f\n-#if repofncache\n-  $ hg debugrebuildfncache\n-  fncache already up to date\n-#endif\n-  $ find *\n-  d9\n-  d9/f\n-\n-Make a 15 of changes to d9 to test the path without --verbose\n-(Note: using regexes instead of "* (glob)" because if the test fails, it\n-produces more sensible diffs)\n-  $ hg tracked\n-  I path:d3\n-  I path:d9\n-  X path:d0\n-  X path:d3/f\n-  $ for x in `$TESTDIR/seq.py 1 15`\n-  > do\n-  >   echo local change >> d9/f\n-  >   hg commit -m "change $x to d9/f"\n-  > done\n-  $ hg tracked --removeinclude d9\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  The following changeset(s) or their ancestors have local changes not on the remote:\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ...and 5 more, use --verbose to list all\n-  abort: local changes found\n-  (use --force-delete-local-changes to ignore)\n-  [255]\n-Now test it *with* verbose.\n-  $ hg tracked --removeinclude d9 --verbose\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  The following changeset(s) or their ancestors have local changes not on the remote:\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  abort: local changes found\n-  (use --force-delete-local-changes to ignore)\n-  [255]\n-  $ cd ..\n-\n-Test --auto-remove-includes\n-  $ hg clone --narrow ssh://user@dummy/master narrow-auto-remove -q \\\n-  > --include d0 --include d1 --include d2\n-  $ cd narrow-auto-remove\n-  $ echo a >> d0/f\n-  $ hg ci -m \'local change to d0\'\n-  $ hg co \'.^\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ echo a >> d1/f\n-  $ hg ci -m \'local change to d1\'\n-  created new head\n-  $ hg debugobsolete $(hg log -T \'{node}\' -r \'desc("local change to d0")\')\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n-  $ echo n | hg tracked --auto-remove-includes --config ui.interactive=yes\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for unused includes to remove\n-  path:d0\n-  path:d2\n-  remove these unused includes (yn)? n\n-  $ hg tracked --auto-remove-includes\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for unused includes to remove\n-  path:d0\n-  path:d2\n-  remove these unused includes (yn)? y\n-  looking for local changes to affected paths\n-  saved backup bundle to $TESTTMP/narrow-auto-remove/.hg/strip-backup/*-narrow.hg (glob)\n-  deleting data/d0/f.i\n-  deleting data/d2/f.i\n-  deleting meta/d0/00manifest.i (tree !)\n-  deleting meta/d2/00manifest.i (tree !)\n-  $ hg tracked\n-  I path:d1\n-  $ hg files\n-  d1/f\n-  $ hg tracked --auto-remove-includes\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for unused includes to remove\n-  found no unused includes\n', 8615, 8617, 'truncated \\uXXXX escape') decoding diff, sorry

test-narrow.t#tree#lfs-off

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-narrow.t\n+++ c:/hgdev/src/tests/test-narrow.t#tree#lfs-off.err\n@@ -35,18 +35,8 @@\n   >   hg add d$x/f\n   >   hg commit -m "add d$x/f"\n   > done\n+  /usr/bin/env: python3: $ENOENT$\n   $ hg log -T "{rev}: {desc}\\n"\n-  10: add d10/f\n-  9: add d9/f\n-  8: add d8/f\n-  7: add d7/f\n-  6: add d6/f\n-  5: add d5/f\n-  4: add d4/f\n-  3: add d3/f\n-  2: add d2/f\n-  1: add d1/f\n-  0: add d0/f\n   $ cd ..\n \n Error if \'.\' or \'..\' are in the directory to track.\n@@ -62,77 +52,52 @@\n \n Names with \'.\' in them are OK.\n   $ hg clone --narrow ssh://user@dummy/master should-work --include a/.b/c\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files\n-  new changesets * (glob)\n+  no changes found\n   updating to branch default\n   0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n \n Test repo with local changes\n   $ hg clone --narrow ssh://user@dummy/master narrow-local-changes --include d0 --include d3 --include d6\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 6 changesets with 3 changes to 3 files\n-  new changesets *:* (glob)\n+  no changes found\n   updating to branch default\n-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ cd narrow-local-changes\n   $ echo local change >> d0/f\n+  $TESTTMP.sh: line 46: d0/f: $ENOENT$\n+  [1]\n   $ hg ci -m \'local change to d0\'\n+  nothing changed\n+  [1]\n   $ hg co \'.^\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo local change >> d3/f\n+  $TESTTMP.sh: line 52: d3/f: $ENOENT$\n+  [1]\n   $ hg ci -m \'local hidden change to d3\'\n-  created new head\n+  nothing changed\n+  [1]\n   $ hg ci --amend -m \'local change to d3\'\n+  abort: cannot amend null changeset\n+  (no changeset checked out)\n+  [10]\n   $ hg tracked --removeinclude d0\n   comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  The following changeset(s) or their ancestors have local changes not on the remote:\n-  * (glob)\n-  abort: local changes found\n-  (use --force-delete-local-changes to ignore)\n-  [255]\n+  looking for local changes to affected paths\n Check that nothing was removed by the failed attempts\n   $ hg tracked\n-  I path:d0\n   I path:d3\n   I path:d6\n   $ hg files\n-  d0/f\n-  d3/f\n-  d6/f\n+  [1]\n   $ find *\n-  d0\n-  d0/f\n-  d3\n-  d3/f\n-  d6\n-  d6/f\n+  find: `*\': $ENOENT$\n+  [1]\n   $ hg verify -q\n Force deletion of local changes\n   $ hg log -T "{rev}: {desc} {outsidenarrow}\\n"\n-  8: local change to d3 \n-  6: local change to d0 \n-  5: add d10/f outsidenarrow\n-  4: add d6/f \n-  3: add d5/f outsidenarrow\n-  2: add d3/f \n-  1: add d2/f outsidenarrow\n-  0: add d0/f \n   $ hg tracked --removeinclude d0 --force-delete-local-changes\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  The following changeset(s) or their ancestors have local changes not on the remote:\n-  * (glob)\n-  saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)\n+  nothing to widen or narrow\n   deleting data/d0/f.i (reporevlogstore !)\n   deleting meta/d0/00manifest.i (tree !)\n   deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)\n@@ -140,31 +105,25 @@\n   deleting data/d0/f/index (reposimplestore !)\n \n   $ hg log -T "{rev}: {desc} {outsidenarrow}\\n"\n-  7: local change to d3 \n-  5: add d10/f outsidenarrow\n-  4: add d6/f \n-  3: add d5/f outsidenarrow\n-  2: add d3/f \n-  1: add d2/f outsidenarrow\n-  0: add d0/f outsidenarrow\n Can restore stripped local changes after widening\n   $ hg tracked --addinclude d0 -q\n   $ hg unbundle .hg/strip-backup/*-narrow.hg -q\n+  abort: .hg/strip-backup/*-narrow.hg: $ENOTDIR$\n+  [255]\n   $ hg --hidden co -r \'desc("local change to d0")\' -q\n+  abort: empty revision set\n+  [255]\n   $ cat d0/f\n-  0\n-  local change\n+  cat: d0/f: $ENOENT$\n+  [1]\n Pruned commits affecting removed paths should not prevent narrowing\n   $ hg co \'.^\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ hg debugobsolete `hg log -T \'{node}\' -r \'desc("local change to d0")\'`\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n   $ hg tracked --removeinclude d0\n   comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)\n+  looking for local changes to affected paths\n   deleting data/d0/f.i (reporevlogstore !)\n   deleting meta/d0/00manifest.i (tree !)\n   deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)\n@@ -173,24 +132,24 @@\n \n Updates off of stripped commit if necessary\n   $ hg co -r \'desc("local change to d3")\' -q\n+  abort: empty revision set\n+  [255]\n   $ echo local change >> d6/f\n+  $TESTTMP.sh: line 90: d6/f: $ENOENT$\n+  [1]\n   $ hg ci -m \'local change to d6\'\n+  nothing changed\n+  [1]\n   $ hg tracked --removeinclude d3 --force-delete-local-changes\n   comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  The following changeset(s) or their ancestors have local changes not on the remote:\n-  * (glob)\n-  * (glob)\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)\n+  looking for local changes to affected paths\n   deleting data/d3/f.i (reporevlogstore !)\n   deleting meta/d3/00manifest.i (tree !)\n   deleting data/d3/f/2661d26c649684b482d10f91960cc3db683c38b4 (reposimplestore !)\n   deleting data/d3/f/99fa7136105a15e2045ce3d9152e4837c5349e4d (reposimplestore !)\n   deleting data/d3/f/index (reposimplestore !)\n   $ hg log -T \'{desc}\\n\' -r .\n-  add d10/f\n+  \n Updates to nullid if necessary\n   $ hg tracked --addinclude d3 -q\n   $ hg co null -q\n@@ -198,7 +157,6 @@\n   $ echo local change > d3/f\n   $ hg add d3/f\n   $ hg ci -m \'local change to d3\'\n-  created new head\n   $ hg tracked --removeinclude d3 --force-delete-local-changes\n   comparing with ssh://user@dummy/master\n   searching for changes\n@@ -212,6 +170,55 @@\n   deleting data/d3/f/2661d26c649684b482d10f91960cc3db683c38b4 (reposimplestore !)\n   deleting data/d3/f/5ce0767945cbdbca3b924bb9fbf5143f72ab40ac (reposimplestore !)\n   deleting data/d3/f/index (reposimplestore !)\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow-local-changes\\.hg\\strip-backup/b0adba10fa79-fbbbf907-narrow.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: narrow\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowcommands.py", line 637, in trackedcmd\n+      opts[b\'force_delete_local_changes\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowcommands.py", line 271, in _narrow\n+      repair.strip(ui, unfi, tostrip, topic=b\'narrow\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg id\n   000000000000\n   $ cd ..\n@@ -220,23 +227,27 @@\n   $ hg clone --narrow ssh://user@dummy/master narrow-obsmarkers --include d0 --include d3 -q\n   $ cd narrow-obsmarkers\n   $ echo a >> d0/f2\n+  $TESTTMP.sh: line 120: d0/f2: $ENOENT$\n+  [1]\n   $ hg add d0/f2\n+  d0/f2: $ENOTDIR$\n+  [1]\n   $ hg ci -m \'modify d0/\'\n+  nothing changed\n+  [1]\n   $ echo a >> d3/f2\n+  $TESTTMP.sh: line 126: d3/f2: $ENOENT$\n+  [1]\n   $ hg add d3/f2\n+  d3/f2: $ENOTDIR$\n+  [1]\n   $ hg commit --amend -m \'modify d0/ and d3/\'\n+  abort: cannot amend null changeset\n+  (no changeset checked out)\n+  [10]\n   $ hg log -T "{rev}: {desc}\\n"\n-  5: modify d0/ and d3/\n-  3: add d10/f\n-  2: add d3/f\n-  1: add d2/f\n-  0: add d0/f\n   $ hg tracked --removeinclude d3 --force-delete-local-changes -q\n   $ hg log -T "{rev}: {desc}\\n"\n-  3: add d10/f\n-  2: add d3/f\n-  1: add d2/f\n-  0: add d0/f\n   $ cd ..\n \n Widening doesn\'t lose bookmarks\n@@ -244,251 +255,14 @@\n   $ cd widen-bookmarks\n   $ hg bookmark my-bookmark\n   $ hg log -T "{rev}: {desc} {bookmarks}\\n"\n-  1: add d10/f my-bookmark\n-  0: add d0/f \n   $ hg tracked --addinclude d3 -q\n   $ hg log -T "{rev}: {desc} {bookmarks}\\n"\n-  3: add d10/f my-bookmark\n-  2: add d3/f \n-  1: add d2/f \n-  0: add d0/f \n   $ cd ..\n \n Can remove last include, making repo empty\n   $ hg clone --narrow ssh://user@dummy/master narrow-empty --include d0 -r 5\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 1 changes to 1 files\n-  new changesets *:* (glob)\n-  updating to branch default\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: unknown revision \'5\'\n+  [255]\n   $ cd narrow-empty\n+  $TESTTMP.sh: line 156: cd: narrow-empty: $ENOENT$\n   $ hg tracked --removeinclude d0\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  deleting data/d0/f.i (reporevlogstore !)\n-  deleting meta/d0/00manifest.i (tree !)\n-  deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)\n-  deleting data/d0/f/index (reposimplestore !)\n-  $ hg tracked\n-  $ hg files\n-  [1]\n-  $ test -d d0\n-  [1]\n-Do some work in the empty clone\n-  $ hg diff --change .\n-  $ hg branch foo\n-  marked working directory as branch foo\n-  (branches are permanent and global, did you want a bookmark?)\n-  $ hg ci -m empty\n-  $ hg log -T "{rev}: {desc} {outsidenarrow}\\n"\n-  2: empty \n-  1: add d5/f outsidenarrow\n-  0: add d0/f outsidenarrow\n-  $ hg pull -q\n-Can widen the empty clone\n-  $ hg tracked --addinclude d0\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  saved backup bundle to $TESTTMP/narrow-empty/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 3 changesets with 1 changes to 1 files\n-  $ hg tracked\n-  I path:d0\n-  $ hg files\n-  d0/f\n-  $ find *\n-  d0\n-  d0/f\n-  $ cd ..\n-\n-TODO(martinvonz): test including e.g. d3/g and then removing it once\n-https://bitbucket.org/Google/narrowhg/issues/6 is fixed\n-\n-  $ hg clone --narrow ssh://user@dummy/master narrow --include d0 --include d3 --include d6 --include d9\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 8 changesets with 4 changes to 4 files\n-  new changesets *:* (glob)\n-  updating to branch default\n-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ cd narrow\n-  $ hg tracked\n-  I path:d0\n-  I path:d3\n-  I path:d6\n-  I path:d9\n-  $ hg tracked --removeinclude d6\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  deleting data/d6/f.i (reporevlogstore !)\n-  deleting meta/d6/00manifest.i (tree !)\n-  deleting data/d6/f/7339d30678f451ac8c3f38753beeb4cf2e1655c7 (reposimplestore !)\n-  deleting data/d6/f/index (reposimplestore !)\n-  $ hg tracked\n-  I path:d0\n-  I path:d3\n-  I path:d9\n-#if repofncache\n-  $ hg debugrebuildfncache\n-  fncache already up to date\n-#endif\n-  $ find *\n-  d0\n-  d0/f\n-  d3\n-  d3/f\n-  d9\n-  d9/f\n-  $ hg verify -q\n-  $ hg tracked --addexclude d3/f\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  deleting data/d3/f.i (reporevlogstore !)\n-  deleting data/d3/f/2661d26c649684b482d10f91960cc3db683c38b4 (reposimplestore !)\n-  deleting data/d3/f/index (reposimplestore !)\n-  $ hg tracked\n-  I path:d0\n-  I path:d3\n-  I path:d9\n-  X path:d3/f\n-#if repofncache\n-  $ hg debugrebuildfncache\n-  fncache already up to date\n-#endif\n-  $ find *\n-  d0\n-  d0/f\n-  d9\n-  d9/f\n-  $ hg verify -q\n-  $ hg tracked --addexclude d0\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  deleting data/d0/f.i (reporevlogstore !)\n-  deleting meta/d0/00manifest.i (tree !)\n-  deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)\n-  deleting data/d0/f/index (reposimplestore !)\n-  $ hg tracked\n-  I path:d3\n-  I path:d9\n-  X path:d0\n-  X path:d3/f\n-#if repofncache\n-  $ hg debugrebuildfncache\n-  fncache already up to date\n-#endif\n-  $ find *\n-  d9\n-  d9/f\n-\n-Make a 15 of changes to d9 to test the path without --verbose\n-(Note: using regexes instead of "* (glob)" because if the test fails, it\n-produces more sensible diffs)\n-  $ hg tracked\n-  I path:d3\n-  I path:d9\n-  X path:d0\n-  X path:d3/f\n-  $ for x in `$TESTDIR/seq.py 1 15`\n-  > do\n-  >   echo local change >> d9/f\n-  >   hg commit -m "change $x to d9/f"\n-  > done\n-  $ hg tracked --removeinclude d9\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  The following changeset(s) or their ancestors have local changes not on the remote:\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ...and 5 more, use --verbose to list all\n-  abort: local changes found\n-  (use --force-delete-local-changes to ignore)\n-  [255]\n-Now test it *with* verbose.\n-  $ hg tracked --removeinclude d9 --verbose\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  The following changeset(s) or their ancestors have local changes not on the remote:\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  abort: local changes found\n-  (use --force-delete-local-changes to ignore)\n-  [255]\n-  $ cd ..\n-\n-Test --auto-remove-includes\n-  $ hg clone --narrow ssh://user@dummy/master narrow-auto-remove -q \\\n-  > --include d0 --include d1 --include d2\n-  $ cd narrow-auto-remove\n-  $ echo a >> d0/f\n-  $ hg ci -m \'local change to d0\'\n-  $ hg co \'.^\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ echo a >> d1/f\n-  $ hg ci -m \'local change to d1\'\n-  created new head\n-  $ hg debugobsolete $(hg log -T \'{node}\' -r \'desc("local change to d0")\')\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n-  $ echo n | hg tracked --auto-remove-includes --config ui.interactive=yes\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for unused includes to remove\n-  path:d0\n-  path:d2\n-  remove these unused includes (yn)? n\n-  $ hg tracked --auto-remove-includes\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for unused includes to remove\n-  path:d0\n-  path:d2\n-  remove these unused includes (yn)? y\n-  looking for local changes to affected paths\n-  saved backup bundle to $TESTTMP/narrow-auto-remove/.hg/strip-backup/*-narrow.hg (glob)\n-  deleting data/d0/f.i\n-  deleting data/d2/f.i\n-  deleting meta/d0/00manifest.i (tree !)\n-  deleting meta/d2/00manifest.i (tree !)\n-  $ hg tracked\n-  I path:d1\n-  $ hg files\n-  d1/f\n-  $ hg tracked --auto-remove-includes\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for unused includes to remove\n-  found no unused includes\n', 8616, 8618, 'truncated \\uXXXX escape') decoding diff, sorry

test-narrow.t#tree#lfs-on

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-narrow.t\n+++ c:/hgdev/src/tests/test-narrow.t#tree#lfs-on.err\n@@ -35,18 +35,8 @@\n   >   hg add d$x/f\n   >   hg commit -m "add d$x/f"\n   > done\n+  /usr/bin/env: python3: $ENOENT$\n   $ hg log -T "{rev}: {desc}\\n"\n-  10: add d10/f\n-  9: add d9/f\n-  8: add d8/f\n-  7: add d7/f\n-  6: add d6/f\n-  5: add d5/f\n-  4: add d4/f\n-  3: add d3/f\n-  2: add d2/f\n-  1: add d1/f\n-  0: add d0/f\n   $ cd ..\n \n Error if \'.\' or \'..\' are in the directory to track.\n@@ -62,77 +52,52 @@\n \n Names with \'.\' in them are OK.\n   $ hg clone --narrow ssh://user@dummy/master should-work --include a/.b/c\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files\n-  new changesets * (glob)\n+  no changes found\n   updating to branch default\n   0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n \n Test repo with local changes\n   $ hg clone --narrow ssh://user@dummy/master narrow-local-changes --include d0 --include d3 --include d6\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 6 changesets with 3 changes to 3 files\n-  new changesets *:* (glob)\n+  no changes found\n   updating to branch default\n-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ cd narrow-local-changes\n   $ echo local change >> d0/f\n+  $TESTTMP.sh: line 46: d0/f: $ENOENT$\n+  [1]\n   $ hg ci -m \'local change to d0\'\n+  nothing changed\n+  [1]\n   $ hg co \'.^\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo local change >> d3/f\n+  $TESTTMP.sh: line 52: d3/f: $ENOENT$\n+  [1]\n   $ hg ci -m \'local hidden change to d3\'\n-  created new head\n+  nothing changed\n+  [1]\n   $ hg ci --amend -m \'local change to d3\'\n+  abort: cannot amend null changeset\n+  (no changeset checked out)\n+  [10]\n   $ hg tracked --removeinclude d0\n   comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  The following changeset(s) or their ancestors have local changes not on the remote:\n-  * (glob)\n-  abort: local changes found\n-  (use --force-delete-local-changes to ignore)\n-  [255]\n+  looking for local changes to affected paths\n Check that nothing was removed by the failed attempts\n   $ hg tracked\n-  I path:d0\n   I path:d3\n   I path:d6\n   $ hg files\n-  d0/f\n-  d3/f\n-  d6/f\n+  [1]\n   $ find *\n-  d0\n-  d0/f\n-  d3\n-  d3/f\n-  d6\n-  d6/f\n+  find: `*\': $ENOENT$\n+  [1]\n   $ hg verify -q\n Force deletion of local changes\n   $ hg log -T "{rev}: {desc} {outsidenarrow}\\n"\n-  8: local change to d3 \n-  6: local change to d0 \n-  5: add d10/f outsidenarrow\n-  4: add d6/f \n-  3: add d5/f outsidenarrow\n-  2: add d3/f \n-  1: add d2/f outsidenarrow\n-  0: add d0/f \n   $ hg tracked --removeinclude d0 --force-delete-local-changes\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  The following changeset(s) or their ancestors have local changes not on the remote:\n-  * (glob)\n-  saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)\n+  nothing to widen or narrow\n   deleting data/d0/f.i (reporevlogstore !)\n   deleting meta/d0/00manifest.i (tree !)\n   deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)\n@@ -140,31 +105,25 @@\n   deleting data/d0/f/index (reposimplestore !)\n \n   $ hg log -T "{rev}: {desc} {outsidenarrow}\\n"\n-  7: local change to d3 \n-  5: add d10/f outsidenarrow\n-  4: add d6/f \n-  3: add d5/f outsidenarrow\n-  2: add d3/f \n-  1: add d2/f outsidenarrow\n-  0: add d0/f outsidenarrow\n Can restore stripped local changes after widening\n   $ hg tracked --addinclude d0 -q\n   $ hg unbundle .hg/strip-backup/*-narrow.hg -q\n+  abort: .hg/strip-backup/*-narrow.hg: $ENOTDIR$\n+  [255]\n   $ hg --hidden co -r \'desc("local change to d0")\' -q\n+  abort: empty revision set\n+  [255]\n   $ cat d0/f\n-  0\n-  local change\n+  cat: d0/f: $ENOENT$\n+  [1]\n Pruned commits affecting removed paths should not prevent narrowing\n   $ hg co \'.^\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ hg debugobsolete `hg log -T \'{node}\' -r \'desc("local change to d0")\'`\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n   $ hg tracked --removeinclude d0\n   comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)\n+  looking for local changes to affected paths\n   deleting data/d0/f.i (reporevlogstore !)\n   deleting meta/d0/00manifest.i (tree !)\n   deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)\n@@ -173,24 +132,24 @@\n \n Updates off of stripped commit if necessary\n   $ hg co -r \'desc("local change to d3")\' -q\n+  abort: empty revision set\n+  [255]\n   $ echo local change >> d6/f\n+  $TESTTMP.sh: line 90: d6/f: $ENOENT$\n+  [1]\n   $ hg ci -m \'local change to d6\'\n+  nothing changed\n+  [1]\n   $ hg tracked --removeinclude d3 --force-delete-local-changes\n   comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  The following changeset(s) or their ancestors have local changes not on the remote:\n-  * (glob)\n-  * (glob)\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  saved backup bundle to $TESTTMP/narrow-local-changes/.hg/strip-backup/*-narrow.hg (glob)\n+  looking for local changes to affected paths\n   deleting data/d3/f.i (reporevlogstore !)\n   deleting meta/d3/00manifest.i (tree !)\n   deleting data/d3/f/2661d26c649684b482d10f91960cc3db683c38b4 (reposimplestore !)\n   deleting data/d3/f/99fa7136105a15e2045ce3d9152e4837c5349e4d (reposimplestore !)\n   deleting data/d3/f/index (reposimplestore !)\n   $ hg log -T \'{desc}\\n\' -r .\n-  add d10/f\n+  \n Updates to nullid if necessary\n   $ hg tracked --addinclude d3 -q\n   $ hg co null -q\n@@ -198,7 +157,6 @@\n   $ echo local change > d3/f\n   $ hg add d3/f\n   $ hg ci -m \'local change to d3\'\n-  created new head\n   $ hg tracked --removeinclude d3 --force-delete-local-changes\n   comparing with ssh://user@dummy/master\n   searching for changes\n@@ -212,6 +170,55 @@\n   deleting data/d3/f/2661d26c649684b482d10f91960cc3db683c38b4 (reposimplestore !)\n   deleting data/d3/f/5ce0767945cbdbca3b924bb9fbf5143f72ab40ac (reposimplestore !)\n   deleting data/d3/f/index (reposimplestore !)\n+  strip failed, backup bundle stored in \'$TESTTMP\\narrow-local-changes\\.hg\\strip-backup/b0adba10fa79-fbbbf907-narrow.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: narrow\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowcommands.py", line 637, in trackedcmd\n+      opts[b\'force_delete_local_changes\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\narrow\\narrowcommands.py", line 271, in _narrow\n+      repair.strip(ui, unfi, tostrip, topic=b\'narrow\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg id\n   000000000000\n   $ cd ..\n@@ -220,23 +227,27 @@\n   $ hg clone --narrow ssh://user@dummy/master narrow-obsmarkers --include d0 --include d3 -q\n   $ cd narrow-obsmarkers\n   $ echo a >> d0/f2\n+  $TESTTMP.sh: line 120: d0/f2: $ENOENT$\n+  [1]\n   $ hg add d0/f2\n+  d0/f2: $ENOTDIR$\n+  [1]\n   $ hg ci -m \'modify d0/\'\n+  nothing changed\n+  [1]\n   $ echo a >> d3/f2\n+  $TESTTMP.sh: line 126: d3/f2: $ENOENT$\n+  [1]\n   $ hg add d3/f2\n+  d3/f2: $ENOTDIR$\n+  [1]\n   $ hg commit --amend -m \'modify d0/ and d3/\'\n+  abort: cannot amend null changeset\n+  (no changeset checked out)\n+  [10]\n   $ hg log -T "{rev}: {desc}\\n"\n-  5: modify d0/ and d3/\n-  3: add d10/f\n-  2: add d3/f\n-  1: add d2/f\n-  0: add d0/f\n   $ hg tracked --removeinclude d3 --force-delete-local-changes -q\n   $ hg log -T "{rev}: {desc}\\n"\n-  3: add d10/f\n-  2: add d3/f\n-  1: add d2/f\n-  0: add d0/f\n   $ cd ..\n \n Widening doesn\'t lose bookmarks\n@@ -244,251 +255,14 @@\n   $ cd widen-bookmarks\n   $ hg bookmark my-bookmark\n   $ hg log -T "{rev}: {desc} {bookmarks}\\n"\n-  1: add d10/f my-bookmark\n-  0: add d0/f \n   $ hg tracked --addinclude d3 -q\n   $ hg log -T "{rev}: {desc} {bookmarks}\\n"\n-  3: add d10/f my-bookmark\n-  2: add d3/f \n-  1: add d2/f \n-  0: add d0/f \n   $ cd ..\n \n Can remove last include, making repo empty\n   $ hg clone --narrow ssh://user@dummy/master narrow-empty --include d0 -r 5\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 1 changes to 1 files\n-  new changesets *:* (glob)\n-  updating to branch default\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: unknown revision \'5\'\n+  [255]\n   $ cd narrow-empty\n+  $TESTTMP.sh: line 156: cd: narrow-empty: $ENOENT$\n   $ hg tracked --removeinclude d0\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  deleting data/d0/f.i (reporevlogstore !)\n-  deleting meta/d0/00manifest.i (tree !)\n-  deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)\n-  deleting data/d0/f/index (reposimplestore !)\n-  $ hg tracked\n-  $ hg files\n-  [1]\n-  $ test -d d0\n-  [1]\n-Do some work in the empty clone\n-  $ hg diff --change .\n-  $ hg branch foo\n-  marked working directory as branch foo\n-  (branches are permanent and global, did you want a bookmark?)\n-  $ hg ci -m empty\n-  $ hg log -T "{rev}: {desc} {outsidenarrow}\\n"\n-  2: empty \n-  1: add d5/f outsidenarrow\n-  0: add d0/f outsidenarrow\n-  $ hg pull -q\n-Can widen the empty clone\n-  $ hg tracked --addinclude d0\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  saved backup bundle to $TESTTMP/narrow-empty/.hg/strip-backup/*-widen.hg (glob)\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 3 changesets with 1 changes to 1 files\n-  $ hg tracked\n-  I path:d0\n-  $ hg files\n-  d0/f\n-  $ find *\n-  d0\n-  d0/f\n-  $ cd ..\n-\n-TODO(martinvonz): test including e.g. d3/g and then removing it once\n-https://bitbucket.org/Google/narrowhg/issues/6 is fixed\n-\n-  $ hg clone --narrow ssh://user@dummy/master narrow --include d0 --include d3 --include d6 --include d9\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 8 changesets with 4 changes to 4 files\n-  new changesets *:* (glob)\n-  updating to branch default\n-  4 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ cd narrow\n-  $ hg tracked\n-  I path:d0\n-  I path:d3\n-  I path:d6\n-  I path:d9\n-  $ hg tracked --removeinclude d6\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  deleting data/d6/f.i (reporevlogstore !)\n-  deleting meta/d6/00manifest.i (tree !)\n-  deleting data/d6/f/7339d30678f451ac8c3f38753beeb4cf2e1655c7 (reposimplestore !)\n-  deleting data/d6/f/index (reposimplestore !)\n-  $ hg tracked\n-  I path:d0\n-  I path:d3\n-  I path:d9\n-#if repofncache\n-  $ hg debugrebuildfncache\n-  fncache already up to date\n-#endif\n-  $ find *\n-  d0\n-  d0/f\n-  d3\n-  d3/f\n-  d9\n-  d9/f\n-  $ hg verify -q\n-  $ hg tracked --addexclude d3/f\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  deleting data/d3/f.i (reporevlogstore !)\n-  deleting data/d3/f/2661d26c649684b482d10f91960cc3db683c38b4 (reposimplestore !)\n-  deleting data/d3/f/index (reposimplestore !)\n-  $ hg tracked\n-  I path:d0\n-  I path:d3\n-  I path:d9\n-  X path:d3/f\n-#if repofncache\n-  $ hg debugrebuildfncache\n-  fncache already up to date\n-#endif\n-  $ find *\n-  d0\n-  d0/f\n-  d9\n-  d9/f\n-  $ hg verify -q\n-  $ hg tracked --addexclude d0\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  deleting data/d0/f.i (reporevlogstore !)\n-  deleting meta/d0/00manifest.i (tree !)\n-  deleting data/d0/f/362fef284ce2ca02aecc8de6d5e8a1c3af0556fe (reposimplestore !)\n-  deleting data/d0/f/index (reposimplestore !)\n-  $ hg tracked\n-  I path:d3\n-  I path:d9\n-  X path:d0\n-  X path:d3/f\n-#if repofncache\n-  $ hg debugrebuildfncache\n-  fncache already up to date\n-#endif\n-  $ find *\n-  d9\n-  d9/f\n-\n-Make a 15 of changes to d9 to test the path without --verbose\n-(Note: using regexes instead of "* (glob)" because if the test fails, it\n-produces more sensible diffs)\n-  $ hg tracked\n-  I path:d3\n-  I path:d9\n-  X path:d0\n-  X path:d3/f\n-  $ for x in `$TESTDIR/seq.py 1 15`\n-  > do\n-  >   echo local change >> d9/f\n-  >   hg commit -m "change $x to d9/f"\n-  > done\n-  $ hg tracked --removeinclude d9\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  The following changeset(s) or their ancestors have local changes not on the remote:\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ...and 5 more, use --verbose to list all\n-  abort: local changes found\n-  (use --force-delete-local-changes to ignore)\n-  [255]\n-Now test it *with* verbose.\n-  $ hg tracked --removeinclude d9 --verbose\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for local changes to affected paths\n-  The following changeset(s) or their ancestors have local changes not on the remote:\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  ^[0-9a-f]{12}$ (re)\n-  abort: local changes found\n-  (use --force-delete-local-changes to ignore)\n-  [255]\n-  $ cd ..\n-\n-Test --auto-remove-includes\n-  $ hg clone --narrow ssh://user@dummy/master narrow-auto-remove -q \\\n-  > --include d0 --include d1 --include d2\n-  $ cd narrow-auto-remove\n-  $ echo a >> d0/f\n-  $ hg ci -m \'local change to d0\'\n-  $ hg co \'.^\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ echo a >> d1/f\n-  $ hg ci -m \'local change to d1\'\n-  created new head\n-  $ hg debugobsolete $(hg log -T \'{node}\' -r \'desc("local change to d0")\')\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n-  $ echo n | hg tracked --auto-remove-includes --config ui.interactive=yes\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for unused includes to remove\n-  path:d0\n-  path:d2\n-  remove these unused includes (yn)? n\n-  $ hg tracked --auto-remove-includes\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for unused includes to remove\n-  path:d0\n-  path:d2\n-  remove these unused includes (yn)? y\n-  looking for local changes to affected paths\n-  saved backup bundle to $TESTTMP/narrow-auto-remove/.hg/strip-backup/*-narrow.hg (glob)\n-  deleting data/d0/f.i\n-  deleting data/d2/f.i\n-  deleting meta/d0/00manifest.i (tree !)\n-  deleting meta/d2/00manifest.i (tree !)\n-  $ hg tracked\n-  I path:d1\n-  $ hg files\n-  d1/f\n-  $ hg tracked --auto-remove-includes\n-  comparing with ssh://user@dummy/master\n-  searching for changes\n-  looking for unused includes to remove\n-  found no unused includes\n', 8615, 8617, 'truncated \\uXXXX escape') decoding diff, sorry

test-notify.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-notify.t\n+++ c:/hgdev/src/tests/test-notify.t.err\n@@ -471,24 +471,25 @@\n   Date: * (glob)\n   Subject: \\xc3\\xa0... (esc) (no-py3 !)\n   Subject: =?utf-8?b?w6AuLi4=?= (py3 !)\n-  From: test@test.com\n-  X-Hg-Notification: changeset 0f25f9c22b4c\n+  Subject: \\xc3\\xa0...\\r (esc)\n+  From: test@test.com\\r (esc)\n+  X-Hg-Notification: changeset 0f25f9c22b4c\\r (esc)\n   Message-Id: <*> (glob)\n-  To: baz@test.com, foo@bar\n-  \n-  changeset 0f25f9c22b4c in b\n-  description: \\xc3\\xa0\\xc3\\xa1\\xc3\\xa2\\xc3\\xa3\\xc3\\xa4 (esc)\n-  diffstat:\n-   a |  1 + 1 files changed, 1 insertions(+), 0 deletions(-)\n-  \n-  diffs (7 lines):\n-  \n-  diff -r fccf66cd0c35 -r 0f25f9c22b4c a\n-  --- a/a\tThu Jan 01 00:00:03 1970 +0000\n-  +++ b/a\tThu Jan 01 00:00:00 1970 +0000\n-  @@ -1,2 +1,3 @@ a a\n-  +a\n-  (run \'hg update\' to get a working copy)\n+  To: baz@test.com, foo@bar\\r (esc)\n+  \\r (esc)\n+  changeset 0f25f9c22b4c in b\\r (esc)\n+  description: \\xc3\\xa0\\xc3\\xa1\\xc3\\xa2\\xc3\\xa3\\xc3\\xa4\\r (esc)\n+  diffstat:\\r (esc)\n+   a |  1 + 1 files changed, 1 insertions(+), 0 deletions(-)\\r (esc)\n+  \\r (esc)\n+  diffs (7 lines):\\r (esc)\n+  \\r (esc)\n+  diff -r fccf66cd0c35 -r 0f25f9c22b4c a\\r (esc)\n+  --- a/a\tThu Jan 01 00:00:03 1970 +0000\\r (esc)\n+  +++ b/a\tThu Jan 01 00:00:00 1970 +0000\\r (esc)\n+  @@ -1,2 +1,3 @@ a a\\r (esc)\n+  +a\\r (esc)\n+  (run \'hg update\' to get a working copy)\\r (esc)\n \n long lines\n \n@@ -831,44 +832,62 @@\n \n   $ hg --cwd ../b strip tip\n   saved backup bundle to $TESTTMP/b/.hg/strip-backup/e81040e9838c-10aad4de-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\b\\.hg\\strip-backup/e81040e9838c-10aad4de-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: notify, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg debugobsolete f7e5aaed408029cfe9890318245e87ef44739fdd e81040e9838c704d8bf17658cb11758f24e40b6b\n   1 new obsolescence markers\n   obsoleted 1 changesets\n   $ hg --cwd ../b --config notify.showfunc=True pull ../a | \\\n   >  "$PYTHON" $TESTDIR/unwrap-message-id.py\n-  pulling from ../a\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  2 new obsolescence markers\n-  obsoleted 2 changesets\n-  new changesets e81040e9838c (1 drafts)\n-  MIME-Version: 1.0\n-  Content-Type: text/plain; charset="us-ascii"\n-  Content-Transfer-Encoding: 7bit\n-  Date: * (glob)\n-  Subject: changefunction\n-  From: test@test.com\n-  X-Hg-Notification: changeset e81040e9838c\n-  Message-Id: <hg.99b80bf1c5d0bf8f8a7e60107c1aa1da367a5943b2a70a8b36517d701557edff@test.com>\n-  In-Reply-To: <hg.12e9ae631e2529e9cfbe7a93be0dd8a401280700640f802a60f20d7be659251d@test.com>\n-  To: baz@test.com, foo@bar\n-  \n-  changeset e81040e9838c\n-  diffs (12 lines):\n-  \n-  diff -r b86bc16ff894 -r e81040e9838c f1\n-  --- a/f1\tThu Jan 01 00:00:00 1970 +0000\n-  +++ b/f1\tThu Jan 01 00:00:00 1970 +0000\n-  @@ -2,6 +2,6 @@ int main() {\n-       int a = 0;\n-       int b = 1;\n-       int c = 2;\n-  -    int d = 3;\n-  -    return a + b + c + d;\n-  +    int e = 3;\n-  +    return a + b + c + e;\n-   }\n-  (run \'hg update\' to get a working copy)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  pulling from ../a\\r (esc)\n+  searching for changes\\r (esc)\n+  no changes found\\r (esc)\n', 3548, 3550, 'truncated \\uXXXX escape') decoding diff, sorry

test-obsolete-bounds-checking.t

--- c:/hgdev/src/tests/test-obsolete-bounds-checking.t
+++ c:/hgdev/src/tests/test-obsolete-bounds-checking.t.err
@@ -18,7 +18,5 @@
   $ hg commit -m "Initial commit"
   $ echo a >> a
   $ hg amend 2>&1 | egrep -v '^(\*\*|  )'
-  transaction abort!
-  rollback completed
   Traceback (most recent call last):
-  *ProgrammingError: obsstore metadata value cannot be longer than 255 bytes (value "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa <very.long.name@example.com>" for key "user" is 285 bytes) (glob)
+  TypeError: 'mixedfilemodewrapper' object is not iterable

test-obsolete-bundle-strip.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-obsolete-bundle-strip.t\n+++ c:/hgdev/src/tests/test-obsolete-bundle-strip.t.err\n@@ -162,19 +162,86 @@\n   #################################\n   ### Exclusive markers ###\n   # stripping: saved backup bundle to $TESTTMP/simple-chain/.hg/strip-backup/84fcb0dfe17b-6454bbdc-backup.hg\n-  ### Backup markers ###\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <relevant> <backed-up> ###\n-  #################################\n-  ### Stripped markers ###\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 1 changesets with 1 changes to 1 files (+1 heads)\n-  # unbundling: (1 other changesets obsolete on arrival)\n-  # unbundling: (run \'hg heads\' to see heads)\n+  strip failed, backup bundle stored in \'$TESTTMP\\simple-chain\\.hg\\strip-backup/84fcb0dfe17b-6454bbdc-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\simple-chain\\.hg\\strip-backup/84fcb0dfe17b-fa0f07b0-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\simple-chain\\.hg\\strip-backup/84fcb0dfe17b-fa0f07b0-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  hg debugbundle: invalid arguments\n+  ### Backup markers ###\n+  \n+  options ([+] can be repeated):\n+  \n+   -a --all                 show all details\n+      --part-type VALUE [+] show only the named part type\n+      --spec                print the bundlespec of the bundle\n+  \n+  (use \'hg debugbundle -h\' to show more help)\n+  ### diff <relevant> <backed-up> ###\n+  $TESTTMP/simple-chain-C-A0-relevant-markers.txt $TESTTMP/simple-chain-C-A0-bundle-markers.hg differ: char 1, line 1\n+  --- $TESTTMP/simple-chain-C-A0-relevant-markers.txt\t2020-12-04 23:51:33 +0000\n+  +++ $TESTTMP/simple-chain-C-A0-bundle-markers.hg\t2020-12-04 23:51:35 +0000\n+  @@ -1 +1,8 @@\n+  -    a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  +\n+  +options ([+] can be repeated):\n+  +\n+  + -a --all                 show all details\n+  +    --part-type VALUE [+] show only the named part type\n+  +    --spec                print the bundlespec of the bundle\n+  +\n+  +(use \'hg debugbundle -h\' to show more help)\n+  #################################\n+  ### Stripped markers ###\n+  ### diff <exclusive> <stripped> ###\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n \n   $ testrevs \'desc("C-A1")\'\n   ### Matched revisions###\n@@ -194,6 +261,9 @@\n       84fcb0dfe17b256ebae52e05572993b9194c018a a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n   # stripping: saved backup bundle to $TESTTMP/simple-chain/.hg/strip-backup/cf2c22470d67-fa0f07b0-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\simple-chain\\.hg\\strip-backup/cf2c22470d67-fa0f07b0-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   ### Backup markers ###\n       84fcb0dfe17b256ebae52e05572993b9194c018a a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n@@ -201,18 +271,16 @@\n   ### diff <relevant> <backed-up> ###\n   #################################\n   ### Stripped markers ###\n-      84fcb0dfe17b256ebae52e05572993b9194c018a a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 1 changesets with 1 changes to 1 files (+1 heads)\n-  # unbundling: 2 new obsolescence markers\n-  # unbundling: obsoleted 1 changesets\n-  # unbundling: new changesets cf2c22470d67 (1 drafts)\n-  # unbundling: (run \'hg heads\' to see heads)\n+  ### diff <exclusive> <stripped> ###\n+  cmp: EOF on $TESTTMP/simple-chain-C-A1-stripped-markers.txt\n+  --- $TESTTMP/simple-chain-C-A1-exclusive-markers.txt\t2020-12-04 23:51:37 +0000\n+  +++ $TESTTMP/simple-chain-C-A1-stripped-markers.txt\t2020-12-04 23:51:39 +0000\n+  @@ -1,2 +0,0 @@\n+  -    84fcb0dfe17b256ebae52e05572993b9194c018a a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n \n   $ testrevs \'desc("C-A")\'\n   ### Matched revisions###\n@@ -234,6 +302,9 @@\n       a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n   # stripping: saved backup bundle to $TESTTMP/simple-chain/.hg/strip-backup/cf2c22470d67-fce4fc64-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\simple-chain\\.hg\\strip-backup/cf2c22470d67-fce4fc64-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   ### Backup markers ###\n       84fcb0dfe17b256ebae52e05572993b9194c018a a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n@@ -241,19 +312,17 @@\n   ### diff <relevant> <backed-up> ###\n   #################################\n   ### Stripped markers ###\n-      84fcb0dfe17b256ebae52e05572993b9194c018a a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 2 changesets with 2 changes to 2 files (+1 heads)\n-  # unbundling: 3 new obsolescence markers\n-  # unbundling: new changesets cf2c22470d67 (1 drafts)\n-  # unbundling: (1 other changesets obsolete on arrival)\n-  # unbundling: (run \'hg heads\' to see heads)\n+  ### diff <exclusive> <stripped> ###\n+  cmp: EOF on $TESTTMP/simple-chain-C-A0-C-A1-stripped-markers.txt\n+  --- $TESTTMP/simple-chain-C-A0-C-A1-exclusive-markers.txt\t2020-12-04 23:51:40 +0000\n+  +++ $TESTTMP/simple-chain-C-A0-C-A1-stripped-markers.txt\t2020-12-04 23:51:42 +0000\n+  @@ -1,3 +0,0 @@\n+  -    84fcb0dfe17b256ebae52e05572993b9194c018a a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1a1 cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n \n chain with prune children\n =========================\n@@ -334,57 +403,128 @@\n   ### Exclusive markers ###\n       29f93b1df87baee1824e014080d8adf145f81783 0 {84fcb0dfe17b256ebae52e05572993b9194c018a} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n   # stripping: saved backup bundle to $TESTTMP/prune/.hg/strip-backup/29f93b1df87b-7fb32101-backup.hg\n-  ### Backup markers ###\n+  strip failed, backup bundle stored in \'$TESTTMP\\prune\\.hg\\strip-backup/29f93b1df87b-7fb32101-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\prune\\.hg\\strip-backup/29f93b1df87b-fa0f07b0-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\prune\\.hg\\strip-backup/29f93b1df87b-fa0f07b0-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  hg debugbundle: invalid arguments\n+  ### Backup markers ###\n+  \n+  options ([+] can be repeated):\n+  \n+   -a --all                 show all details\n+      --part-type VALUE [+] show only the named part type\n+      --spec                print the bundlespec of the bundle\n+  \n+  (use \'hg debugbundle -h\' to show more help)\n+  ### diff <relevant> <backed-up> ###\n+  $TESTTMP/prune-C-B0-relevant-markers.txt $TESTTMP/prune-C-B0-bundle-markers.hg differ: char 1, line 1\n+  --- $TESTTMP/prune-C-B0-relevant-markers.txt\t2020-12-04 23:51:50 +0000\n+  +++ $TESTTMP/prune-C-B0-bundle-markers.hg\t2020-12-04 23:51:52 +0000\n+  @@ -1 +1,8 @@\n+  -    29f93b1df87baee1824e014080d8adf145f81783 0 {84fcb0dfe17b256ebae52e05572993b9194c018a} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  +\n+  +options ([+] can be repeated):\n+  +\n+  + -a --all                 show all details\n+  +    --part-type VALUE [+] show only the named part type\n+  +    --spec                print the bundlespec of the bundle\n+  +\n+  +(use \'hg debugbundle -h\' to show more help)\n+  #################################\n+  ### Stripped markers ###\n+  ### diff <exclusive> <stripped> ###\n+  cmp: EOF on $TESTTMP/prune-C-B0-stripped-markers.txt\n+  --- $TESTTMP/prune-C-B0-exclusive-markers.txt\t2020-12-04 23:51:50 +0000\n+  +++ $TESTTMP/prune-C-B0-stripped-markers.txt\t2020-12-04 23:51:52 +0000\n+  @@ -1 +0,0 @@\n+  -    29f93b1df87baee1824e014080d8adf145f81783 0 {84fcb0dfe17b256ebae52e05572993b9194c018a} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+\n+  $ testrevs \'desc("C-A1")\'\n+  ### Matched revisions###\n+  cf2c22470d67: C-A1\n+  ### Relevant markers ###\n       29f93b1df87baee1824e014080d8adf145f81783 0 {84fcb0dfe17b256ebae52e05572993b9194c018a} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <relevant> <backed-up> ###\n-  #################################\n-  ### Stripped markers ###\n+      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  # bundling: 1 changesets found\n+  ### Bundled markers ###\n       29f93b1df87baee1824e014080d8adf145f81783 0 {84fcb0dfe17b256ebae52e05572993b9194c018a} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 1 changesets with 1 changes to 1 files\n-  # unbundling: 1 new obsolescence markers\n-  # unbundling: (1 other changesets obsolete on arrival)\n-  # unbundling: (run \'hg update\' to get a working copy)\n-\n-  $ testrevs \'desc("C-A1")\'\n-  ### Matched revisions###\n-  cf2c22470d67: C-A1\n-  ### Relevant markers ###\n+      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  ### diff <relevant> <bundled> ###\n+  #################################\n+  ### Exclusive markers ###\n+      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  # stripping: saved backup bundle to $TESTTMP/prune/.hg/strip-backup/cf2c22470d67-fa0f07b0-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\prune\\.hg\\strip-backup/cf2c22470d67-fa0f07b0-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  ### Backup markers ###\n       29f93b1df87baee1824e014080d8adf145f81783 0 {84fcb0dfe17b256ebae52e05572993b9194c018a} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  # bundling: 1 changesets found\n-  ### Bundled markers ###\n-      29f93b1df87baee1824e014080d8adf145f81783 0 {84fcb0dfe17b256ebae52e05572993b9194c018a} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <relevant> <bundled> ###\n-  #################################\n-  ### Exclusive markers ###\n-      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  # stripping: saved backup bundle to $TESTTMP/prune/.hg/strip-backup/cf2c22470d67-fa0f07b0-backup.hg\n-  ### Backup markers ###\n-      29f93b1df87baee1824e014080d8adf145f81783 0 {84fcb0dfe17b256ebae52e05572993b9194c018a} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <relevant> <backed-up> ###\n-  #################################\n-  ### Stripped markers ###\n-      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 1 changesets with 1 changes to 1 files (+1 heads)\n-  # unbundling: 1 new obsolescence markers\n-  # unbundling: obsoleted 1 changesets\n-  # unbundling: new changesets cf2c22470d67 (1 drafts)\n-  # unbundling: (run \'hg heads\' to see heads)\n+  ### diff <relevant> <backed-up> ###\n+  #################################\n+  ### Stripped markers ###\n+  ### diff <exclusive> <stripped> ###\n+  cmp: EOF on $TESTTMP/prune-C-A1-stripped-markers.txt\n+  --- $TESTTMP/prune-C-A1-exclusive-markers.txt\t2020-12-04 23:51:53 +0000\n+  +++ $TESTTMP/prune-C-A1-stripped-markers.txt\t2020-12-04 23:51:56 +0000\n+  @@ -1 +0,0 @@\n+  -    84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n \n bundling multiple revisions\n \n@@ -428,6 +568,9 @@\n       84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n   # stripping: saved backup bundle to $TESTTMP/prune/.hg/strip-backup/cf2c22470d67-884c33b0-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\prune\\.hg\\strip-backup/cf2c22470d67-884c33b0-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   ### Backup markers ###\n       29f93b1df87baee1824e014080d8adf145f81783 0 {84fcb0dfe17b256ebae52e05572993b9194c018a} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n@@ -435,19 +578,17 @@\n   ### diff <relevant> <backed-up> ###\n   #################################\n   ### Stripped markers ###\n-      29f93b1df87baee1824e014080d8adf145f81783 0 {84fcb0dfe17b256ebae52e05572993b9194c018a} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 3 changesets with 3 changes to 3 files (+1 heads)\n-  # unbundling: 3 new obsolescence markers\n-  # unbundling: new changesets cf2c22470d67 (1 drafts)\n-  # unbundling: (2 other changesets obsolete on arrival)\n-  # unbundling: (run \'hg heads\' to see heads)\n+  ### diff <exclusive> <stripped> ###\n+  cmp: EOF on $TESTTMP/prune-C-A0-C-B0-C-A1-stripped-markers.txt\n+  --- $TESTTMP/prune-C-A0-C-B0-C-A1-exclusive-markers.txt\t2020-12-04 23:51:59 +0000\n+  +++ $TESTTMP/prune-C-A0-C-B0-C-A1-stripped-markers.txt\t2020-12-04 23:52:01 +0000\n+  @@ -1,3 +0,0 @@\n+  -    29f93b1df87baee1824e014080d8adf145f81783 0 {84fcb0dfe17b256ebae52e05572993b9194c018a} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n \n chain with precursors also pruned\n =================================\n@@ -504,55 +645,124 @@\n   #################################\n   ### Exclusive markers ###\n   # stripping: saved backup bundle to $TESTTMP/prune-inline/.hg/strip-backup/84fcb0dfe17b-6454bbdc-backup.hg\n-  ### Backup markers ###\n+  strip failed, backup bundle stored in \'$TESTTMP\\prune-inline\\.hg\\strip-backup/84fcb0dfe17b-6454bbdc-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\prune-inline\\.hg\\strip-backup/84fcb0dfe17b-fa0f07b0-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\prune-inline\\.hg\\strip-backup/84fcb0dfe17b-fa0f07b0-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  hg debugbundle: invalid arguments\n+  ### Backup markers ###\n+  \n+  options ([+] can be repeated):\n+  \n+   -a --all                 show all details\n+      --part-type VALUE [+] show only the named part type\n+      --spec                print the bundlespec of the bundle\n+  \n+  (use \'hg debugbundle -h\' to show more help)\n+  ### diff <relevant> <backed-up> ###\n+  $TESTTMP/prune-inline-C-A0-relevant-markers.txt $TESTTMP/prune-inline-C-A0-bundle-markers.hg differ: char 1, line 1\n+  --- $TESTTMP/prune-inline-C-A0-relevant-markers.txt\t2020-12-04 23:52:06 +0000\n+  +++ $TESTTMP/prune-inline-C-A0-bundle-markers.hg\t2020-12-04 23:52:09 +0000\n+  @@ -1,2 +1,8 @@\n+  -    84fcb0dfe17b256ebae52e05572993b9194c018a 0 {ea207398892eb49e06441f10dda2a731f0450f20} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  +\n+  +options ([+] can be repeated):\n+  +\n+  + -a --all                 show all details\n+  +    --part-type VALUE [+] show only the named part type\n+  +    --spec                print the bundlespec of the bundle\n+  +\n+  +(use \'hg debugbundle -h\' to show more help)\n+  #################################\n+  ### Stripped markers ###\n+  ### diff <exclusive> <stripped> ###\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+\n+  $ testrevs \'desc("C-A1")\'\n+  ### Matched revisions###\n+  cf2c22470d67: C-A1\n+  ### Relevant markers ###\n       84fcb0dfe17b256ebae52e05572993b9194c018a 0 {ea207398892eb49e06441f10dda2a731f0450f20} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <relevant> <backed-up> ###\n-  #################################\n-  ### Stripped markers ###\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 1 changesets with 1 changes to 1 files (+1 heads)\n-  # unbundling: (1 other changesets obsolete on arrival)\n-  # unbundling: (run \'hg heads\' to see heads)\n-\n-  $ testrevs \'desc("C-A1")\'\n-  ### Matched revisions###\n-  cf2c22470d67: C-A1\n-  ### Relevant markers ###\n+      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  # bundling: 1 changesets found\n+  ### Bundled markers ###\n       84fcb0dfe17b256ebae52e05572993b9194c018a 0 {ea207398892eb49e06441f10dda2a731f0450f20} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  # bundling: 1 changesets found\n-  ### Bundled markers ###\n+  ### diff <relevant> <bundled> ###\n+  #################################\n+  ### Exclusive markers ###\n+      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  # stripping: saved backup bundle to $TESTTMP/prune-inline/.hg/strip-backup/cf2c22470d67-fa0f07b0-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\prune-inline\\.hg\\strip-backup/cf2c22470d67-fa0f07b0-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  ### Backup markers ###\n       84fcb0dfe17b256ebae52e05572993b9194c018a 0 {ea207398892eb49e06441f10dda2a731f0450f20} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <relevant> <bundled> ###\n-  #################################\n-  ### Exclusive markers ###\n-      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  # stripping: saved backup bundle to $TESTTMP/prune-inline/.hg/strip-backup/cf2c22470d67-fa0f07b0-backup.hg\n-  ### Backup markers ###\n-      84fcb0dfe17b256ebae52e05572993b9194c018a 0 {ea207398892eb49e06441f10dda2a731f0450f20} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <relevant> <backed-up> ###\n-  #################################\n-  ### Stripped markers ###\n-      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 1 changesets with 1 changes to 1 files (+1 heads)\n-  # unbundling: 1 new obsolescence markers\n-  # unbundling: new changesets cf2c22470d67 (1 drafts)\n-  # unbundling: (run \'hg heads\' to see heads)\n+  ### diff <relevant> <backed-up> ###\n+  #################################\n+  ### Stripped markers ###\n+  ### diff <exclusive> <stripped> ###\n+  cmp: EOF on $TESTTMP/prune-inline-C-A1-stripped-markers.txt\n+  --- $TESTTMP/prune-inline-C-A1-exclusive-markers.txt\t2020-12-04 23:52:10 +0000\n+  +++ $TESTTMP/prune-inline-C-A1-stripped-markers.txt\t2020-12-04 23:52:12 +0000\n+  @@ -1 +0,0 @@\n+  -    84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n \n   $ testrevs \'desc("C-A")\'\n   ### Matched revisions###\n@@ -574,6 +784,9 @@\n       84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n   # stripping: saved backup bundle to $TESTTMP/prune-inline/.hg/strip-backup/cf2c22470d67-fce4fc64-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\prune-inline\\.hg\\strip-backup/cf2c22470d67-fce4fc64-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   ### Backup markers ###\n       84fcb0dfe17b256ebae52e05572993b9194c018a 0 {ea207398892eb49e06441f10dda2a731f0450f20} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n@@ -581,19 +794,17 @@\n   ### diff <relevant> <backed-up> ###\n   #################################\n   ### Stripped markers ###\n-      84fcb0dfe17b256ebae52e05572993b9194c018a 0 {ea207398892eb49e06441f10dda2a731f0450f20} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 2 changesets with 2 changes to 2 files (+1 heads)\n-  # unbundling: 3 new obsolescence markers\n-  # unbundling: new changesets cf2c22470d67 (1 drafts)\n-  # unbundling: (1 other changesets obsolete on arrival)\n-  # unbundling: (run \'hg heads\' to see heads)\n+  ### diff <exclusive> <stripped> ###\n+  cmp: EOF on $TESTTMP/prune-inline-C-A0-C-A1-stripped-markers.txt\n+  --- $TESTTMP/prune-inline-C-A0-C-A1-exclusive-markers.txt\t2020-12-04 23:52:13 +0000\n+  +++ $TESTTMP/prune-inline-C-A0-C-A1-stripped-markers.txt\t2020-12-04 23:52:15 +0000\n+  @@ -1,3 +0,0 @@\n+  -    84fcb0dfe17b256ebae52e05572993b9194c018a 0 {ea207398892eb49e06441f10dda2a731f0450f20} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n \n chain with missing prune\n ========================\n@@ -627,12 +838,66 @@\n (it is annoying to create prune with parent data without the changeset, so we strip it after the fact)\n \n   $ hg strip --hidden --rev \'desc("C-A0")::\' --no-backup --config devel.strip-obsmarkers=no\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\missing-prune\\.hg\\strip-backup/84fcb0dfe17b-fa0f07b0-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\missing-prune\\.hg\\strip-backup/84fcb0dfe17b-fa0f07b0-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg up \'desc("ROOT")\'\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n   $ hg log --hidden -G\n   o  cf2c22470d67: C-A1\n   |\n+  | x  29f93b1df87b: C-B0\n+  | |\n+  | x  84fcb0dfe17b: C-A0\n+  |/\n   @  ea207398892e: ROOT\n   \n   $ hg debugobsolete\n@@ -658,29 +923,48 @@\n   ### diff <relevant> <bundled> ###\n   #################################\n   ### Exclusive markers ###\n-      29f93b1df87baee1824e014080d8adf145f81783 0 {84fcb0dfe17b256ebae52e05572993b9194c018a} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  # stripping: saved backup bundle to $TESTTMP/missing-prune/.hg/strip-backup/cf2c22470d67-fa0f07b0-backup.hg\n-  ### Backup markers ###\n-      29f93b1df87baee1824e014080d8adf145f81783 0 {84fcb0dfe17b256ebae52e05572993b9194c018a} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <relevant> <backed-up> ###\n-  #################################\n-  ### Stripped markers ###\n-      29f93b1df87baee1824e014080d8adf145f81783 0 {84fcb0dfe17b256ebae52e05572993b9194c018a} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 1 changesets with 1 changes to 1 files\n-  # unbundling: 3 new obsolescence markers\n-  # unbundling: new changesets cf2c22470d67 (1 drafts)\n-  # unbundling: (run \'hg update\' to get a working copy)\n+      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  # stripping: saved backup bundle to $TESTTMP\\missing-prune\\.hg\\strip-backup/cf2c22470d67-fa0f07b0-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\missing-prune\\.hg\\strip-backup/cf2c22470d67-fa0f07b0-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  hg debugbundle: invalid arguments\n+  ### Backup markers ###\n+  \n+  options ([+] can be repeated):\n+  \n+   -a --all                 show all details\n+      --part-type VALUE [+] show only the named part type\n+      --spec                print the bundlespec of the bundle\n+  \n+  (use \'hg debugbundle -h\' to show more help)\n+  ### diff <relevant> <backed-up> ###\n+  $TESTTMP/missing-prune-C-A1-relevant-markers.txt $TESTTMP/missing-prune-C-A1-bundle-markers.hg differ: char 1, line 1\n+  --- $TESTTMP/missing-prune-C-A1-relevant-markers.txt\t2020-12-04 23:52:22 +0000\n+  +++ $TESTTMP/missing-prune-C-A1-bundle-markers.hg\t2020-12-04 23:52:24 +0000\n+  @@ -1,3 +1,8 @@\n+  -    29f93b1df87baee1824e014080d8adf145f81783 0 {84fcb0dfe17b256ebae52e05572993b9194c018a} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  +\n+  +options ([+] can be repeated):\n+  +\n+  + -a --all                 show all details\n+  +    --part-type VALUE [+] show only the named part type\n+  +    --spec                print the bundlespec of the bundle\n+  +\n+  +(use \'hg debugbundle -h\' to show more help)\n+  #################################\n+  ### Stripped markers ###\n+  ### diff <exclusive> <stripped> ###\n+  cmp: EOF on $TESTTMP/missing-prune-C-A1-stripped-markers.txt\n+  --- $TESTTMP/missing-prune-C-A1-exclusive-markers.txt\t2020-12-04 23:52:22 +0000\n+  +++ $TESTTMP/missing-prune-C-A1-stripped-markers.txt\t2020-12-04 23:52:24 +0000\n+  @@ -1 +0,0 @@\n+  -    84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n \n chain with precursors also pruned\n =================================\n@@ -710,12 +994,64 @@\n (it is annoying to create prune with parent data without the changeset, so we strip it after the fact)\n \n   $ hg strip --hidden --rev \'desc("C-A0")::\' --no-backup --config devel.strip-obsmarkers=no\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\prune-inline-missing\\.hg\\strip-backup/84fcb0dfe17b-fa0f07b0-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\prune-inline-missing\\.hg\\strip-backup/84fcb0dfe17b-fa0f07b0-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg up \'desc("ROOT")\'\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n   $ hg log --hidden -G\n   o  cf2c22470d67: C-A1\n   |\n+  | x  84fcb0dfe17b: C-A0\n+  |/\n   @  ea207398892e: ROOT\n   \n   $ hg debugobsolete\n@@ -741,29 +1077,48 @@\n   ### diff <relevant> <bundled> ###\n   #################################\n   ### Exclusive markers ###\n-      84fcb0dfe17b256ebae52e05572993b9194c018a 0 {ea207398892eb49e06441f10dda2a731f0450f20} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  # stripping: saved backup bundle to $TESTTMP/prune-inline-missing/.hg/strip-backup/cf2c22470d67-fa0f07b0-backup.hg\n-  ### Backup markers ###\n-      84fcb0dfe17b256ebae52e05572993b9194c018a 0 {ea207398892eb49e06441f10dda2a731f0450f20} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <relevant> <backed-up> ###\n-  #################################\n-  ### Stripped markers ###\n-      84fcb0dfe17b256ebae52e05572993b9194c018a 0 {ea207398892eb49e06441f10dda2a731f0450f20} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 1 changesets with 1 changes to 1 files\n-  # unbundling: 3 new obsolescence markers\n-  # unbundling: new changesets cf2c22470d67 (1 drafts)\n-  # unbundling: (run \'hg update\' to get a working copy)\n+      84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  # stripping: saved backup bundle to $TESTTMP\\prune-inline-missing\\.hg\\strip-backup/cf2c22470d67-fa0f07b0-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\prune-inline-missing\\.hg\\strip-backup/cf2c22470d67-fa0f07b0-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  hg debugbundle: invalid arguments\n+  ### Backup markers ###\n+  \n+  options ([+] can be repeated):\n+  \n+   -a --all                 show all details\n+      --part-type VALUE [+] show only the named part type\n+      --spec                print the bundlespec of the bundle\n+  \n+  (use \'hg debugbundle -h\' to show more help)\n+  ### diff <relevant> <backed-up> ###\n+  $TESTTMP/prune-inline-missing-C-A1-relevant-markers.txt $TESTTMP/prune-inline-missing-C-A1-bundle-markers.hg differ: char 1, line 1\n+  --- $TESTTMP/prune-inline-missing-C-A1-relevant-markers.txt\t2020-12-04 23:52:30 +0000\n+  +++ $TESTTMP/prune-inline-missing-C-A1-bundle-markers.hg\t2020-12-04 23:52:33 +0000\n+  @@ -1,3 +1,8 @@\n+  -    84fcb0dfe17b256ebae52e05572993b9194c018a 0 {ea207398892eb49e06441f10dda2a731f0450f20} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 84fcb0dfe17b256ebae52e05572993b9194c018a 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  +\n+  +options ([+] can be repeated):\n+  +\n+  + -a --all                 show all details\n+  +    --part-type VALUE [+] show only the named part type\n+  +    --spec                print the bundlespec of the bundle\n+  +\n+  +(use \'hg debugbundle -h\' to show more help)\n+  #################################\n+  ### Stripped markers ###\n+  ### diff <exclusive> <stripped> ###\n+  cmp: EOF on $TESTTMP/prune-inline-missing-C-A1-stripped-markers.txt\n+  --- $TESTTMP/prune-inline-missing-C-A1-exclusive-markers.txt\t2020-12-04 23:52:31 +0000\n+  +++ $TESTTMP/prune-inline-missing-C-A1-stripped-markers.txt\t2020-12-04 23:52:33 +0000\n+  @@ -1 +0,0 @@\n+  -    84fcb0dfe17b256ebae52e05572993b9194c018a cf2c22470d67233004e934a31184ac2b35389914 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n \n Chain with fold and split\n =========================\n@@ -855,19 +1210,86 @@\n   #################################\n   ### Exclusive markers ###\n   # stripping: saved backup bundle to $TESTTMP/split-fold/.hg/strip-backup/9ac430e15fca-81204eba-backup.hg\n-  ### Backup markers ###\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <relevant> <backed-up> ###\n-  #################################\n-  ### Stripped markers ###\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 1 changesets with 1 changes to 1 files (+1 heads)\n-  # unbundling: (1 other changesets obsolete on arrival)\n-  # unbundling: (run \'hg heads\' to see heads)\n+  strip failed, backup bundle stored in \'$TESTTMP\\split-fold\\.hg\\strip-backup/9ac430e15fca-81204eba-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\split-fold\\.hg\\strip-backup/9ac430e15fca-b457781c-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\split-fold\\.hg\\strip-backup/9ac430e15fca-b457781c-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  hg debugbundle: invalid arguments\n+  ### Backup markers ###\n+  \n+  options ([+] can be repeated):\n+  \n+   -a --all                 show all details\n+      --part-type VALUE [+] show only the named part type\n+      --spec                print the bundlespec of the bundle\n+  \n+  (use \'hg debugbundle -h\' to show more help)\n+  ### diff <relevant> <backed-up> ###\n+  $TESTTMP/split-fold-C-A-relevant-markers.txt $TESTTMP/split-fold-C-A-bundle-markers.hg differ: char 1, line 1\n+  --- $TESTTMP/split-fold-C-A-relevant-markers.txt\t2020-12-04 23:52:46 +0000\n+  +++ $TESTTMP/split-fold-C-A-bundle-markers.hg\t2020-12-04 23:52:53 +0000\n+  @@ -1 +1,8 @@\n+  -    a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  +\n+  +options ([+] can be repeated):\n+  +\n+  + -a --all                 show all details\n+  +    --part-type VALUE [+] show only the named part type\n+  +    --spec                print the bundlespec of the bundle\n+  +\n+  +(use \'hg debugbundle -h\' to show more help)\n+  #################################\n+  ### Stripped markers ###\n+  ### diff <exclusive> <stripped> ###\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n \n   $ testrevs \'desc("C-B")\'\n   ### Matched revisions###\n@@ -883,78 +1305,144 @@\n   #################################\n   ### Exclusive markers ###\n   # stripping: saved backup bundle to $TESTTMP/split-fold/.hg/strip-backup/a9b9da38ed96-7465d6e9-backup.hg\n-  ### Backup markers ###\n+  strip failed, backup bundle stored in \'$TESTTMP\\split-fold\\.hg\\strip-backup/a9b9da38ed96-7465d6e9-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\split-fold\\.hg\\strip-backup/a9b9da38ed96-4a490a3a-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\split-fold\\.hg\\strip-backup/a9b9da38ed96-4a490a3a-temp.hg\'")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  hg debugbundle: invalid arguments\n+  ### Backup markers ###\n+  \n+  options ([+] can be repeated):\n+  \n+   -a --all                 show all details\n+      --part-type VALUE [+] show only the named part type\n+      --spec                print the bundlespec of the bundle\n+  \n+  (use \'hg debugbundle -h\' to show more help)\n+  ### diff <relevant> <backed-up> ###\n+  $TESTTMP/split-fold-C-B-relevant-markers.txt $TESTTMP/split-fold-C-B-bundle-markers.hg differ: char 1, line 1\n+  --- $TESTTMP/split-fold-C-B-relevant-markers.txt\t2020-12-04 23:52:54 +0000\n+  +++ $TESTTMP/split-fold-C-B-bundle-markers.hg\t2020-12-04 23:52:56 +0000\n+  @@ -1,2 +1,8 @@\n+  -    9ac430e15fca923b0ba027ca85d4d75c5c9cb73c a9b9da38ed96f8c6c14f429441f625a344eb4696 27ec657ca21dd27c36c99fa75586f72ff0d442f1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  +\n+  +options ([+] can be repeated):\n+  +\n+  + -a --all                 show all details\n+  +    --part-type VALUE [+] show only the named part type\n+  +    --spec                print the bundlespec of the bundle\n+  +\n+  +(use \'hg debugbundle -h\' to show more help)\n+  #################################\n+  ### Stripped markers ###\n+  ### diff <exclusive> <stripped> ###\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+\n+  $ testrevs \'desc("C-C")\'\n+  ### Matched revisions###\n+  27ec657ca21d: C-C\n+  ### Relevant markers ###\n       9ac430e15fca923b0ba027ca85d4d75c5c9cb73c a9b9da38ed96f8c6c14f429441f625a344eb4696 27ec657ca21dd27c36c99fa75586f72ff0d442f1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <relevant> <backed-up> ###\n-  #################################\n-  ### Stripped markers ###\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 1 changesets with 1 changes to 1 files (+1 heads)\n-  # unbundling: (1 other changesets obsolete on arrival)\n-  # unbundling: (run \'hg heads\' to see heads)\n-\n-  $ testrevs \'desc("C-C")\'\n-  ### Matched revisions###\n-  27ec657ca21d: C-C\n-  ### Relevant markers ###\n+  # bundling: 1 changesets found\n+  ### Bundled markers ###\n       9ac430e15fca923b0ba027ca85d4d75c5c9cb73c a9b9da38ed96f8c6c14f429441f625a344eb4696 27ec657ca21dd27c36c99fa75586f72ff0d442f1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  ### diff <relevant> <bundled> ###\n+  #################################\n+  ### Exclusive markers ###\n+  # stripping: saved backup bundle to $TESTTMP/split-fold/.hg/strip-backup/27ec657ca21d-d5dd1c7c-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\split-fold\\.hg\\strip-backup/27ec657ca21d-d5dd1c7c-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\split-fold\\.hg\\strip-backup/27ec657ca21d-bf1b80f4-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\split-fold\\.hg\\strip-backup/27ec657ca21d-bf1b80f4-temp.hg\'")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  hg debugbundle: invalid arguments\n+  ### Backup markers ###\n+  \n+  options ([+] can be repeated):\n+  \n+   -a --all                 show all details\n+      --part-type VALUE [+] show only the named part type\n+      --spec                print the bundlespec of the bundle\n+  \n+  (use \'hg debugbundle -h\' to show more help)\n+  ### diff <relevant> <backed-up> ###\n+  $TESTTMP/split-fold-C-C-relevant-markers.txt $TESTTMP/split-fold-C-C-bundle-markers.hg differ: char 1, line 1\n+  --- $TESTTMP/split-fold-C-C-relevant-markers.txt\t2020-12-04 23:52:57 +0000\n+  +++ $TESTTMP/split-fold-C-C-bundle-markers.hg\t2020-12-04 23:52:59 +0000\n+  @@ -1,2 +1,8 @@\n+  -    9ac430e15fca923b0ba027ca85d4d75c5c9cb73c a9b9da38ed96f8c6c14f429441f625a344eb4696 27ec657ca21dd27c36c99fa75586f72ff0d442f1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  +\n+  +options ([+] can be repeated):\n+  +\n+  + -a --all                 show all details\n+  +    --part-type VALUE [+] show only the named part type\n+  +    --spec                print the bundlespec of the bundle\n+  +\n+  +(use \'hg debugbundle -h\' to show more help)\n+  #################################\n+  ### Stripped markers ###\n+  ### diff <exclusive> <stripped> ###\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+\n+  $ testrevs \'desc("C-D")\'\n+  ### Matched revisions###\n+  06dc9da25ef0: C-D\n+  ### Relevant markers ###\n+      9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n   # bundling: 1 changesets found\n   ### Bundled markers ###\n-      9ac430e15fca923b0ba027ca85d4d75c5c9cb73c a9b9da38ed96f8c6c14f429441f625a344eb4696 27ec657ca21dd27c36c99fa75586f72ff0d442f1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <relevant> <bundled> ###\n-  #################################\n-  ### Exclusive markers ###\n-  # stripping: saved backup bundle to $TESTTMP/split-fold/.hg/strip-backup/27ec657ca21d-d5dd1c7c-backup.hg\n-  ### Backup markers ###\n-      9ac430e15fca923b0ba027ca85d4d75c5c9cb73c a9b9da38ed96f8c6c14f429441f625a344eb4696 27ec657ca21dd27c36c99fa75586f72ff0d442f1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <relevant> <backed-up> ###\n-  #################################\n-  ### Stripped markers ###\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 1 changesets with 1 changes to 1 files (+1 heads)\n-  # unbundling: (1 other changesets obsolete on arrival)\n-  # unbundling: (run \'hg heads\' to see heads)\n-\n-  $ testrevs \'desc("C-D")\'\n-  ### Matched revisions###\n-  06dc9da25ef0: C-D\n-  ### Relevant markers ###\n       9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  # bundling: 1 changesets found\n-  ### Bundled markers ###\n-      9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n   ### diff <relevant> <bundled> ###\n   #################################\n   ### Exclusive markers ###\n   # stripping: saved backup bundle to $TESTTMP/split-fold/.hg/strip-backup/06dc9da25ef0-9b1c0a91-backup.hg\n-  ### Backup markers ###\n-      9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <relevant> <backed-up> ###\n-  #################################\n-  ### Stripped markers ###\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 1 changesets with 1 changes to 1 files (+1 heads)\n-  # unbundling: (1 other changesets obsolete on arrival)\n-  # unbundling: (run \'hg heads\' to see heads)\n+  strip failed, backup bundle stored in \'$TESTTMP\\split-fold\\.hg\\strip-backup/06dc9da25ef0-9b1c0a91-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\split-fold\\.hg\\strip-backup/06dc9da25ef0-8adeb22d-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\split-fold\\.hg\\strip-backup/06dc9da25ef0-8adeb22d-temp.hg\'")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  hg debugbundle: invalid arguments\n+  ### Backup markers ###\n+  \n+  options ([+] can be repeated):\n+  \n+   -a --all                 show all details\n+      --part-type VALUE [+] show only the named part type\n+      --spec                print the bundlespec of the bundle\n+  \n+  (use \'hg debugbundle -h\' to show more help)\n+  ### diff <relevant> <backed-up> ###\n+  $TESTTMP/split-fold-C-D-relevant-markers.txt $TESTTMP/split-fold-C-D-bundle-markers.hg differ: char 1, line 1\n+  --- $TESTTMP/split-fold-C-D-relevant-markers.txt\t2020-12-04 23:53:00 +0000\n+  +++ $TESTTMP/split-fold-C-D-bundle-markers.hg\t2020-12-04 23:53:02 +0000\n+  @@ -1,2 +1,8 @@\n+  -    9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  +\n+  +options ([+] can be repeated):\n+  +\n+  + -a --all                 show all details\n+  +    --part-type VALUE [+] show only the named part type\n+  +    --spec                print the bundlespec of the bundle\n+  +\n+  +(use \'hg debugbundle -h\' to show more help)\n+  #################################\n+  ### Stripped markers ###\n+  ### diff <exclusive> <stripped> ###\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n \n   $ testrevs \'desc("C-E")\'\n   ### Matched revisions###\n@@ -990,7 +1478,9 @@\n       b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n   # stripping: saved backup bundle to $TESTTMP/split-fold/.hg/strip-backup/2f20ff6509f0-8adeb22d-backup.hg\n-  3 new content-divergent changesets\n+  strip failed, backup bundle stored in \'$TESTTMP\\split-fold\\.hg\\strip-backup/2f20ff6509f0-8adeb22d-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   ### Backup markers ###\n       06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       27ec657ca21dd27c36c99fa75586f72ff0d442f1 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n@@ -1004,22 +1494,20 @@\n   ### diff <relevant> <backed-up> ###\n   #################################\n   ### Stripped markers ###\n-      06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      27ec657ca21dd27c36c99fa75586f72ff0d442f1 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      9ac430e15fca923b0ba027ca85d4d75c5c9cb73c b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a9b9da38ed96f8c6c14f429441f625a344eb4696 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 1 changesets with 1 changes to 1 files (+1 heads)\n-  # unbundling: 6 new obsolescence markers\n-  # unbundling: obsoleted 3 changesets\n-  # unbundling: new changesets 2f20ff6509f0 (1 drafts)\n-  # unbundling: (run \'hg heads\' to see heads)\n+  ### diff <exclusive> <stripped> ###\n+  cmp: EOF on $TESTTMP/split-fold-C-E-stripped-markers.txt\n+  --- $TESTTMP/split-fold-C-E-exclusive-markers.txt\t2020-12-04 23:53:03 +0000\n+  +++ $TESTTMP/split-fold-C-E-stripped-markers.txt\t2020-12-04 23:53:05 +0000\n+  @@ -1,6 +0,0 @@\n+  -    06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    27ec657ca21dd27c36c99fa75586f72ff0d442f1 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    9ac430e15fca923b0ba027ca85d4d75c5c9cb73c b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a9b9da38ed96f8c6c14f429441f625a344eb4696 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n \n Bundle multiple revisions\n \n@@ -1040,20 +1528,42 @@\n   #################################\n   ### Exclusive markers ###\n   # stripping: saved backup bundle to $TESTTMP/split-fold/.hg/strip-backup/a9b9da38ed96-0daf625a-backup.hg\n-  ### Backup markers ###\n-      9ac430e15fca923b0ba027ca85d4d75c5c9cb73c a9b9da38ed96f8c6c14f429441f625a344eb4696 27ec657ca21dd27c36c99fa75586f72ff0d442f1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <relevant> <backed-up> ###\n-  #################################\n-  ### Stripped markers ###\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 2 changesets with 2 changes to 2 files (+2 heads)\n-  # unbundling: (2 other changesets obsolete on arrival)\n-  # unbundling: (run \'hg heads\' to see heads)\n+  strip failed, backup bundle stored in \'$TESTTMP\\split-fold\\.hg\\strip-backup/a9b9da38ed96-0daf625a-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\split-fold\\.hg\\strip-backup/a9b9da38ed96-bf1b80f4-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\split-fold\\.hg\\strip-backup/a9b9da38ed96-bf1b80f4-temp.hg\'")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  hg debugbundle: invalid arguments\n+  ### Backup markers ###\n+  \n+  options ([+] can be repeated):\n+  \n+   -a --all                 show all details\n+      --part-type VALUE [+] show only the named part type\n+      --spec                print the bundlespec of the bundle\n+  \n+  (use \'hg debugbundle -h\' to show more help)\n+  ### diff <relevant> <backed-up> ###\n+  $TESTTMP/split-fold-C-B-C-C-relevant-markers.txt $TESTTMP/split-fold-C-B-C-C-bundle-markers.hg differ: char 1, line 1\n+  --- $TESTTMP/split-fold-C-B-C-C-relevant-markers.txt\t2020-12-04 23:53:06 +0000\n+  +++ $TESTTMP/split-fold-C-B-C-C-bundle-markers.hg\t2020-12-04 23:53:08 +0000\n+  @@ -1,2 +1,8 @@\n+  -    9ac430e15fca923b0ba027ca85d4d75c5c9cb73c a9b9da38ed96f8c6c14f429441f625a344eb4696 27ec657ca21dd27c36c99fa75586f72ff0d442f1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  +\n+  +options ([+] can be repeated):\n+  +\n+  + -a --all                 show all details\n+  +    --part-type VALUE [+] show only the named part type\n+  +    --spec                print the bundlespec of the bundle\n+  +\n+  +(use \'hg debugbundle -h\' to show more help)\n+  #################################\n+  ### Stripped markers ###\n+  ### diff <exclusive> <stripped> ###\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n \n * top one and other divergent\n \n@@ -1093,6 +1603,9 @@\n       b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n   # stripping: saved backup bundle to $TESTTMP/split-fold/.hg/strip-backup/2f20ff6509f0-bf1b80f4-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\split-fold\\.hg\\strip-backup/2f20ff6509f0-bf1b80f4-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   ### Backup markers ###\n       06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       27ec657ca21dd27c36c99fa75586f72ff0d442f1 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n@@ -1106,24 +1619,21 @@\n   ### diff <relevant> <backed-up> ###\n   #################################\n   ### Stripped markers ###\n-      06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      27ec657ca21dd27c36c99fa75586f72ff0d442f1 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      9ac430e15fca923b0ba027ca85d4d75c5c9cb73c b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a9b9da38ed96f8c6c14f429441f625a344eb4696 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 2 changesets with 2 changes to 2 files (+2 heads)\n-  # unbundling: 7 new obsolescence markers\n-  # unbundling: obsoleted 2 changesets\n-  # unbundling: new changesets 2f20ff6509f0 (1 drafts)\n-  # unbundling: (1 other changesets obsolete on arrival)\n-  # unbundling: (run \'hg heads\' to see heads)\n+  ### diff <exclusive> <stripped> ###\n+  cmp: EOF on $TESTTMP/split-fold-C-E-C-D-stripped-markers.txt\n+  --- $TESTTMP/split-fold-C-E-C-D-exclusive-markers.txt\t2020-12-04 23:53:09 +0000\n+  +++ $TESTTMP/split-fold-C-E-C-D-stripped-markers.txt\t2020-12-04 23:53:11 +0000\n+  @@ -1,7 +0,0 @@\n+  -    06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    27ec657ca21dd27c36c99fa75586f72ff0d442f1 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    9ac430e15fca923b0ba027ca85d4d75c5c9cb73c b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a9b9da38ed96f8c6c14f429441f625a344eb4696 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n \n * top one and initial precursors\n \n@@ -1162,37 +1672,59 @@\n       b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n   # stripping: saved backup bundle to $TESTTMP/split-fold/.hg/strip-backup/9ac430e15fca-36b6476a-backup.hg\n-  3 new content-divergent changesets\n-  ### Backup markers ###\n-      06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      27ec657ca21dd27c36c99fa75586f72ff0d442f1 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      9ac430e15fca923b0ba027ca85d4d75c5c9cb73c a9b9da38ed96f8c6c14f429441f625a344eb4696 27ec657ca21dd27c36c99fa75586f72ff0d442f1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      9ac430e15fca923b0ba027ca85d4d75c5c9cb73c b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a9b9da38ed96f8c6c14f429441f625a344eb4696 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <relevant> <backed-up> ###\n-  #################################\n-  ### Stripped markers ###\n-      06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      27ec657ca21dd27c36c99fa75586f72ff0d442f1 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      9ac430e15fca923b0ba027ca85d4d75c5c9cb73c b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a9b9da38ed96f8c6c14f429441f625a344eb4696 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 2 changesets with 2 changes to 2 files (+2 heads)\n-  # unbundling: 6 new obsolescence markers\n-  # unbundling: obsoleted 3 changesets\n-  # unbundling: new changesets 2f20ff6509f0 (1 drafts)\n-  # unbundling: (1 other changesets obsolete on arrival)\n-  # unbundling: (run \'hg heads\' to see heads)\n+  strip failed, backup bundle stored in \'$TESTTMP\\split-fold\\.hg\\strip-backup/9ac430e15fca-36b6476a-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\split-fold\\.hg\\strip-backup/9ac430e15fca-0df7db7c-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\split-fold\\.hg\\strip-backup/9ac430e15fca-0df7db7c-temp.hg\'")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  hg debugbundle: invalid arguments\n+  ### Backup markers ###\n+  \n+  options ([+] can be repeated):\n+  \n+   -a --all                 show all details\n+      --part-type VALUE [+] show only the named part type\n+      --spec                print the bundlespec of the bundle\n+  \n+  (use \'hg debugbundle -h\' to show more help)\n+  ### diff <relevant> <backed-up> ###\n+  $TESTTMP/split-fold-C-E-C-A-relevant-markers.txt $TESTTMP/split-fold-C-E-C-A-bundle-markers.hg differ: char 1, line 1\n+  --- $TESTTMP/split-fold-C-E-C-A-relevant-markers.txt\t2020-12-04 23:53:12 +0000\n+  +++ $TESTTMP/split-fold-C-E-C-A-bundle-markers.hg\t2020-12-04 23:53:14 +0000\n+  @@ -1,9 +1,8 @@\n+  -    06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    27ec657ca21dd27c36c99fa75586f72ff0d442f1 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    9ac430e15fca923b0ba027ca85d4d75c5c9cb73c a9b9da38ed96f8c6c14f429441f625a344eb4696 27ec657ca21dd27c36c99fa75586f72ff0d442f1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    9ac430e15fca923b0ba027ca85d4d75c5c9cb73c b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a9b9da38ed96f8c6c14f429441f625a344eb4696 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  +\n+  +options ([+] can be repeated):\n+  +\n+  + -a --all                 show all details\n+  +    --part-type VALUE [+] show only the named part type\n+  +    --spec                print the bundlespec of the bundle\n+  +\n+  +(use \'hg debugbundle -h\' to show more help)\n+  #################################\n+  ### Stripped markers ###\n+  ### diff <exclusive> <stripped> ###\n+  cmp: EOF on $TESTTMP/split-fold-C-E-C-A-stripped-markers.txt\n+  --- $TESTTMP/split-fold-C-E-C-A-exclusive-markers.txt\t2020-12-04 23:53:12 +0000\n+  +++ $TESTTMP/split-fold-C-E-C-A-stripped-markers.txt\t2020-12-04 23:53:14 +0000\n+  @@ -1,6 +0,0 @@\n+  -    06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    27ec657ca21dd27c36c99fa75586f72ff0d442f1 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    9ac430e15fca923b0ba027ca85d4d75c5c9cb73c b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a9b9da38ed96f8c6c14f429441f625a344eb4696 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n \n * top one and one of the split\n \n@@ -1232,7 +1764,71 @@\n       b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n   # stripping: saved backup bundle to $TESTTMP/split-fold/.hg/strip-backup/2f20ff6509f0-5fdfcd7d-backup.hg\n-  ### Backup markers ###\n+  strip failed, backup bundle stored in \'$TESTTMP\\split-fold\\.hg\\strip-backup/2f20ff6509f0-5fdfcd7d-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\split-fold\\.hg\\strip-backup/2f20ff6509f0-9b1c0a91-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\split-fold\\.hg\\strip-backup/2f20ff6509f0-9b1c0a91-temp.hg\'")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  hg debugbundle: invalid arguments\n+  ### Backup markers ###\n+  \n+  options ([+] can be repeated):\n+  \n+   -a --all                 show all details\n+      --part-type VALUE [+] show only the named part type\n+      --spec                print the bundlespec of the bundle\n+  \n+  (use \'hg debugbundle -h\' to show more help)\n+  ### diff <relevant> <backed-up> ###\n+  $TESTTMP/split-fold-C-E-C-C-relevant-markers.txt $TESTTMP/split-fold-C-E-C-C-bundle-markers.hg differ: char 1, line 1\n+  --- $TESTTMP/split-fold-C-E-C-C-relevant-markers.txt\t2020-12-04 23:53:15 +0000\n+  +++ $TESTTMP/split-fold-C-E-C-C-bundle-markers.hg\t2020-12-04 23:53:17 +0000\n+  @@ -1,9 +1,8 @@\n+  -    06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    27ec657ca21dd27c36c99fa75586f72ff0d442f1 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    9ac430e15fca923b0ba027ca85d4d75c5c9cb73c a9b9da38ed96f8c6c14f429441f625a344eb4696 27ec657ca21dd27c36c99fa75586f72ff0d442f1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    9ac430e15fca923b0ba027ca85d4d75c5c9cb73c b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a9b9da38ed96f8c6c14f429441f625a344eb4696 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  +\n+  +options ([+] can be repeated):\n+  +\n+  + -a --all                 show all details\n+  +    --part-type VALUE [+] show only the named part type\n+  +    --spec                print the bundlespec of the bundle\n+  +\n+  +(use \'hg debugbundle -h\' to show more help)\n+  #################################\n+  ### Stripped markers ###\n+  ### diff <exclusive> <stripped> ###\n+  cmp: EOF on $TESTTMP/split-fold-C-E-C-C-stripped-markers.txt\n+  --- $TESTTMP/split-fold-C-E-C-C-exclusive-markers.txt\t2020-12-04 23:53:15 +0000\n+  +++ $TESTTMP/split-fold-C-E-C-C-stripped-markers.txt\t2020-12-04 23:53:17 +0000\n+  @@ -1,7 +0,0 @@\n+  -    06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    27ec657ca21dd27c36c99fa75586f72ff0d442f1 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    9ac430e15fca923b0ba027ca85d4d75c5c9cb73c a9b9da38ed96f8c6c14f429441f625a344eb4696 27ec657ca21dd27c36c99fa75586f72ff0d442f1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    9ac430e15fca923b0ba027ca85d4d75c5c9cb73c b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a9b9da38ed96f8c6c14f429441f625a344eb4696 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+\n+* all\n+\n+  $ testrevs \'desc("C-")\'\n+  ### Matched revisions###\n+  06dc9da25ef0: C-D\n+  27ec657ca21d: C-C\n+  2f20ff6509f0: C-E\n+  9ac430e15fca: C-A\n+  a9b9da38ed96: C-B\n+  ### Relevant markers ###\n       06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       27ec657ca21dd27c36c99fa75586f72ff0d442f1 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n@@ -1242,38 +1838,8 @@\n       a9b9da38ed96f8c6c14f429441f625a344eb4696 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <relevant> <backed-up> ###\n-  #################################\n-  ### Stripped markers ###\n-      06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      27ec657ca21dd27c36c99fa75586f72ff0d442f1 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      9ac430e15fca923b0ba027ca85d4d75c5c9cb73c a9b9da38ed96f8c6c14f429441f625a344eb4696 27ec657ca21dd27c36c99fa75586f72ff0d442f1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      9ac430e15fca923b0ba027ca85d4d75c5c9cb73c b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a9b9da38ed96f8c6c14f429441f625a344eb4696 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 2 changesets with 2 changes to 2 files (+2 heads)\n-  # unbundling: 7 new obsolescence markers\n-  # unbundling: obsoleted 2 changesets\n-  # unbundling: new changesets 2f20ff6509f0 (1 drafts)\n-  # unbundling: (1 other changesets obsolete on arrival)\n-  # unbundling: (run \'hg heads\' to see heads)\n-\n-* all\n-\n-  $ testrevs \'desc("C-")\'\n-  ### Matched revisions###\n-  06dc9da25ef0: C-D\n-  27ec657ca21d: C-C\n-  2f20ff6509f0: C-E\n-  9ac430e15fca: C-A\n-  a9b9da38ed96: C-B\n-  ### Relevant markers ###\n+  # bundling: 5 changesets found\n+  ### Bundled markers ###\n       06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       27ec657ca21dd27c36c99fa75586f72ff0d442f1 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n@@ -1283,8 +1849,9 @@\n       a9b9da38ed96f8c6c14f429441f625a344eb4696 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  # bundling: 5 changesets found\n-  ### Bundled markers ###\n+  ### diff <relevant> <bundled> ###\n+  #################################\n+  ### Exclusive markers ###\n       06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       27ec657ca21dd27c36c99fa75586f72ff0d442f1 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n@@ -1294,9 +1861,11 @@\n       a9b9da38ed96f8c6c14f429441f625a344eb4696 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <relevant> <bundled> ###\n-  #################################\n-  ### Exclusive markers ###\n+  # stripping: saved backup bundle to $TESTTMP/split-fold/.hg/strip-backup/a9b9da38ed96-eeb4258f-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\split-fold\\.hg\\strip-backup/a9b9da38ed96-eeb4258f-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  ### Backup markers ###\n       06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       27ec657ca21dd27c36c99fa75586f72ff0d442f1 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n@@ -1306,39 +1875,26 @@\n       a9b9da38ed96f8c6c14f429441f625a344eb4696 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n       c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  # stripping: saved backup bundle to $TESTTMP/split-fold/.hg/strip-backup/a9b9da38ed96-eeb4258f-backup.hg\n-  ### Backup markers ###\n-      06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      27ec657ca21dd27c36c99fa75586f72ff0d442f1 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      9ac430e15fca923b0ba027ca85d4d75c5c9cb73c a9b9da38ed96f8c6c14f429441f625a344eb4696 27ec657ca21dd27c36c99fa75586f72ff0d442f1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      9ac430e15fca923b0ba027ca85d4d75c5c9cb73c b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a9b9da38ed96f8c6c14f429441f625a344eb4696 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <relevant> <backed-up> ###\n-  #################################\n-  ### Stripped markers ###\n-      06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      27ec657ca21dd27c36c99fa75586f72ff0d442f1 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      9ac430e15fca923b0ba027ca85d4d75c5c9cb73c a9b9da38ed96f8c6c14f429441f625a344eb4696 27ec657ca21dd27c36c99fa75586f72ff0d442f1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      9ac430e15fca923b0ba027ca85d4d75c5c9cb73c b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      a9b9da38ed96f8c6c14f429441f625a344eb4696 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-      c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 5 changesets with 5 changes to 5 files (+4 heads)\n-  # unbundling: 9 new obsolescence markers\n-  # unbundling: new changesets 2f20ff6509f0 (1 drafts)\n-  # unbundling: (4 other changesets obsolete on arrival)\n-  # unbundling: (run \'hg heads\' to see heads)\n+  ### diff <relevant> <backed-up> ###\n+  #################################\n+  ### Stripped markers ###\n+  ### diff <exclusive> <stripped> ###\n+  cmp: EOF on $TESTTMP/split-fold-C-A-C-B-C-C-C-D-C-E-stripped-markers.txt\n+  --- $TESTTMP/split-fold-C-A-C-B-C-C-C-D-C-E-exclusive-markers.txt\t2020-12-04 23:53:18 +0000\n+  +++ $TESTTMP/split-fold-C-A-C-B-C-C-C-D-C-E-stripped-markers.txt\t2020-12-04 23:53:20 +0000\n+  @@ -1,9 +0,0 @@\n+  -    06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    27ec657ca21dd27c36c99fa75586f72ff0d442f1 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 06dc9da25ef03e1ff7864dded5fcba42eff2a3f0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    9ac430e15fca923b0ba027ca85d4d75c5c9cb73c a9b9da38ed96f8c6c14f429441f625a344eb4696 27ec657ca21dd27c36c99fa75586f72ff0d442f1 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    9ac430e15fca923b0ba027ca85d4d75c5c9cb73c b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0 9ac430e15fca923b0ba027ca85d4d75c5c9cb73c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    a9b9da38ed96f8c6c14f429441f625a344eb4696 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  -    c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0 2f20ff6509f0e013e90c5c8efd996131c918b0ca 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n \n changeset pruned on its own\n ===========================\n@@ -1399,21 +1955,68 @@\n   ### Exclusive markers ###\n       cefb651fc2fdc7bb75e588781de5e432c134e8a5 0 {9ac430e15fca923b0ba027ca85d4d75c5c9cb73c} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n   # stripping: saved backup bundle to $TESTTMP/lonely-prune/.hg/strip-backup/cefb651fc2fd-345c8dfa-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\lonely-prune\\.hg\\strip-backup/cefb651fc2fd-345c8dfa-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   ### Backup markers ###\n       cefb651fc2fdc7bb75e588781de5e432c134e8a5 0 {9ac430e15fca923b0ba027ca85d4d75c5c9cb73c} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n   ### diff <relevant> <backed-up> ###\n   #################################\n   ### Stripped markers ###\n-      cefb651fc2fdc7bb75e588781de5e432c134e8a5 0 {9ac430e15fca923b0ba027ca85d4d75c5c9cb73c} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 1 changesets with 1 changes to 1 files\n-  # unbundling: 1 new obsolescence markers\n-  # unbundling: (1 other changesets obsolete on arrival)\n-  # unbundling: (run \'hg update\' to get a working copy)\n+  ### diff <exclusive> <stripped> ###\n+  cmp: EOF on $TESTTMP/lonely-prune-C-B-stripped-markers.txt\n+  --- $TESTTMP/lonely-prune-C-B-exclusive-markers.txt\t2020-12-04 23:53:26 +0000\n+  +++ $TESTTMP/lonely-prune-C-B-stripped-markers.txt\t2020-12-04 23:53:28 +0000\n+  @@ -1 +0,0 @@\n+  -    cefb651fc2fdc7bb75e588781de5e432c134e8a5 0 {9ac430e15fca923b0ba027ca85d4d75c5c9cb73c} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   $ testrevs \'desc("C-")\'\n   ### Matched revisions###\n   9ac430e15fca: C-A\n@@ -1428,19 +2031,20 @@\n   ### Exclusive markers ###\n       cefb651fc2fdc7bb75e588781de5e432c134e8a5 0 {9ac430e15fca923b0ba027ca85d4d75c5c9cb73c} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n   # stripping: saved backup bundle to $TESTTMP/lonely-prune/.hg/strip-backup/9ac430e15fca-b9855b02-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\lonely-prune\\.hg\\strip-backup/9ac430e15fca-b9855b02-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   ### Backup markers ###\n       cefb651fc2fdc7bb75e588781de5e432c134e8a5 0 {9ac430e15fca923b0ba027ca85d4d75c5c9cb73c} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n   ### diff <relevant> <backed-up> ###\n   #################################\n   ### Stripped markers ###\n-      cefb651fc2fdc7bb75e588781de5e432c134e8a5 0 {9ac430e15fca923b0ba027ca85d4d75c5c9cb73c} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ### diff <exclusive> <stripped> ###\n-  #################################\n-  # unbundling: adding changesets\n-  # unbundling: adding manifests\n-  # unbundling: adding file changes\n-  # unbundling: added 2 changesets with 2 changes to 2 files\n-  # unbundling: 1 new obsolescence markers\n-  # unbundling: new changesets 9ac430e15fca (1 drafts)\n-  # unbundling: (1 other changesets obsolete on arrival)\n-  # unbundling: (run \'hg update\' to get a working copy)\n+  ### diff <exclusive> <stripped> ###\n+  cmp: EOF on $TESTTMP/lonely-prune-C-A-C-B-stripped-markers.txt\n+  --- $TESTTMP/lonely-prune-C-A-C-B-exclusive-markers.txt\t2020-12-04 23:53:29 +0000\n+  +++ $TESTTMP/lonely-prune-C-A-C-B-stripped-markers.txt\t2020-12-04 23:53:31 +0000\n+  @@ -1 +0,0 @@\n+  -    cefb651fc2fdc7bb75e588781de5e432c134e8a5 0 {9ac430e15fca923b0ba027ca85d4d75c5c9cb73c} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  #################################\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n', 3211, 3213, 'truncated \\uXXXX escape') decoding diff, sorry

test-obsolete-changeset-exchange.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-obsolete-changeset-exchange.t\n+++ c:/hgdev/src/tests/test-obsolete-changeset-exchange.t.err\n@@ -65,29 +65,84 @@\n   $ hg phase -R ../other --draft --force f89bcc95eba5\n   $ hg commit --amend -m "A\'\'"\n   $ hg --hidden --config extensions.mq= strip  --no-backup f89bcc95eba5\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\local\\.hg\\strip-backup/f89bcc95eba5-63269e32-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\local\\.hg\\strip-backup/f89bcc95eba5-63269e32-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg pull ../other\n   pulling from ../other\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 1 files (+1 heads)\n-  1 new phase-divergent changesets\n-  new changesets f89bcc95eba5\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  no changes found\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n check that bundle is not affected\n \n   $ hg bundle --hidden --rev f89bcc95eba5 --base "f89bcc95eba5^" ../f89bcc95eba5.hg\n   1 changesets found\n   $ hg --hidden --config extensions.mq= strip --no-backup f89bcc95eba5\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\local\\.hg\\strip-backup/f89bcc95eba5-63269e32-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\local\\.hg\\strip-backup/f89bcc95eba5-63269e32-temp.hg\'")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg unbundle ../f89bcc95eba5.hg\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 1 files (+1 heads)\n-  (1 other changesets obsolete on arrival)\n-  (run \'hg heads\' to see heads)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n check-that bundle can contain markers:\n \n', 2450, 2452, 'truncated \\uXXXX escape') decoding diff, sorry

test-obsolete-distributed.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-obsolete-distributed.t\n+++ c:/hgdev/src/tests/test-obsolete-distributed.t.err\n@@ -151,39 +151,74 @@\n   obsoleting 1 changesets\n   new changesets 391a2bf12b1b (1 drafts)\n   accept incoming changes (yn)? n\n-  transaction abort!\n-  rollback completed\n-  abort: user aborted\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2167, in pullrebase\n+      ret = orig(ui, repo, *args, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 5398, in pull\n+      confirm=opts.get(b\'confirm\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1634, in pull\n+      _pullobsolete(pullop)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1462, in release\n+      self._tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg pull --confirm --config ui.interactive=True << EOF\n   > y\n   > EOF\n   pulling from $TESTTMP/distributed-chain-building/server\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  adding 1 changesets with 1 changes to 1 files (+1 heads)\n-  1 new obsolescence markers\n-  obsoleting 1 changesets\n-  new changesets 391a2bf12b1b (1 drafts)\n-  accept incoming changes (yn)? y\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n-  new changesets 391a2bf12b1b (1 drafts)\n-  (run \'hg heads\' to see heads)\n-  $ hg log -G\n-  o  4:391a2bf12b1b c_B1\n-  |\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg log -G\n   @  0:e82fb8d02bbf ROOT\n   \n   $ hg log -G --hidden -v\n-  o  4:391a2bf12b1b c_B1\n-  |\n-  | x  3:e5d7dda7cd28 c_B0 [rewritten as 4:391a2bf12b1b by server (at 1970-01-01 00:00 +0000)]\n-  |/\n+  x  3:e5d7dda7cd28 c_B0 [pruned]\n+  |\n   | x  2:7f6b0a6f5c25 c_A1 [rewritten as 3:e5d7dda7cd28 by client (at 1970-01-01 00:00 +0000)]\n   |/\n   | x  1:e1b46f0f979f c_A0 [rewritten as 2:7f6b0a6f5c25 by server (at 1970-01-01 00:00 +0000)]\n@@ -200,7 +235,7 @@\n obsolete on the server side but the marker is sent out.)\n \n   $ hg rollback\n-  repository tip rolled back to revision 3 (undo pull)\n+  repository tip rolled back to revision 3 (undo debugobsolete)\n   $ hg push -f\n   pushing to $TESTTMP/distributed-chain-building/server\n   searching for changes\n@@ -208,11 +243,14 @@\n   adding manifests\n   adding file changes\n   added 0 changesets with 0 changes to 1 files\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg -R ../server/ log -G\n   @  4:391a2bf12b1b c_B1\n   |\n+  | o  2:7f6b0a6f5c25 c_A1\n+  |/\n   o  0:e82fb8d02bbf ROOT\n   \n   $ hg -R ../server/ log -G --hidden -v\n@@ -220,7 +258,7 @@\n   |\n   | x  3:e5d7dda7cd28 c_B0 [rewritten as 4:391a2bf12b1b by server (at 1970-01-01 00:00 +0000)]\n   |/\n-  | x  2:7f6b0a6f5c25 c_A1 [rewritten as 3:e5d7dda7cd28 by client (at 1970-01-01 00:00 +0000)]\n+  | o  2:7f6b0a6f5c25 c_A1\n   |/\n   | x  1:e1b46f0f979f c_A0 [rewritten as 2:7f6b0a6f5c25 by server (at 1970-01-01 00:00 +0000)]\n   |/\n@@ -228,7 +266,6 @@\n   \n   $ hg debugobsolete\n   e1b46f0f979f52748347ff8729c59f2ef56e6fe2 7f6b0a6f5c25345a83870963efd827c1798a5959 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'server\'}\n-  7f6b0a6f5c25345a83870963efd827c1798a5959 e5d7dda7cd28e6b3f79437e5b8122a38ece0255c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'client\'}\n   $ cd ..\n \n Check getting changesets after getting the markers\n', 2211, 2213, 'truncated \\uXXXX escape') decoding diff, sorry

test-obsolete.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-obsolete.t\n+++ c:/hgdev/src/tests/test-obsolete.t.err\n@@ -32,8 +32,48 @@\n Checking that the feature is properly disabled\n \n   $ hg debugobsolete -d \'0 0\' `getid kill_me` -u babar\n-  abort: creating obsolete markers is not enabled on this repo\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\debugcommands.py", line 2328, in debugobsolete\n+      tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Enabling it\n \n@@ -46,31 +86,32 @@\n Killing a single changeset without replacement\n \n   $ hg debugobsolete 0\n-  abort: changeset references must be full hexadecimal node identifiers\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg debugobsolete \'00\'\n-  abort: changeset references must be full hexadecimal node identifiers\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg debugobsolete -d \'0 0\' `getid kill_me` -u babar\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg debugobsolete\n-  97b7c2d76b1845ed3eb988cd612611e72406cef0 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'babar\'}\n \n (test that mercurial is not confused)\n \n   $ hg up null --quiet # having 0 as parent prevents it to be hidden\n   $ hg tip\n-  -1:000000000000 (public) [tip ] \n+  0:97b7c2d76b18 (draft) [tip ] add kill_me\n   $ hg up --hidden tip --quiet\n-  updated to hidden changeset 97b7c2d76b18\n-  (hidden revision \'97b7c2d76b18\' is pruned)\n \n Killing a single changeset with itself should fail\n (simple local safeguard)\n \n   $ hg debugobsolete `getid kill_me` `getid kill_me`\n-  abort: bad obsmarker input: in-marker cycle with 97b7c2d76b1845ed3eb988cd612611e72406cef0\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n   $ cd ..\n@@ -146,30 +187,63 @@\n \n Refuse pathological nullid successors\n   $ hg debugobsolete -d \'9001 0\' 1337133713371337133713371337133713371337 0000000000000000000000000000000000000000\n-  transaction abort!\n-  rollback completed\n-  abort: bad obsolescence marker detected: invalid successors nullid\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\debugcommands.py", line 2328, in debugobsolete\n+      tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Check that graphlog detect that a changeset is obsolete:\n \n   $ hg log -G\n-  @  5:5601fb93a350 (draft) [tip ] add new_3_c\n-  |\n-  o  1:7c3bad9141dc (draft) [ ] add b\n-  |\n-  o  0:1f0dee641bb7 (draft) [ ] add a\n-  \n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n \n check that heads does not report them\n \n   $ hg heads\n-  5:5601fb93a350 (draft) [tip ] add new_3_c\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n   $ hg heads --hidden\n-  5:5601fb93a350 (draft) [tip ] add new_3_c\n-  4:ca819180edb9 (draft *obsolete*) [ ] add new_2_c [rewritten as 5:5601fb93a350]\n-  3:cdbce2fbb163 (draft *obsolete*) [ ] add new_c [rewritten as 4:ca819180edb9]\n-  2:245bde4270cd (draft *obsolete*) [ ] add original_c [rewritten as 3:cdbce2fbb163]\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n \n \n check that summary does not report them\n@@ -178,54 +252,46 @@\n   $ echo \'[paths]\' >> .hg/hgrc\n   $ echo \'default=../sink\' >> .hg/hgrc\n   $ hg summary --remote\n-  parent: 5:5601fb93a350 tip\n-   add new_3_c\n-  branch: default\n-  commit: (clean)\n-  update: (current)\n-  phases: 3 draft\n-  remote: 3 outgoing\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n \n   $ hg summary --remote --hidden\n-  parent: 5:5601fb93a350 tip\n-   add new_3_c\n-  branch: default\n-  commit: (clean)\n-  update: 3 new changesets, 4 branch heads (merge)\n-  phases: 6 draft\n-  remote: 3 outgoing\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n \n check that various commands work well with filtering\n \n   $ hg tip\n-  5:5601fb93a350 (draft) [tip ] add new_3_c\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n   $ hg log -r 6\n-  abort: unknown revision \'6\'\n+  abort: bad obsolescence marker detected: invalid successors nullid\n   [255]\n   $ hg log -r 4\n-  abort: hidden revision \'4\' was rewritten as: 5601fb93a350\n-  (use --hidden to access hidden revisions)\n+  abort: bad obsolescence marker detected: invalid successors nullid\n   [255]\n   $ hg debugrevspec \'rev(6)\'\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n   $ hg debugrevspec \'rev(4)\'\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n   $ hg debugrevspec \'null\'\n-  -1\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n \n Check that public changeset are not accounted as obsolete:\n \n   $ hg --hidden phase --public 2\n-  1 new phase-divergent changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -G\n-  @  5:5601fb93a350 (draft phase-divergent) [tip ] add new_3_c\n-  |\n-  | o  2:245bde4270cd (public) [ ] add original_c\n-  |/\n-  o  1:7c3bad9141dc (public) [ ] add b\n-  |\n-  o  0:1f0dee641bb7 (public) [ ] add a\n-  \n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n   $ hg log -r \'unstable()\'\n-  5:5601fb93a350 (draft phase-divergent) [tip ] add new_3_c\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n \n \n And that bumped changeset are detected\n@@ -236,90 +302,66 @@\n the public changeset\n \n   $ hg log --hidden -r \'phasedivergent()\'\n-  5:5601fb93a350 (draft phase-divergent) [tip ] add new_3_c\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n \n And that we can\'t push bumped changeset\n \n   $ hg push ../tmpa -r 0 --force #(make repo related)\n   pushing to ../tmpa\n-  searching for changes\n-  warning: repository is unrelated\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n   $ hg push ../tmpa\n   pushing to ../tmpa\n-  searching for changes\n-  abort: push includes phase-divergent changeset: 5601fb93a350!\n+  abort: bad obsolescence marker detected: invalid successors nullid\n   [255]\n \n Fixing "bumped" situation\n We need to create a clone of 5 and add a special marker with a flag\n \n   $ hg summary\n-  parent: 5:5601fb93a350 tip (phase-divergent)\n-   add new_3_c\n-  branch: default\n-  commit: (clean)\n-  update: 1 new changesets, 2 branch heads (merge)\n-  phases: 1 draft\n-  phase-divergent: 1 changesets\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n   $ hg up \'5^\'\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n   $ hg revert -ar 5\n-  adding new_3_c\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n   $ hg ci -m \'add n3w_3_c\'\n-  created new head\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n   $ hg debugobsolete -d \'1338 0\' --flags 1 `getid new_3_c` `getid n3w_3_c`\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -r \'phasedivergent()\'\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n   $ hg log -G\n-  @  6:6f9641995072 (draft) [tip ] add n3w_3_c\n-  |\n-  | o  2:245bde4270cd (public) [ ] add original_c\n-  |/\n-  o  1:7c3bad9141dc (public) [ ] add b\n-  |\n-  o  0:1f0dee641bb7 (public) [ ] add a\n-  \n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n \n Basic exclusive testing\n \n   $ hg log -G --hidden\n-  @  6:6f9641995072 (draft) [tip ] add n3w_3_c\n-  |\n-  | x  5:5601fb93a350 (draft *obsolete*) [ ] add new_3_c [rewritten as 6:6f9641995072]\n-  |/\n-  | x  4:ca819180edb9 (draft *obsolete*) [ ] add new_2_c [rewritten as 5:5601fb93a350]\n-  |/\n-  | x  3:cdbce2fbb163 (draft *obsolete*) [ ] add new_c [rewritten as 4:ca819180edb9]\n-  |/\n-  | o  2:245bde4270cd (public) [ ] add original_c\n-  |/\n-  o  1:7c3bad9141dc (public) [ ] add b\n-  |\n-  o  0:1f0dee641bb7 (public) [ ] add a\n-  \n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n   $ hg debugobsolete --rev 6f9641995072\n-  1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {\'user\': \'test\'}\n-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {\'user\': \'test\'}\n-  5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {\'user\': \'test\'}\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n   $ hg debugobsolete --rev 6f9641995072 --exclusive\n-  5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n   $ hg debugobsolete --rev 5601fb93a350 --hidden\n-  1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {\'user\': \'test\'}\n-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {\'user\': \'test\'}\n-  ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {\'user\': \'test\'}\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n   $ hg debugobsolete --rev 5601fb93a350 --hidden --exclusive\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n   $ hg debugobsolete --rev 5601fb93a350+6f9641995072 --hidden --exclusive\n-  1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {\'user\': \'test\'}\n-  5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n+  abort: unknown revision \'6f9641995072\'\n+  [255]\n \n   $ cd ..\n \n@@ -375,10 +417,8 @@\n   $ cd tmpc\n   $ hg incoming ../tmpb\n   comparing with ../tmpb\n-  0:1f0dee641bb7 (public) [ ] add a\n-  1:7c3bad9141dc (public) [ ] add b\n-  2:245bde4270cd (public) [ ] add original_c\n-  6:6f9641995072 (draft) [tip ] add n3w_3_c\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n \n Try to pull markers while testing pull --confirm\n (extinct changeset are excluded but marker are pushed)\n@@ -387,78 +427,84 @@\n   > n\n   > EOF\n   pulling from ../tmpb\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  adding 4 changesets with 4 changes to 4 files (+1 heads)\n-  5 new obsolescence markers\n-  new changesets 1f0dee641bb7:6f9641995072 (1 drafts)\n-  accept incoming changes (yn)? n\n-  transaction abort!\n-  rollback completed\n-  abort: user aborted\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 5398, in pull\n+      confirm=opts.get(b\'confirm\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1634, in pull\n+      _pullobsolete(pullop)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1462, in release\n+      self._tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ HGPLAIN=1 hg pull ../tmpb --confirm --config ui.interactive=true <<EOF\n   > n\n   > EOF\n   pulling from ../tmpb\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  adding 4 changesets with 4 changes to 4 files (+1 heads)\n-  5 new obsolescence markers\n-  new changesets 1f0dee641bb7:6f9641995072 (1 drafts)\n-  accept incoming changes (yn)? n\n-  transaction abort!\n-  rollback completed\n-  abort: user aborted\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg pull ../tmpb --confirm --config ui.interactive=true <<EOF\n   > y\n   > EOF\n   pulling from ../tmpb\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  adding 4 changesets with 4 changes to 4 files (+1 heads)\n-  5 new obsolescence markers\n-  new changesets 1f0dee641bb7:6f9641995072 (1 drafts)\n-  accept incoming changes (yn)? y\n-  added 4 changesets with 4 changes to 4 files (+1 heads)\n-  5 new obsolescence markers\n-  new changesets 1f0dee641bb7:6f9641995072 (1 drafts)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg debugobsolete\n-  1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {\'user\': \'test\'}\n-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {\'user\': \'test\'}\n-  5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {\'user\': \'test\'}\n \n Rollback//Transaction support\n \n   $ hg debugobsolete -d \'1340 0\' aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb\n-  1 new obsolescence markers\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg debugobsolete\n-  1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {\'user\': \'test\'}\n-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {\'user\': \'test\'}\n-  5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {\'user\': \'test\'}\n-  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb 0 (Thu Jan 01 00:22:20 1970 +0000) {\'user\': \'test\'}\n   $ hg rollback -n\n-  repository tip rolled back to revision 3 (undo debugobsolete)\n+  no rollback information available\n+  [1]\n   $ hg rollback\n-  repository tip rolled back to revision 3 (undo debugobsolete)\n+  no rollback information available\n+  [1]\n   $ hg debugobsolete\n-  1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {\'user\': \'test\'}\n-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {\'user\': \'test\'}\n-  5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {\'user\': \'test\'}\n \n   $ cd ..\n \n@@ -467,18 +513,9 @@\n   $ hg init tmpd\n   $ hg -R tmpb push tmpd\n   pushing to tmpd\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 4 changesets with 4 changes to 4 files (+1 heads)\n-  5 new obsolescence markers\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n   $ hg -R tmpd debugobsolete | sort\n-  1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {\'user\': \'test\'}\n-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {\'user\': \'test\'}\n-  5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {\'user\': \'test\'}\n \n Check obsolete keys are exchanged only if source has an obsolete store\n \n@@ -495,29 +532,14 @@\n (markers are copied and extinct changesets are included to allow hardlinks)\n \n   $ hg clone tmpb clone-dest\n-  updating to branch default\n-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n   $ hg -R clone-dest log -G --hidden\n-  @  6:6f9641995072 (draft) [tip ] add n3w_3_c\n-  |\n-  | x  5:5601fb93a350 (draft *obsolete*) [ ] add new_3_c [rewritten as 6:6f9641995072]\n-  |/\n-  | x  4:ca819180edb9 (draft *obsolete*) [ ] add new_2_c [rewritten as 5:5601fb93a350]\n-  |/\n-  | x  3:cdbce2fbb163 (draft *obsolete*) [ ] add new_c [rewritten as 4:ca819180edb9]\n-  |/\n-  | o  2:245bde4270cd (public) [ ] add original_c\n-  |/\n-  o  1:7c3bad9141dc (public) [ ] add b\n-  |\n-  o  0:1f0dee641bb7 (public) [ ] add a\n-  \n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n   $ hg -R clone-dest debugobsolete\n-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {\'user\': \'test\'}\n-  cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {\'user\': \'test\'}\n-  ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {\'user\': \'test\'}\n-  5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n \n \n Destination repo have existing data\n@@ -531,54 +553,28 @@\n   1 new obsolescence markers\n   $ hg pull ../tmpb\n   pulling from ../tmpb\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 4 changesets with 4 changes to 4 files (+1 heads)\n-  5 new obsolescence markers\n-  new changesets 1f0dee641bb7:6f9641995072 (1 drafts)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n   $ hg debugobsolete\n   1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {\'user\': \'test\'}\n-  1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {\'user\': \'test\'}\n-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {\'user\': \'test\'}\n-  5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {\'user\': \'test\'}\n \n \n On push\n \n   $ hg push ../tmpc\n   pushing to ../tmpc\n-  searching for changes\n   no changes found\n-  1 new obsolescence markers\n   [1]\n   $ hg -R ../tmpc debugobsolete\n-  1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {\'user\': \'test\'}\n-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {\'user\': \'test\'}\n-  5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {\'user\': \'test\'}\n-  1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {\'user\': \'test\'}\n \n detect outgoing obsolete and unstable\n ---------------------------------------\n \n \n   $ hg log -G\n-  o  3:6f9641995072 (draft) [tip ] add n3w_3_c\n-  |\n-  | o  2:245bde4270cd (public) [ ] add original_c\n-  |/\n-  o  1:7c3bad9141dc (public) [ ] add b\n-  |\n-  o  0:1f0dee641bb7 (public) [ ] add a\n-  \n   $ hg up \'desc("n3w_3_c")\'\n-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ mkcommit original_d\n   $ mkcommit original_e\n   $ hg debugobsolete --record-parents `getid original_d` -d \'0 0\'\n@@ -586,29 +582,23 @@\n   obsoleted 1 changesets\n   1 new orphan changesets\n   $ hg log -r \'unstable()\'\n-  5:cda648ca50f5 (draft orphan) [tip ] add original_e\n+  1:73b89ba4144d (draft orphan) [tip ] add original_e\n   $ hg debugobsolete | grep `getid original_d`\n-  94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  116b6d75162d4a41b51da892fd67627c1bd8ccce 0 {0000000000000000000000000000000000000000} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n   $ hg log -r \'obsolete()\'\n-  4:94b33453f93b (draft *obsolete*) [ ] add original_d [pruned]\n+  0:116b6d75162d (draft *obsolete*) [ ] add original_d [pruned]\n   $ hg summary\n-  parent: 5:cda648ca50f5 tip (orphan)\n+  parent: 1:73b89ba4144d tip (orphan)\n    add original_e\n   branch: default\n   commit: (clean)\n-  update: 1 new changesets, 2 branch heads (merge)\n-  phases: 3 draft\n+  update: (current)\n+  phases: 2 draft\n   orphan: 1 changesets\n   $ hg log -G -r \'::orphan()\'\n-  @  5:cda648ca50f5 (draft orphan) [tip ] add original_e\n-  |\n-  x  4:94b33453f93b (draft *obsolete*) [ ] add original_d [pruned]\n-  |\n-  o  3:6f9641995072 (draft) [ ] add n3w_3_c\n-  |\n-  o  1:7c3bad9141dc (public) [ ] add b\n-  |\n-  o  0:1f0dee641bb7 (public) [ ] add a\n+  @  1:73b89ba4144d (draft orphan) [tip ] add original_e\n+  |\n+  x  0:116b6d75162d (draft *obsolete*) [ ] add original_d [pruned]\n   \n \n refuse to push obsolete changeset\n@@ -616,7 +606,7 @@\n   $ hg push ../tmpc/ -r \'desc("original_d")\'\n   pushing to ../tmpc/\n   searching for changes\n-  abort: push includes obsolete changeset: 94b33453f93b!\n+  abort: push includes obsolete changeset: 116b6d75162d!\n   [255]\n \n refuse to push unstable changeset\n@@ -624,7 +614,7 @@\n   $ hg push ../tmpc/\n   pushing to ../tmpc/\n   searching for changes\n-  abort: push includes orphan changeset: cda648ca50f5!\n+  abort: push includes orphan changeset: 73b89ba4144d!\n   [255]\n \n with --force it will work anyway\n@@ -632,20 +622,17 @@\n   $ hg push ../tmpc/ --force\n   pushing to ../tmpc/\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 2 changes to 2 files\n-  1 new obsolescence markers\n-  1 new orphan changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n if the orphan changeset is already on the server, pushing should work\n \n   $ hg push ../tmpc/\n   pushing to ../tmpc/\n   searching for changes\n-  no changes found\n-  [1]\n+  abort: push includes orphan changeset: 73b89ba4144d!\n+  [255]\n \n Test that extinct changeset are properly detected\n \n@@ -657,20 +644,16 @@\n   $ hg out  ../tmpf\n   comparing with ../tmpf\n   searching for changes\n-  0:1f0dee641bb7 (public) [ ] add a\n-  1:7c3bad9141dc (public) [ ] add b\n-  2:245bde4270cd (public) [ ] add original_c\n-  3:6f9641995072 (draft) [ ] add n3w_3_c\n-  4:94b33453f93b (draft *obsolete*) [ ] add original_d [pruned]\n-  5:cda648ca50f5 (draft orphan) [tip ] add original_e\n+  0:116b6d75162d (draft *obsolete*) [ ] add original_d [pruned]\n+  1:73b89ba4144d (draft orphan) [tip ] add original_e\n   $ hg push ../tmpf -f # -f because be push unstable too\n   pushing to ../tmpf\n   searching for changes\n   adding changesets\n   adding manifests\n   adding file changes\n-  added 6 changesets with 6 changes to 6 files (+1 heads)\n-  7 new obsolescence markers\n+  added 2 changesets with 2 changes to 2 files\n+  1 new obsolescence markers\n   1 new orphan changesets\n \n no warning displayed\n@@ -684,21 +667,15 @@\n Do not warn about new head when the new head is a successors of a remote one\n \n   $ hg log -G\n-  @  5:cda648ca50f5 (draft orphan) [tip ] add original_e\n-  |\n-  x  4:94b33453f93b (draft *obsolete*) [ ] add original_d [pruned]\n-  |\n-  o  3:6f9641995072 (draft) [ ] add n3w_3_c\n-  |\n-  | o  2:245bde4270cd (public) [ ] add original_c\n-  |/\n-  o  1:7c3bad9141dc (public) [ ] add b\n-  |\n-  o  0:1f0dee641bb7 (public) [ ] add a\n+  @  1:73b89ba4144d (draft orphan) [tip ] add original_e\n+  |\n+  x  0:116b6d75162d (draft *obsolete*) [ ] add original_d [pruned]\n   \n   $ hg up -q \'desc(n3w_3_c)\'\n+  abort: empty revision set\n+  [255]\n   $ mkcommit obsolete_e\n-  created new head\n+  1 new orphan changesets\n   $ hg debugobsolete `getid \'original_e\'` `getid \'obsolete_e\'` \\\n   > -u \'test <test@example.net>\'\n   1 new obsolescence markers\n@@ -706,16 +683,12 @@\n   $ hg outgoing ../tmpf # parasite hg outgoing testin\n   comparing with ../tmpf\n   searching for changes\n-  6:3de5eca88c00 (draft) [tip ] add obsolete_e\n+  2:9a645c867ca7 (draft orphan) [tip ] add obsolete_e\n   $ hg push ../tmpf\n   pushing to ../tmpf\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n+  abort: push includes orphan changeset: 9a645c867ca7!\n+  [255]\n \n test relevance computation\n ---------------------------------------\n@@ -726,64 +699,43 @@\n Reminder of the repo situation\n \n   $ hg log --hidden --graph\n-  @  6:3de5eca88c00 (draft) [tip ] add obsolete_e\n-  |\n-  | x  5:cda648ca50f5 (draft *obsolete*) [ ] add original_e [rewritten as 6:3de5eca88c00 by test <test@example.net>]\n-  | |\n-  | x  4:94b33453f93b (draft *obsolete*) [ ] add original_d [pruned]\n-  |/\n-  o  3:6f9641995072 (draft) [ ] add n3w_3_c\n-  |\n-  | o  2:245bde4270cd (public) [ ] add original_c\n-  |/\n-  o  1:7c3bad9141dc (public) [ ] add b\n-  |\n-  o  0:1f0dee641bb7 (public) [ ] add a\n+  @  2:9a645c867ca7 (draft orphan) [tip ] add obsolete_e\n+  |\n+  x  1:73b89ba4144d (draft *obsolete*) [ ] add original_e [rewritten as 2:9a645c867ca7 by test <test@example.net>]\n+  |\n+  x  0:116b6d75162d (draft *obsolete*) [ ] add original_d [pruned]\n   \n \n List of all markers\n \n   $ hg debugobsolete\n   1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {\'user\': \'test\'}\n-  1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {\'user\': \'test\'}\n-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {\'user\': \'test\'}\n-  5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {\'user\': \'test\'}\n-  94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {\'user\': \'test <test@example.net>\'} (glob)\n+  116b6d75162d4a41b51da892fd67627c1bd8ccce 0 {0000000000000000000000000000000000000000} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  73b89ba4144d0f4d407f82c6c155d99ccc136d9a 9a645c867ca7a693bb45c5e064fc8427c55d43f7 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test <test@example.net>\'}\n \n List of changesets with no chain\n \n   $ hg debugobsolete --hidden --rev ::2\n+  116b6d75162d4a41b51da892fd67627c1bd8ccce 0 {0000000000000000000000000000000000000000} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n+  73b89ba4144d0f4d407f82c6c155d99ccc136d9a 9a645c867ca7a693bb45c5e064fc8427c55d43f7 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test <test@example.net>\'}\n \n List of changesets that are included on marker chain\n \n   $ hg debugobsolete --hidden --rev 6\n-  cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {\'user\': \'test <test@example.net>\'} (glob)\n+  abort: unknown revision \'6\'\n+  [255]\n \n List of changesets with a longer chain, (including a pruned children)\n \n   $ hg debugobsolete --hidden --rev 3\n-  1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {\'user\': \'test\'}\n-  1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {\'user\': \'test\'}\n-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {\'user\': \'test\'}\n-  5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {\'user\': \'test\'}\n+  abort: unknown revision \'3\'\n+  [255]\n \n List of both\n \n   $ hg debugobsolete --hidden --rev 3::6\n-  1337133713371337133713371337133713371337 5601fb93a350734d935195fee37f4054c529ff39 0 (Thu Jan 01 00:22:19 1970 +0000) {\'user\': \'test\'}\n-  1339133913391339133913391339133913391339 ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:19 1970 +0000) {\'user\': \'test\'}\n-  245bde4270cd1072a27757984f9cda8ba26f08ca cdbce2fbb16313928851e97e0d85413f3f7eb77f C (Thu Jan 01 00:00:01 1970 -0002) {\'user\': \'test\'}\n-  5601fb93a350734d935195fee37f4054c529ff39 6f96419950729f3671185b847352890f074f7557 1 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  94b33453f93bdb8d457ef9b770851a618bf413e1 0 {6f96419950729f3671185b847352890f074f7557} (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  ca819180edb99ed25ceafb3e9584ac287e240b00 1337133713371337133713371337133713371337 0 (Thu Jan 01 00:22:18 1970 +0000) {\'user\': \'test\'}\n-  cda648ca50f50482b7055c0b0c4c117bba6733d9 3de5eca88c00aa039da7399a220f4a5221faa585 0 (*) {\'user\': \'test <test@example.net>\'} (glob)\n-  cdbce2fbb16313928851e97e0d85413f3f7eb77f ca819180edb99ed25ceafb3e9584ac287e240b00 0 (Thu Jan 01 00:22:17 1970 +0000) {\'user\': \'test\'}\n+  abort: unknown revision \'3\'\n+  [255]\n \n List of all markers in JSON\n \n@@ -797,80 +749,47 @@\n     "succnodes": ["ca819180edb99ed25ceafb3e9584ac287e240b00"]\n    },\n    {\n-    "date": [1339, 0],\n+    "date": [0, 0],\n     "flag": 0,\n     "metadata": {"user": "test"},\n-    "prednode": "1337133713371337133713371337133713371337",\n-    "succnodes": ["5601fb93a350734d935195fee37f4054c529ff39"]\n-   },\n-   {\n-    "date": [121, 120],\n-    "flag": 12,\n-    "metadata": {"user": "test"},\n-    "prednode": "245bde4270cd1072a27757984f9cda8ba26f08ca",\n-    "succnodes": ["cdbce2fbb16313928851e97e0d85413f3f7eb77f"]\n-   },\n-   {\n-    "date": [1338, 0],\n-    "flag": 1,\n-    "metadata": {"user": "test"},\n-    "prednode": "5601fb93a350734d935195fee37f4054c529ff39",\n-    "succnodes": ["6f96419950729f3671185b847352890f074f7557"]\n-   },\n-   {\n-    "date": [1338, 0],\n-    "flag": 0,\n-    "metadata": {"user": "test"},\n-    "prednode": "ca819180edb99ed25ceafb3e9584ac287e240b00",\n-    "succnodes": ["1337133713371337133713371337133713371337"]\n-   },\n-   {\n-    "date": [1337, 0],\n-    "flag": 0,\n-    "metadata": {"user": "test"},\n-    "prednode": "cdbce2fbb16313928851e97e0d85413f3f7eb77f",\n-    "succnodes": ["ca819180edb99ed25ceafb3e9584ac287e240b00"]\n+    "parentnodes": ["0000000000000000000000000000000000000000"],\n+    "prednode": "116b6d75162d4a41b51da892fd67627c1bd8ccce",\n+    "succnodes": []\n    },\n    {\n     "date": [0, 0],\n     "flag": 0,\n-    "metadata": {"user": "test"},\n-    "parentnodes": ["6f96419950729f3671185b847352890f074f7557"],\n-    "prednode": "94b33453f93bdb8d457ef9b770851a618bf413e1",\n-    "succnodes": []\n-   },\n-   {\n-    "date": *, (glob)\n-    "flag": 0,\n     "metadata": {"user": "test <test@example.net>"},\n-    "prednode": "cda648ca50f50482b7055c0b0c4c117bba6733d9",\n-    "succnodes": ["3de5eca88c00aa039da7399a220f4a5221faa585"]\n+    "prednode": "73b89ba4144d0f4d407f82c6c155d99ccc136d9a",\n+    "succnodes": ["9a645c867ca7a693bb45c5e064fc8427c55d43f7"]\n    }\n   ]\n \n Template keywords\n \n   $ hg debugobsolete -r6 -T \'{succnodes % "{node|short}"} {date|shortdate}\\n\'\n-  3de5eca88c00 ????-??-?? (glob)\n+  abort: unknown revision \'6\'\n+  [255]\n   $ hg debugobsolete -r6 -T \'{join(metadata % "{key}={value}", " ")}\\n\'\n-  user=test <test@example.net>\n+  abort: unknown revision \'6\'\n+  [255]\n   $ hg debugobsolete -r6 -T \'{metadata}\\n{metadata}\\n\'\n-  \'user\': \'test <test@example.net>\'\n-  \'user\': \'test <test@example.net>\'\n+  abort: unknown revision \'6\'\n+  [255]\n   $ hg debugobsolete -r6 -T \'{succnodes}\\n{succnodes}\\n\'\n-  3de5eca88c00aa039da7399a220f4a5221faa585\n-  3de5eca88c00aa039da7399a220f4a5221faa585\n+  abort: unknown revision \'6\'\n+  [255]\n   $ hg debugobsolete -r6 -T \'{flag} {get(metadata, "user")}\\n\'\n-  0 test <test@example.net>\n+  abort: unknown revision \'6\'\n+  [255]\n \n Test the debug output for exchange\n ----------------------------------\n \n   $ hg pull ../tmpb --config \'experimental.obsmarkers-exchange-debug=True\' # bundle2\n   pulling from ../tmpb\n-  searching for changes\n-  no changes found\n-  obsmarker-exchange: 346 bytes received\n+  abort: bad obsolescence marker detected: invalid successors nullid\n+  [255]\n \n check hgweb does not explode\n ====================================\n@@ -879,10 +798,9 @@\n   adding changesets\n   adding manifests\n   adding file changes\n-  added 62 changesets with 63 changes to 9 files (+60 heads)\n-  new changesets 50c51b361e60:c15e9edfca13 (62 drafts)\n-  (2 other changesets obsolete on arrival)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n+  added 69 changesets with 67 changes to 9 files (+63 heads)\n+  new changesets 1f0dee641bb7:c15e9edfca13 (69 drafts)\n+  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n   $ for node in `hg log -r \'desc(babar_)\' --template \'{node}\\n\'`;\n   > do\n   >    hg debugobsolete $node\n@@ -1008,7 +926,7 @@\n   1 new obsolescence markers\n   obsoleted 1 changesets\n   $ hg up tip\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  5 files updated, 0 files merged, 2 files removed, 0 files unresolved\n \n #if serve\n \n@@ -1075,126 +993,65 @@\n   $ hg debugobsolete `getid obsolete_e`\n   1 new obsolescence markers\n   obsoleted 1 changesets\n-  2 new orphan changesets\n   $ hg debugobsolete `getid original_c` `getid babar`\n   1 new obsolescence markers\n-  1 new phase-divergent changesets\n-  2 new content-divergent changesets\n+  obsoleted 1 changesets\n   $ hg log --config ui.logtemplate= -r \'phasedivergent() and orphan() and contentdivergent()\'\n-  changeset:   7:50c51b361e60\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  instability: orphan, phase-divergent, content-divergent\n-  summary:     add babar\n-  \n test the "obsolete" templatekw\n \n   $ hg log -r \'obsolete()\'\n-  6:3de5eca88c00 (draft *obsolete*) [ ] add obsolete_e [pruned]\n \n test the "troubles" templatekw\n \n   $ hg log -r \'phasedivergent() and orphan()\'\n-  7:50c51b361e60 (draft orphan phase-divergent content-divergent) [ ] add babar\n \n test the default cmdline template\n \n   $ hg log -T default -r \'phasedivergent()\'\n-  changeset:   7:50c51b361e60\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  instability: orphan, phase-divergent, content-divergent\n-  summary:     add babar\n-  \n   $ hg log -T default -r \'obsolete()\'\n-  changeset:   6:3de5eca88c00\n-  parent:      3:6f9641995072\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  obsolete:    pruned\n-  summary:     add obsolete_e\n-  \n \n test the obsolete labels\n \n   $ hg log --config ui.logtemplate= --color=debug -r \'phasedivergent()\'\n-  [log.changeset changeset.draft changeset.unstable instability.orphan instability.phase-divergent instability.content-divergent|changeset:   7:50c51b361e60]\n-  [log.user|user:        test]\n-  [log.date|date:        Thu Jan 01 00:00:00 1970 +0000]\n-  [log.instability|instability: orphan, phase-divergent, content-divergent]\n-  [log.summary|summary:     add babar]\n-  \n \n   $ hg log -T default -r \'phasedivergent()\' --color=debug\n-  [log.changeset changeset.draft changeset.unstable instability.orphan instability.phase-divergent instability.content-divergent|changeset:   7:50c51b361e60]\n-  [log.user|user:        test]\n-  [log.date|date:        Thu Jan 01 00:00:00 1970 +0000]\n-  [log.instability|instability: orphan, phase-divergent, content-divergent]\n-  [log.summary|summary:     add babar]\n-  \n \n   $ hg log --config ui.logtemplate= --color=debug -r "obsolete()"\n-  [log.changeset changeset.draft changeset.obsolete|changeset:   6:3de5eca88c00]\n-  [log.parent changeset.draft|parent:      3:6f9641995072]\n-  [log.user|user:        test]\n-  [log.date|date:        Thu Jan 01 00:00:00 1970 +0000]\n-  [log.obsfate|obsolete:    pruned]\n-  [log.summary|summary:     add obsolete_e]\n-  \n \n   $ hg log -T default -r \'obsolete()\' --color=debug\n-  [log.changeset changeset.draft changeset.obsolete|changeset:   6:3de5eca88c00]\n-  [log.parent changeset.draft|parent:      3:6f9641995072]\n-  [log.user|user:        test]\n-  [log.date|date:        Thu Jan 01 00:00:00 1970 +0000]\n-  [log.obsfate|obsolete:    pruned]\n-  [log.summary|summary:     add obsolete_e]\n-  \n \n test summary output\n \n   $ hg up -r \'phasedivergent() and orphan()\'\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ hg summary\n-  parent: 7:50c51b361e60  (orphan, phase-divergent, content-divergent)\n-   add babar\n+  parent: 71:c15e9edfca13 tip\n+   add celestine\n   branch: default\n   commit: (clean)\n-  update: 2 new changesets (update)\n-  phases: 4 draft\n-  orphan: 2 changesets\n-  content-divergent: 2 changesets\n-  phase-divergent: 1 changesets\n+  update: 2 new changesets, 2 branch heads (merge)\n+  phases: 8 draft\n   $ hg up -r \'obsolete()\'\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ hg summary\n-  parent: 6:3de5eca88c00  (obsolete)\n-   add obsolete_e\n+  parent: 71:c15e9edfca13 tip\n+   add celestine\n   branch: default\n   commit: (clean)\n-  update: 3 new changesets (update)\n-  phases: 4 draft\n-  orphan: 2 changesets\n-  content-divergent: 2 changesets\n-  phase-divergent: 1 changesets\n+  update: 2 new changesets, 2 branch heads (merge)\n+  phases: 8 draft\n \n test debugwhyunstable output\n \n   $ hg debugwhyunstable 50c51b361e60\n-  orphan: obsolete parent 3de5eca88c00aa039da7399a220f4a5221faa585\n-  phase-divergent: immutable predecessor 245bde4270cd1072a27757984f9cda8ba26f08ca\n-  content-divergent: 6f96419950729f3671185b847352890f074f7557 (draft) predecessor 245bde4270cd1072a27757984f9cda8ba26f08ca\n \n test whyunstable template keyword\n \n   $ hg log -r 50c51b361e60 -T \'{whyunstable}\\n\'\n-  orphan: obsolete parent 3de5eca88c00\n-  phase-divergent: immutable predecessor 245bde4270cd\n-  content-divergent: 3:6f9641995072 (draft) predecessor 245bde4270cd\n+  \n   $ hg log -r 50c51b361e60 -T \'{whyunstable % "{instability}: {reason} {node|shortest}\\n"}\'\n-  orphan: obsolete parent 3de5\n-  phase-divergent: immutable predecessor 245b\n-  content-divergent: predecessor 245b\n \n #if serve\n \n@@ -1362,9 +1219,58 @@\n   visible                            1:29f0c6921ddd\n   $ hg --config extensions.strip= strip -r tip --no-backup\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg tags\n+  tiptag                             2:323a9c3ddd91\n+  tip                                2:323a9c3ddd91\n   visible                            1:29f0c6921ddd\n-  tip                                1:29f0c6921ddd\n \n Test bundle overlay onto hidden revision\n \n@@ -1587,18 +1493,73 @@\n \n   $ hg strip --hidden -r 2 --config extensions.strip= --config devel.strip-obsmarkers=no\n   saved backup bundle to $TESTTMP/tmpe/issue4845/.hg/strip-backup/e008cf283490-ede36964-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\tmpe\\issue4845\\.hg\\strip-backup/e008cf283490-ede36964-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\tmpe\\issue4845\\.hg\\strip-backup/e008cf283490-4e8c8dd3-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\tmpe\\issue4845\\.hg\\strip-backup/e008cf283490-4e8c8dd3-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "testextension" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "testextension" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip, testextension\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg debugobsolete\n   e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'8\', \'operation\': \'amend\', \'user\': \'test\'}\n   $ hg log -G\n-  @  2:b0551702f918 (draft) [tip ] 2\n+  @  3:b0551702f918 (draft) [tip ] 2\n   |\n   o  1:e016b03fd86f (draft) [ ] 1\n   |\n   o  0:a78f55e5508c (draft) [ ] 0\n   \n   $ hg log -G --hidden\n-  @  2:b0551702f918 (draft) [tip ] 2\n-  |\n+  @  3:b0551702f918 (draft) [tip ] 2\n+  |\n+  | x  2:e008cf283490 (draft *obsolete*) [ ] 2 [rewritten using amend as 3:b0551702f918]\n+  |/\n   o  1:e016b03fd86f (draft) [ ] 1\n   |\n   o  0:a78f55e5508c (draft) [ ] 0\n@@ -1620,15 +1581,17 @@\n   $ hg debugobsolete\n   e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'8\', \'operation\': \'amend\', \'user\': \'test\'}\n   $ hg log -G\n-  @  2:b0551702f918 (draft) [tip ] 2\n+  @  3:b0551702f918 (draft) [tip ] 2\n   |\n   o  1:e016b03fd86f (draft) [ ] 1\n   |\n   o  0:a78f55e5508c (draft) [ ] 0\n   \n   $ hg log -G --hidden\n-  @  2:b0551702f918 (draft) [tip ] 2\n-  |\n+  @  3:b0551702f918 (draft) [tip ] 2\n+  |\n+  | x  2:e008cf283490 (draft *obsolete*) [ ] 2 [rewritten using amend as 3:b0551702f918]\n+  |/\n   o  1:e016b03fd86f (draft) [ ] 1\n   |\n   o  0:a78f55e5508c (draft) [ ] 0\n@@ -1638,46 +1601,61 @@\n \n   $ hg strip -r 1 --config extensions.strip=\n   0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n-  saved backup bundle to $TESTTMP/tmpe/issue4845/.hg/strip-backup/e016b03fd86f-65ede734-backup.hg\n+  saved backup bundle to $TESTTMP/tmpe/issue4845/.hg/strip-backup/e016b03fd86f-eb61ba7d-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\tmpe\\issue4845\\.hg\\strip-backup/e016b03fd86f-eb61ba7d-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg debugobsolete\n+  e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'8\', \'operation\': \'amend\', \'user\': \'test\'}\n   $ hg log -G\n-  @  0:a78f55e5508c (draft) [tip ] 0\n+  o  3:b0551702f918 (draft) [tip ] 2\n+  |\n+  o  1:e016b03fd86f (draft) [ ] 1\n+  |\n+  @  0:a78f55e5508c (draft) [ ] 0\n   \n   $ hg log -G --hidden\n-  @  0:a78f55e5508c (draft) [tip ] 0\n+  o  3:b0551702f918 (draft) [tip ] 2\n+  |\n+  | x  2:e008cf283490 (draft *obsolete*) [ ] 2 [rewritten using amend as 3:b0551702f918]\n+  |/\n+  o  1:e016b03fd86f (draft) [ ] 1\n+  |\n+  @  0:a78f55e5508c (draft) [ ] 0\n   \n   $ hg debugbundle .hg/strip-backup/e016b03fd86f-*-backup.hg\n   Stream params: {Compression: BZ}\n-  changegroup -- {nbchanges: 2, version: 02} (mandatory: True)\n+  changegroup -- {nbchanges: 3, version: 02} (mandatory: True)\n       e016b03fd86fcccc54817d120b90b751aaf367d6\n+      e008cf2834908e5d6b0f792a9d4b0e2272260fb8\n       b0551702f918510f01ae838ab03a463054c67b46\n   cache:rev-branch-cache -- {} (mandatory: False)\n   obsmarkers -- {} (mandatory: True)\n       version: 1 (92 bytes)\n       e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'8\', \'operation\': \'amend\', \'user\': \'test\'}\n   phase-heads -- {} (mandatory: True)\n+      e008cf2834908e5d6b0f792a9d4b0e2272260fb8 draft\n       b0551702f918510f01ae838ab03a463054c67b46 draft\n \n   $ hg unbundle .hg/strip-backup/e016b03fd86f-*-backup.hg\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 2 changes to 2 files\n-  1 new obsolescence markers\n-  new changesets e016b03fd86f:b0551702f918 (2 drafts)\n-  (run \'hg update\' to get a working copy)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg debugobsolete | sort\n   e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'8\', \'operation\': \'amend\', \'user\': \'test\'}\n   $ hg log -G\n-  o  2:b0551702f918 (draft) [tip ] 2\n+  o  3:b0551702f918 (draft) [tip ] 2\n   |\n   o  1:e016b03fd86f (draft) [ ] 1\n   |\n   @  0:a78f55e5508c (draft) [ ] 0\n   \n   $ hg log -G --hidden\n-  o  2:b0551702f918 (draft) [tip ] 2\n-  |\n+  o  3:b0551702f918 (draft) [tip ] 2\n+  |\n+  | x  2:e008cf283490 (draft *obsolete*) [ ] 2 [rewritten using amend as 3:b0551702f918]\n+  |/\n   o  1:e016b03fd86f (draft) [ ] 1\n   |\n   @  0:a78f55e5508c (draft) [ ] 0\n@@ -1747,17 +1725,69 @@\n   $ hg --config extensions.strip= strip -r .\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/tmpe/issue4845/doindexrev/.hg/strip-backup/9bc153528424-ee80edd4-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\tmpe\\issue4845\\doindexrev\\.hg\\strip-backup/9bc153528424-ee80edd4-backup.hg\'\n+  ** Unknown exception encountered with possibly-broken third-party extension "testextension" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "testextension" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip, testextension\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg debugobsolete 9bc153528424ea266d13e57f9ff0d799dfe61e4b\n-  1 new obsolescence markers\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg unbundle ../bundle-2.hg\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  (1 other changesets obsolete on arrival)\n-  (run \'hg update\' to get a working copy)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -G\n-  @  7:7ae79c5d60f0 (draft) [tip ] dd\n+  o  8:9bc153528424 (draft) [tip ] add e\n+  |\n+  @  7:7ae79c5d60f0 (draft) [ ] dd\n   |\n   | o  6:4715cf767440 (draft) [ ] d\n   |/\n', 2177, 2179, 'truncated \\uXXXX escape') decoding diff, sorry

test-pager-legacy.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-pager-legacy.t\n+++ c:/hgdev/src/tests/test-pager-legacy.t.err\n@@ -205,7 +205,58 @@\n   $ hg qnew foo.patch\n   $ hg qpop\n   popping foo.patch\n-  patch queue now empty\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, pager, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\pager.py", line 78, in pagecmd\n+      return orig(ui, options, cmd, cmdfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3582, in pop\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1863, in pop\n+      strip(self.ui, repo, [rev], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg ci --mq -m \'commit patches\'\n   $ hg log --mq --debug\n   starting pager for command \'extension-via-attend-log\'\n', 2242, 2244, 'truncated \\uXXXX escape') decoding diff, sorry

test-patch.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-patch.t\n+++ c:/hgdev/src/tests/test-patch.t.err\n@@ -99,7 +99,49 @@\n \n   $ hg import ../c/p --config ui.patch="\\"$PYTHON\\" \\"`pwd`/exit1.py\\""\n   applying ../c/p\n-  abort: patch command failed: exited with status 1\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 4163, in import_\n+      repo.savecommitmessage(b\'\\n* * *\\n\'.join(msgs))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ cd ..\n', 2148, 2150, 'truncated \\uXXXX escape') decoding diff, sorry

test-patchbomb.t

--- c:/hgdev/src/tests/test-patchbomb.t
+++ c:/hgdev/src/tests/test-patchbomb.t.err
@@ -516,6 +516,7 @@
   Date: Thu, 01 Jan 1970 00:04:00 +0000
   From: Q <quux> (no-py3 !)
   From: =?iso-8859-1?q?Q?= <quux> (py3 !)
+  From: Q <quux>
   To: foo
   Cc: bar
   
@@ -2406,6 +2407,9 @@
   To: =?iso-8859-1?q?spam?= <spam>, eggs, toast (py3 !)
   Cc: foo, bar@example.com, =?iso-8859-1?q?A=2C_B_=3C=3E?= <a@example.com> (py3 !)
   Bcc: =?iso-8859-1?q?Quux=2C_A=2E?= <quux> (py3 !)
+  To: spam <spam>, eggs, toast
+  Cc: foo, bar@example.com, "A, B <>" <a@example.com>
+  Bcc: "Quux, A." <quux>
   
   # HG changeset patch
   # User test
@@ -2685,6 +2689,7 @@
   Content-Transfer-Encoding: quoted-printable
   Subject: [PATCH 2 of 6] ça (esc) (no-py3 !)
   Subject: =?utf-8?b?W1BBVENIIDIgb2YgNl0gw6dh?= (py3 !)
+  Subject: [PATCH 2 of 6] ça (esc)
   X-Mercurial-Node: f81ef97829467e868fc405fccbcfa66217e4d3e6
   X-Mercurial-Series-Index: 2
   X-Mercurial-Series-Total: 6

test-paths.t

--- c:/hgdev/src/tests/test-paths.t
+++ c:/hgdev/src/tests/test-paths.t.err
@@ -42,7 +42,7 @@
 #else
   $ SOMETHING=/foo hg paths
   dupe = $TESTTMP/b#tip
-  expand = /foo/bar
+  expand = C:/hgdev/MinGW/msys/1.0/foo/bar
 #endif
   $ hg paths -q
   dupe

test-pending.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-pending.t\n+++ c:/hgdev/src/tests/test-pending.t.err\n@@ -94,9 +94,63 @@\n   $ dotest\n   push 29b62aeb769fdf78d8d9c5f28b017f76d7ef824b\n   hook 29b62aeb769fdf78d8d9c5f28b017f76d7ef824b\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnchangegroup hook failed\n+  ** Unknown exception encountered with possibly-broken third-party extension "reject" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "reject" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: reject\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 5612, in push\n+      opargs=opargs,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 458, in push\n+      _pushbundle2(pushop)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1125, in _pushbundle2\n+      b\'url\': pushop.remote.url(),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\thirdparty\\concurrent\\futures\\_base.py", line 457, in result\n+      return self.__get_result()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 246, in callcommand\n+      result = fn(**pycompat.strkwargs(args))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 360, in unbundle\n+      ret = exchange.unbundle(self._repo, bundle, heads, b\'push\', url)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 2645, in unbundle\n+      lockmod.release(lockandtr[2], lockandtr[1], lockandtr[0])\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   pull 0000000000000000000000000000000000000000\n \n test external hook\n@@ -108,10 +162,9 @@\n \n   $ dotest\n   push 29b62aeb769fdf78d8d9c5f28b017f76d7ef824b\n-  hook 29b62aeb769fdf78d8d9c5f28b017f76d7ef824b\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnchangegroup hook exited with status 1\n+  rm: cannot lstat `notify\': $ENOENT$\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   pull 0000000000000000000000000000000000000000\n \n Test that pending on transaction without changegroup see the normal changegroup(\n@@ -131,9 +184,13 @@\n   $ echo a > a\n   $ hg add a\n   $ hg commit -m a\n-  tip: cb9a9f314b8b\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n actual test\n \n   $ hg phase --public .\n-  tip: cb9a9f314b8b\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n', 2366, 2368, 'truncated \\uXXXX escape') decoding diff, sorry

test-persistent-nodemap.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-persistent-nodemap.t\n+++ c:/hgdev/src/tests/test-persistent-nodemap.t.err\n@@ -26,21 +26,60 @@\n   $ hg debugbuilddag .+5000 --new-file --config "storage.revlog.nodemap.mode=warn"\n   persistent nodemap in strict mode without efficient method (no-rust no-pure !)\n   persistent nodemap in strict mode without efficient method (no-rust no-pure !)\n-  $ hg debugnodemap --metadata\n-  uid: ???????????????? (glob)\n-  tip-rev: 5000\n-  tip-node: 6b02b8c7b96654c25e86ba69eda198d7e6ad8b3c\n-  data-length: 121088\n-  data-unused: 0\n-  data-unused: 0.000%\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\debugcommands.py", line 334, in debugbuilddag\n+      repo.vfs.write(b"localtags", b"".join(tags))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg debugnodemap --metadata\n   $ f --size .hg/store/00changelog.n\n-  .hg/store/00changelog.n: size=70\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n Simple lookup works\n \n   $ ANYNODE=`hg log --template \'{node|short}\\n\' --rev tip`\n   $ hg log -r "$ANYNODE" --template \'{rev}\\n\'\n-  5000\n+  -1\n \n \n #if rust\n@@ -75,38 +114,23 @@\n #else\n \n   $ f --sha256 .hg/store/00changelog-*.nd\n-  .hg/store/00changelog-????????????????.nd: sha256=f544f5462ff46097432caf6d764091f6d8c46d6121be315ead8576d548c9dd79 (glob)\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ hg debugnodemap --dump-new | f --sha256 --size\n-  size=121088, sha256=f544f5462ff46097432caf6d764091f6d8c46d6121be315ead8576d548c9dd79\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ hg debugnodemap --dump-disk | f --sha256 --bytes=256 --hexdump --size\n-  size=121088, sha256=f544f5462ff46097432caf6d764091f6d8c46d6121be315ead8576d548c9dd79\n-  0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  0010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  0020: ff ff ff ff ff ff f5 06 ff ff ff ff ff ff f3 e7 |................|\n-  0030: ff ff ef ca ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  0040: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  0050: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ed 08 |................|\n-  0060: ff ff ed 66 ff ff ff ff ff ff ff ff ff ff ff ff |...f............|\n-  0070: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  0080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  0090: ff ff ff ff ff ff ff ff ff ff ff ff ff ff f6 ed |................|\n-  00a0: ff ff ff ff ff ff fe 61 ff ff ff ff ff ff ff ff |.......a........|\n-  00b0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  00c0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  00d0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  00e0: ff ff ff ff ff ff ff ff ff ff ff ff ff ff f1 02 |................|\n-  00f0: ff ff ff ff ff ff ed 1b ff ff ff ff ff ff ff ff |................|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n #endif\n \n   $ hg debugnodemap --check\n-  revision in index:   5001\n-  revision in nodemap: 5001\n \n add a new commit\n \n   $ hg up\n-  5001 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ echo foo > foo\n   $ hg add foo\n \n@@ -121,6 +145,9 @@\n #endif\n \n   $ hg ci -m \'foo\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n #if no-pure no-rust\n   $ hg debugnodemap --metadata\n@@ -132,16 +159,11 @@\n   data-unused: 0.000%\n #else\n   $ hg debugnodemap --metadata\n-  uid: ???????????????? (glob)\n-  tip-rev: 5001\n-  tip-node: 16395c3cf7e231394735e6b1717823ada303fb0c\n-  data-length: 121344\n-  data-unused: 256\n-  data-unused: 0.211%\n #endif\n \n   $ f --size .hg/store/00changelog.n\n-  .hg/store/00changelog.n: size=70\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n (The pure code use the debug code that perform incremental update, the C code reencode from scratch)\n \n@@ -161,8 +183,6 @@\n #endif\n \n   $ hg debugnodemap --check\n-  revision in index:   5002\n-  revision in nodemap: 5002\n \n Test code path without mmap\n ---------------------------\n@@ -170,13 +190,12 @@\n   $ echo bar > bar\n   $ hg add bar\n   $ hg ci -m \'bar\' --config storage.revlog.nodemap.mmap=no\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg debugnodemap --check --config storage.revlog.nodemap.mmap=yes\n-  revision in index:   5003\n-  revision in nodemap: 5003\n   $ hg debugnodemap --check --config storage.revlog.nodemap.mmap=no\n-  revision in index:   5003\n-  revision in nodemap: 5003\n \n \n #if pure\n@@ -216,6 +235,8 @@\n Test force warming the cache\n \n   $ rm .hg/store/00changelog.n\n+  rm: cannot lstat `.hg/store/00changelog.n\': $ENOENT$\n+  [1]\n   $ hg debugnodemap --metadata\n   $ hg debugupdatecache\n #if pure\n@@ -228,12 +249,6 @@\n   data-unused: 0.000%\n #else\n   $ hg debugnodemap --metadata\n-  uid: ???????????????? (glob)\n-  tip-rev: 5002\n-  tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd\n-  data-length: 121088\n-  data-unused: 0\n-  data-unused: 0.000%\n #endif\n \n Check out of sync nodemap\n@@ -243,6 +258,9 @@\n \n   $ mkdir ../tmp-copies\n   $ cp .hg/store/00changelog-????????????????.nd .hg/store/00changelog.n ../tmp-copies\n+  cp: cannot stat `.hg/store/00changelog-????????????????.nd\': $ENOENT$\n+  cp: cannot stat `.hg/store/00changelog.n\': $ENOENT$\n+  [1]\n \n Nodemap lagging behind\n ----------------------\n@@ -251,16 +269,16 @@\n \n   $ echo bar2 > bar\n   $ hg ci -m \'bar2\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ NODE=`hg log -r tip -T \'{node}\\n\'`\n   $ hg log -r "$NODE" -T \'{rev}\\n\'\n-  5003\n+  -1\n \n If the nodemap is lagging behind, it can catch up fine\n \n   $ hg debugnodemap --metadata\n-  uid: ???????????????? (glob)\n-  tip-rev: 5003\n-  tip-node: c9329770f979ade2d16912267c38ba5f82fd37b3\n   data-length: 121344 (pure !)\n   data-length: 121344 (rust !)\n   data-length: 121152 (no-rust no-pure !)\n@@ -271,15 +289,11 @@\n   data-unused: 0.158% (rust !)\n   data-unused: 0.000% (no-rust no-pure !)\n   $ cp -f ../tmp-copies/* .hg/store/\n-  $ hg debugnodemap --metadata\n-  uid: ???????????????? (glob)\n-  tip-rev: 5002\n-  tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd\n-  data-length: 121088\n-  data-unused: 0\n-  data-unused: 0.000%\n+  cp: cannot stat `../tmp-copies/*\': $ENOENT$\n+  [1]\n+  $ hg debugnodemap --metadata\n   $ hg log -r "$NODE" -T \'{rev}\\n\'\n-  5003\n+  -1\n \n changelog altered\n -----------------\n@@ -289,23 +303,25 @@\n compatible with the persistent nodemap. We need to detect that.\n \n   $ hg up "$NODE~5"\n-  0 files updated, 0 files merged, 4 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ echo bar > babar\n   $ hg add babar\n   $ hg ci -m \'babar\'\n-  created new head\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ OTHERNODE=`hg log -r tip -T \'{node}\\n\'`\n   $ hg log -r "$OTHERNODE" -T \'{rev}\\n\'\n-  5004\n+  -1\n \n   $ hg --config extensions.strip= strip --rev "$NODE~1" --no-backup\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n the nodemap should detect the changelog have been tampered with and recover.\n \n   $ hg debugnodemap --metadata\n-  uid: ???????????????? (glob)\n-  tip-rev: 5002\n-  tip-node: b355ef8adce0949b8bdf6afc72ca853740d65944\n   data-length: 121536 (pure !)\n   data-length: 121088 (rust !)\n   data-length: 121088 (no-pure no-rust !)\n@@ -317,15 +333,11 @@\n   data-unused: 0.000% (no-pure no-rust !)\n \n   $ cp -f ../tmp-copies/* .hg/store/\n-  $ hg debugnodemap --metadata\n-  uid: ???????????????? (glob)\n-  tip-rev: 5002\n-  tip-node: 880b18d239dfa9f632413a2071bfdbcc4806a4fd\n-  data-length: 121088\n-  data-unused: 0\n-  data-unused: 0.000%\n+  cp: cannot stat `../tmp-copies/*\': $ENOENT$\n+  [1]\n+  $ hg debugnodemap --metadata\n   $ hg log -r "$OTHERNODE" -T \'{rev}\\n\'\n-  5002\n+  -1\n \n Check transaction related property\n ==================================\n@@ -335,18 +347,14 @@\n   $ echo dsljfl > a\n   $ hg add a\n   $ hg ci -m a\n-  $ hg debugnodemap --metadata\n-  uid: ???????????????? (glob)\n-  tip-rev: 5003\n-  tip-node: a52c5079765b5865d97b993b303a18740113bbb2\n-  data-length: 121088\n-  data-unused: 0\n-  data-unused: 0.000%\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg debugnodemap --metadata\n   $ echo babar2 > babar\n   $ hg ci -m \'babar2\' --config "hooks.pretxnclose.nodemap-test=hg debugnodemap --metadata"\n-  uid: ???????????????? (glob)\n-  tip-rev: 5004\n-  tip-node: 2f5fb1c06a16834c5679d672e90da7c5f3b1a984\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   data-length: 121280 (pure !)\n   data-length: 121280 (rust !)\n   data-length: 121088 (no-pure no-rust !)\n@@ -356,10 +364,8 @@\n   data-unused: 0.158% (pure !)\n   data-unused: 0.158% (rust !)\n   data-unused: 0.000% (no-pure no-rust !)\n-  $ hg debugnodemap --metadata\n-  uid: ???????????????? (glob)\n-  tip-rev: 5004\n-  tip-node: 2f5fb1c06a16834c5679d672e90da7c5f3b1a984\n+  [255]\n+  $ hg debugnodemap --metadata\n   data-length: 121280 (pure !)\n   data-length: 121280 (rust !)\n   data-length: 121088 (no-pure no-rust !)\n@@ -383,9 +389,7 @@\n   $ wait-on-file 20 sync-txn-pending && \\\n   > hg debugnodemap --metadata && \\\n   > wait-on-file 20 sync-txn-close sync-repo-read\n-  uid: ???????????????? (glob)\n-  tip-rev: 5004\n-  tip-node: 2f5fb1c06a16834c5679d672e90da7c5f3b1a984\n+  file not created after 20 seconds: sync-txn-pending\n   data-length: 121280 (pure !)\n   data-length: 121280 (rust !)\n   data-length: 121088 (no-pure no-rust !)\n@@ -395,10 +399,8 @@\n   data-unused: 0.158% (pure !)\n   data-unused: 0.158% (rust !)\n   data-unused: 0.000% (no-pure no-rust !)\n-  $ hg debugnodemap --metadata\n-  uid: ???????????????? (glob)\n-  tip-rev: 5005\n-  tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe\n+  [1]\n+  $ hg debugnodemap --metadata\n   data-length: 121536 (pure !)\n   data-length: 121536 (rust !)\n   data-length: 121088 (no-pure no-rust !)\n@@ -410,6 +412,8 @@\n   data-unused: 0.000% (no-pure no-rust !)\n \n   $ cat output.txt\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n \n Check that a failing transaction will properly revert the data\n \n@@ -418,15 +422,13 @@\n   .hg/store/00changelog-????????????????.nd: size=121536, sha256=bb414468d225cf52d69132e1237afba34d4346ee2eb81b505027e6197b107f03 (glob) (pure !)\n   .hg/store/00changelog-????????????????.nd: size=121536, sha256=909ac727bc4d1c0fda5f7bff3c620c98bd4a2967c143405a1503439e33b377da (glob) (rust !)\n   .hg/store/00changelog-????????????????.nd: size=121088, sha256=342d36d30d86dde67d3cb6c002606c4a75bcad665595d941493845066d9c8ee0 (glob) (no-pure no-rust !)\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ hg ci -m a3 --config "extensions.abort=$RUNTESTDIR/testlib/crash_transaction_late.py"\n-  transaction abort!\n-  rollback completed\n-  abort: This is a late abort\n-  [255]\n-  $ hg debugnodemap --metadata\n-  uid: ???????????????? (glob)\n-  tip-rev: 5005\n-  tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg debugnodemap --metadata\n   data-length: 121536 (pure !)\n   data-length: 121536 (rust !)\n   data-length: 121088 (no-pure no-rust !)\n@@ -440,6 +442,8 @@\n   .hg/store/00changelog-????????????????.nd: size=121536, sha256=bb414468d225cf52d69132e1237afba34d4346ee2eb81b505027e6197b107f03 (glob) (pure !)\n   .hg/store/00changelog-????????????????.nd: size=121536, sha256=909ac727bc4d1c0fda5f7bff3c620c98bd4a2967c143405a1503439e33b377da (glob) (rust !)\n   .hg/store/00changelog-????????????????.nd: size=121088, sha256=342d36d30d86dde67d3cb6c002606c4a75bcad665595d941493845066d9c8ee0 (glob) (no-pure no-rust !)\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n Check that removing content does not confuse the nodemap\n --------------------------------------------------------\n@@ -448,20 +452,28 @@\n \n   $ echo aso > a\n   $ hg ci -m a4\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg rollback\n-  repository tip rolled back to revision 5005 (undo commit)\n-  working directory now based on revision 5005\n+  no rollback information available\n+  [1]\n   $ hg id -r .\n-  90d5d3ba2fc4 tip\n+  000000000000 tip\n \n roming data with strip\n \n   $ echo aso > a\n   $ hg ci -m a4\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg --config extensions.strip= strip -r . --no-backup\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg id -r . --traceback\n-  90d5d3ba2fc4 tip\n+  000000000000 tip\n \n Test upgrade / downgrade\n ========================\n@@ -492,6 +504,8 @@\n      preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store\n      removed: persistent-nodemap\n   \n+  abort: The directory is not empty: \'$TESTTMP\\test-repo\\.hg\\upgrade.k0aibx\\.hg\\store\'\n+  [255]\n   $ ls -1 .hg/store/ | egrep \'00(changelog|manifest)(\\.n|-.*\\.nd)\'\n   [1]\n   $ hg debugnodemap --metadata\n@@ -511,7 +525,7 @@\n   exp-sharesafe:       no     no      no\n   sparserevlog:       yes    yes     yes\n   sidedata:            no     no      no\n-  persistent-nodemap:  no    yes      no\n+  persistent-nodemap: yes    yes      no\n   copies-sdc:          no     no      no\n   plain-cl-delta:     yes    yes     yes\n   compression:        zlib   zlib    zlib\n@@ -520,22 +534,14 @@\n   upgrade will perform the following actions:\n   \n   requirements\n-     preserved: dotencode, fncache, generaldelta, revlogv1, sparserevlog, store\n-     added: persistent-nodemap\n-  \n+     preserved: dotencode, fncache, generaldelta, persistent-nodemap, revlogv1, sparserevlog, store\n+  \n+  abort: The directory is not empty: \'$TESTTMP\\test-repo\\.hg\\upgrade.r1yslx\\.hg\\store\'\n+  [255]\n   $ ls -1 .hg/store/ | egrep \'00(changelog|manifest)(\\.n|-.*\\.nd)\'\n-  00changelog-*.nd (glob)\n-  00changelog.n\n-  00manifest-*.nd (glob)\n-  00manifest.n\n-\n-  $ hg debugnodemap --metadata\n-  uid: * (glob)\n-  tip-rev: 5005\n-  tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe\n-  data-length: 121088\n-  data-unused: 0\n-  data-unused: 0.000%\n+  [1]\n+\n+  $ hg debugnodemap --metadata\n \n Running unrelated upgrade\n \n@@ -547,16 +553,9 @@\n   \n   optimisations: re-delta-all\n   \n+  abort: The directory is not empty: \'$TESTTMP\\test-repo\\.hg\\upgrade.oqqzfs\\.hg\\store\'\n+  [255]\n   $ ls -1 .hg/store/ | egrep \'00(changelog|manifest)(\\.n|-.*\\.nd)\'\n-  00changelog-*.nd (glob)\n-  00changelog.n\n-  00manifest-*.nd (glob)\n-  00manifest.n\n-\n-  $ hg debugnodemap --metadata\n-  uid: * (glob)\n-  tip-rev: 5005\n-  tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe\n-  data-length: 121088\n-  data-unused: 0\n-  data-unused: 0.000%\n+  [1]\n+\n+  $ hg debugnodemap --metadata\n', 2466, 2468, 'truncated \\uXXXX escape') decoding diff, sorry

test-phases-exchange.t

test-phases.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-phases.t\n+++ c:/hgdev/src/tests/test-phases.t.err\n@@ -24,49 +24,79 @@\n Cannot change null revision phase\n \n   $ hg phase --force --secret null\n-  abort: cannot change null revision phase\n-  [255]\n+  ** Unknown exception encountered with possibly-broken third-party extension "phasereport" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "phasereport" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: phasereport\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 5197, in phase\n+      phases.retractboundary(repo, tr, targetphase, nodes)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg phase null\n   -1: public\n \n   $ mkcommit A\n-  test-debug-phase: new rev 0:  x -> 1\n-  test-hook-close-phase: 4a2df7238c3b48766b5e22fafbb8a2f506ec8256:   -> draft\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n New commit are draft by default\n \n   $ hglog\n-  0 1 A\n \n Following commit are draft too\n \n   $ mkcommit B\n-  test-debug-phase: new rev 1:  x -> 1\n-  test-hook-close-phase: 27547f69f25460a52fff66ad004e58da7ad3fb56:   -> draft\n-\n-  $ hglog\n-  1 1 B\n-  0 1 A\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+  $ hglog\n \n Working directory phase is secret when its parent is secret.\n \n   $ hg phase --force --secret .\n-  test-debug-phase: move rev 0: 1 -> 2\n-  test-debug-phase: move rev 1: 1 -> 2\n-  test-hook-close-phase: 4a2df7238c3b48766b5e22fafbb8a2f506ec8256:  draft -> secret\n-  test-hook-close-phase: 27547f69f25460a52fff66ad004e58da7ad3fb56:  draft -> secret\n-  $ hg log -r \'wdir()\' -T \'{phase}\\n\'\n-  secret\n-  $ hg log -r \'wdir() and public()\' -T \'{phase}\\n\'\n-  $ hg log -r \'wdir() and draft()\' -T \'{phase}\\n\'\n-  $ hg log -r \'wdir() and secret()\' -T \'{phase}\\n\'\n-  secret\n-\n-Working directory phase is draft when its parent is draft.\n-\n-  $ hg phase --draft .\n-  test-debug-phase: move rev 1: 2 -> 1\n-  test-hook-close-phase: 27547f69f25460a52fff66ad004e58da7ad3fb56:  secret -> draft\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -r \'wdir()\' -T \'{phase}\\n\'\n   draft\n   $ hg log -r \'wdir() and public()\' -T \'{phase}\\n\'\n@@ -74,6 +104,19 @@\n   draft\n   $ hg log -r \'wdir() and secret()\' -T \'{phase}\\n\'\n \n+Working directory phase is draft when its parent is draft.\n+\n+  $ hg phase --draft .\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg log -r \'wdir()\' -T \'{phase}\\n\'\n+  draft\n+  $ hg log -r \'wdir() and public()\' -T \'{phase}\\n\'\n+  $ hg log -r \'wdir() and draft()\' -T \'{phase}\\n\'\n+  draft\n+  $ hg log -r \'wdir() and secret()\' -T \'{phase}\\n\'\n+\n Working directory phase is secret when a new commit will be created as secret,\n even if the parent is draft.\n \n@@ -84,10 +127,9 @@\n Working directory phase is draft when its parent is public.\n \n   $ hg phase --public .\n-  test-debug-phase: move rev 0: 1 -> 0\n-  test-debug-phase: move rev 1: 1 -> 0\n-  test-hook-close-phase: 4a2df7238c3b48766b5e22fafbb8a2f506ec8256:  draft -> public\n-  test-hook-close-phase: 27547f69f25460a52fff66ad004e58da7ad3fb56:  draft -> public\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -r \'wdir()\' -T \'{phase}\\n\'\n   draft\n   $ hg log -r \'wdir() and public()\' -T \'{phase}\\n\'\n@@ -101,83 +143,57 @@\n Draft commit are properly created over public one:\n \n   $ hg phase\n-  1: public\n-  $ hglog\n-  1 0 B\n-  0 0 A\n+  -1: public\n+  $ hglog\n \n   $ mkcommit C\n-  test-debug-phase: new rev 2:  x -> 1\n-  test-hook-close-phase: f838bfaca5c7226600ebcfd84f3c3c13a28d3757:   -> draft\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ mkcommit D\n-  test-debug-phase: new rev 3:  x -> 1\n-  test-hook-close-phase: b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e:   -> draft\n-\n-  $ hglog\n-  3 1 D\n-  2 1 C\n-  1 0 B\n-  0 0 A\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+  $ hglog\n \n Test creating changeset as secret\n \n   $ mkcommit E --config phases.new-commit=\'secret\'\n-  test-debug-phase: new rev 4:  x -> 2\n-  test-hook-close-phase: a603bfb5a83e312131cebcd05353c217d4d21dde:   -> secret\n-  $ hglog\n-  4 2 E\n-  3 1 D\n-  2 1 C\n-  1 0 B\n-  0 0 A\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hglog\n \n Test the secret property is inherited\n \n   $ mkcommit H\n-  test-debug-phase: new rev 5:  x -> 2\n-  test-hook-close-phase: a030c6be5127abc010fcbff1851536552e6951a8:   -> secret\n-  $ hglog\n-  5 2 H\n-  4 2 E\n-  3 1 D\n-  2 1 C\n-  1 0 B\n-  0 0 A\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hglog\n \n Even on merge\n \n   $ hg up -q 1\n+  abort: unknown revision \'1\'\n+  [255]\n   $ mkcommit "B\'"\n-  test-debug-phase: new rev 6:  x -> 1\n-  created new head\n-  test-hook-close-phase: cf9fe039dfd67e829edf6522a45de057b5c86519:   -> draft\n-  $ hglog\n-  6 1 B\'\n-  5 2 H\n-  4 2 E\n-  3 1 D\n-  2 1 C\n-  1 0 B\n-  0 0 A\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hglog\n   $ hg merge 4 # E\n-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n+  abort: unknown revision \'4\'\n+  [255]\n   $ hg phase\n-  6: draft\n-  4: secret\n+  -1: public\n   $ hg ci -m "merge B\' and E"\n-  test-debug-phase: new rev 7:  x -> 2\n-  test-hook-close-phase: 17a481b3bccb796c0521ae97903d81c52bfee4af:   -> secret\n-\n-  $ hglog\n-  7 2 merge B\' and E\n-  6 1 B\'\n-  5 2 H\n-  4 2 E\n-  3 1 D\n-  2 1 C\n-  1 0 B\n-  0 0 A\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+  $ hglog\n \n Test secret changeset are not pushed\n \n@@ -188,54 +204,22 @@\n   > EOF\n   $ hg outgoing ../push-dest --template=\'{rev} {phase} {desc|firstline}\\n\'\n   comparing with ../push-dest\n-  searching for changes\n-  0 public A\n-  1 public B\n-  2 draft C\n-  3 draft D\n-  6 draft B\'\n+  no changes found\n+  [1]\n   $ hg outgoing -r \'branch(default)\' ../push-dest --template=\'{rev} {phase} {desc|firstline}\\n\'\n   comparing with ../push-dest\n-  searching for changes\n-  0 public A\n-  1 public B\n-  2 draft C\n-  3 draft D\n-  6 draft B\'\n+  abort: unknown revision \'default\'\n+  [255]\n \n   $ hg push ../push-dest -f # force because we push multiple heads\n   pushing to ../push-dest\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 5 changesets with 5 changes to 5 files (+1 heads)\n-  test-debug-phase: new rev 0:  x -> 0\n-  test-debug-phase: new rev 1:  x -> 0\n-  test-debug-phase: new rev 2:  x -> 1\n-  test-debug-phase: new rev 3:  x -> 1\n-  test-debug-phase: new rev 4:  x -> 1\n-  test-hook-close-phase: 4a2df7238c3b48766b5e22fafbb8a2f506ec8256:   -> public\n-  test-hook-close-phase: 27547f69f25460a52fff66ad004e58da7ad3fb56:   -> public\n-  test-hook-close-phase: f838bfaca5c7226600ebcfd84f3c3c13a28d3757:   -> draft\n-  test-hook-close-phase: b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e:   -> draft\n-  test-hook-close-phase: cf9fe039dfd67e829edf6522a45de057b5c86519:   -> draft\n-  $ hglog\n-  7 2 merge B\' and E\n-  6 1 B\'\n-  5 2 H\n-  4 2 E\n-  3 1 D\n-  2 1 C\n-  1 0 B\n-  0 0 A\n+  no changes found\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hglog\n   $ cd ../push-dest\n   $ hglog\n-  4 1 B\'\n-  3 1 D\n-  2 1 C\n-  1 0 B\n-  0 0 A\n \n (Issue3303)\n Check that remote secret changeset are ignore when checking creation of remote heads\n@@ -244,64 +228,63 @@\n visible shared between the initial repo and the push destination.\n \n   $ hg up -q 4 # B\'\n+  abort: unknown revision \'4\'\n+  [255]\n   $ mkcommit Z --config phases.new-commit=secret\n-  test-debug-phase: new rev 5:  x -> 2\n-  test-hook-close-phase: 2713879da13d6eea1ff22b442a5a87cb31a7ce6a:   -> secret\n+  test-debug-phase: new rev 0:  x -> 2\n+  test-hook-close-phase: 567c5fc544ed12bf9619197fdd5263d6c3129cd0:   -> secret\n   $ hg phase .\n-  5: secret\n+  0: secret\n \n We now try to push a new public changeset that descend from the common public\n head shadowed by the remote secret head.\n \n   $ cd ../initialrepo\n   $ hg up -q 6 #B\'\n+  abort: unknown revision \'6\'\n+  [255]\n   $ mkcommit I\n-  test-debug-phase: new rev 8:  x -> 1\n-  created new head\n-  test-hook-close-phase: 6d6770faffce199f1fddd1cf87f6f026138cf061:   -> draft\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg push ../push-dest\n   pushing to ../push-dest\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  test-debug-phase: new rev 6:  x -> 1\n-  test-hook-close-phase: 6d6770faffce199f1fddd1cf87f6f026138cf061:   -> draft\n+  no changes found\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n :note: The "(+1 heads)" is wrong as we do not had any visible head\n \n check that branch cache with "served" filter are properly computed and stored\n \n   $ ls ../push-dest/.hg/cache/branch2*\n-  ../push-dest/.hg/cache/branch2-base\n-  ../push-dest/.hg/cache/branch2-served\n+  ls: ../push-dest/.hg/cache/branch2*: $ENOENT$\n+  [2]\n   $ cat ../push-dest/.hg/cache/branch2-served\n-  6d6770faffce199f1fddd1cf87f6f026138cf061 6 465891ffab3c47a3c23792f7dc84156e19a90722\n-  b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e o default\n-  6d6770faffce199f1fddd1cf87f6f026138cf061 o default\n+  cat: ../push-dest/.hg/cache/branch2-served: $ENOENT$\n+  [1]\n   $ hg heads -R ../push-dest --template \'{rev}:{node} {phase}\\n\'  #update visible cache too\n-  6:6d6770faffce199f1fddd1cf87f6f026138cf061 draft\n-  5:2713879da13d6eea1ff22b442a5a87cb31a7ce6a secret\n-  3:b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e draft\n+  0:567c5fc544ed12bf9619197fdd5263d6c3129cd0 secret\n   $ ls ../push-dest/.hg/cache/branch2*\n-  ../push-dest/.hg/cache/branch2-base\n-  ../push-dest/.hg/cache/branch2-served\n   ../push-dest/.hg/cache/branch2-visible\n   $ cat ../push-dest/.hg/cache/branch2-served\n-  6d6770faffce199f1fddd1cf87f6f026138cf061 6 465891ffab3c47a3c23792f7dc84156e19a90722\n-  b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e o default\n-  6d6770faffce199f1fddd1cf87f6f026138cf061 o default\n+  cat: ../push-dest/.hg/cache/branch2-served: $ENOENT$\n+  [1]\n   $ cat ../push-dest/.hg/cache/branch2-visible\n-  6d6770faffce199f1fddd1cf87f6f026138cf061 6\n-  b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e o default\n-  2713879da13d6eea1ff22b442a5a87cb31a7ce6a o default\n-  6d6770faffce199f1fddd1cf87f6f026138cf061 o default\n+  567c5fc544ed12bf9619197fdd5263d6c3129cd0 0\n+  567c5fc544ed12bf9619197fdd5263d6c3129cd0 o default\n \n \n Restore condition prior extra insertion.\n   $ hg -q --config extensions.mq= strip .\n+  strip failed, backup bundle stored in \'$TESTTMP\\initialrepo\\.hg\\strip-backup/000000000000-9514e18b-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up -q 7\n+  abort: unknown revision \'7\'\n+  [255]\n   $ cd ..\n \n Test secret changeset are not pull\n@@ -310,243 +293,74 @@\n   $ cd pull-dest\n   $ hg pull ../initialrepo\n   pulling from ../initialrepo\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 5 changesets with 5 changes to 5 files (+1 heads)\n-  new changesets 4a2df7238c3b:cf9fe039dfd6\n-  test-debug-phase: new rev 0:  x -> 0\n-  test-debug-phase: new rev 1:  x -> 0\n-  test-debug-phase: new rev 2:  x -> 0\n-  test-debug-phase: new rev 3:  x -> 0\n-  test-debug-phase: new rev 4:  x -> 0\n-  test-hook-close-phase: 4a2df7238c3b48766b5e22fafbb8a2f506ec8256:   -> public\n-  test-hook-close-phase: 27547f69f25460a52fff66ad004e58da7ad3fb56:   -> public\n-  test-hook-close-phase: f838bfaca5c7226600ebcfd84f3c3c13a28d3757:   -> public\n-  test-hook-close-phase: b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e:   -> public\n-  test-hook-close-phase: cf9fe039dfd67e829edf6522a45de057b5c86519:   -> public\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n-  $ hglog\n-  4 0 B\'\n-  3 0 D\n-  2 0 C\n-  1 0 B\n-  0 0 A\n+  no changes found\n+  $ hglog\n   $ cd ..\n \n But secret can still be bundled explicitly\n \n   $ cd initialrepo\n   $ hg bundle --base \'4^\' -r \'children(4)\' ../secret-bundle.hg\n-  4 changesets found\n+  abort: unknown revision \'4\'\n+  [255]\n   $ cd ..\n \n Test secret changeset are not cloned\n (during local clone)\n \n   $ hg clone -qU initialrepo clone-dest\n-  test-debug-phase: new rev 0:  x -> 0\n-  test-debug-phase: new rev 1:  x -> 0\n-  test-debug-phase: new rev 2:  x -> 0\n-  test-debug-phase: new rev 3:  x -> 0\n-  test-debug-phase: new rev 4:  x -> 0\n-  test-hook-close-phase: 4a2df7238c3b48766b5e22fafbb8a2f506ec8256:   -> public\n-  test-hook-close-phase: 27547f69f25460a52fff66ad004e58da7ad3fb56:   -> public\n-  test-hook-close-phase: f838bfaca5c7226600ebcfd84f3c3c13a28d3757:   -> public\n-  test-hook-close-phase: b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e:   -> public\n-  test-hook-close-phase: cf9fe039dfd67e829edf6522a45de057b5c86519:   -> public\n   $ hglog -R clone-dest\n-  4 0 B\'\n-  3 0 D\n-  2 0 C\n-  1 0 B\n-  0 0 A\n \n Test summary\n \n   $ hg summary -R clone-dest --verbose\n-  parent: -1:000000000000  (no revision checked out)\n+  parent: -1:000000000000 tip (empty repository)\n   branch: default\n   commit: (clean)\n-  update: 5 new changesets (update)\n+  update: (current)\n   $ hg summary -R initialrepo\n-  parent: 7:17a481b3bccb tip\n-   merge B\' and E\n+  parent: -1:000000000000 tip (empty repository)\n   branch: default\n-  commit: (clean) (secret)\n-  update: 1 new changesets, 2 branch heads (merge)\n-  phases: 3 draft, 3 secret\n+  commit: 8 added (new branch head)\n+  update: (current)\n   $ hg summary -R initialrepo --quiet\n-  parent: 7:17a481b3bccb tip\n-  update: 1 new changesets, 2 branch heads (merge)\n+  parent: -1:000000000000 tip (empty repository)\n+  commit: 8 added (new branch head)\n \n Test revset\n \n   $ cd initialrepo\n   $ hglog -r \'public()\'\n-  0 0 A\n-  1 0 B\n   $ hglog -r \'draft()\'\n-  2 1 C\n-  3 1 D\n-  6 1 B\'\n   $ hglog -r \'secret()\'\n-  4 2 E\n-  5 2 H\n-  7 2 merge B\' and E\n \n test that phase are displayed in log at debug level\n \n   $ hg log --debug\n-  changeset:   7:17a481b3bccb796c0521ae97903d81c52bfee4af\n-  tag:         tip\n-  phase:       secret\n-  parent:      6:cf9fe039dfd67e829edf6522a45de057b5c86519\n-  parent:      4:a603bfb5a83e312131cebcd05353c217d4d21dde\n-  manifest:    7:5e724ffacba267b2ab726c91fc8b650710deaaa8\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files+:      C D E\n-  extra:       branch=default\n-  description:\n-  merge B\' and E\n-  \n-  \n-  changeset:   6:cf9fe039dfd67e829edf6522a45de057b5c86519\n-  phase:       draft\n-  parent:      1:27547f69f25460a52fff66ad004e58da7ad3fb56\n-  parent:      -1:0000000000000000000000000000000000000000\n-  manifest:    6:ab8bfef2392903058bf4ebb9e7746e8d7026b27a\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files+:      B\'\n-  extra:       branch=default\n-  description:\n-  B\'\n-  \n-  \n-  changeset:   5:a030c6be5127abc010fcbff1851536552e6951a8\n-  phase:       secret\n-  parent:      4:a603bfb5a83e312131cebcd05353c217d4d21dde\n-  parent:      -1:0000000000000000000000000000000000000000\n-  manifest:    5:5c710aa854874fe3d5fa7192e77bdb314cc08b5a\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files+:      H\n-  extra:       branch=default\n-  description:\n-  H\n-  \n-  \n-  changeset:   4:a603bfb5a83e312131cebcd05353c217d4d21dde\n-  phase:       secret\n-  parent:      3:b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e\n-  parent:      -1:0000000000000000000000000000000000000000\n-  manifest:    4:7173fd1c27119750b959e3a0f47ed78abe75d6dc\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files+:      E\n-  extra:       branch=default\n-  description:\n-  E\n-  \n-  \n-  changeset:   3:b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e\n-  phase:       draft\n-  parent:      2:f838bfaca5c7226600ebcfd84f3c3c13a28d3757\n-  parent:      -1:0000000000000000000000000000000000000000\n-  manifest:    3:6e1f4c47ecb533ffd0c8e52cdc88afb6cd39e20c\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files+:      D\n-  extra:       branch=default\n-  description:\n-  D\n-  \n-  \n-  changeset:   2:f838bfaca5c7226600ebcfd84f3c3c13a28d3757\n-  phase:       draft\n-  parent:      1:27547f69f25460a52fff66ad004e58da7ad3fb56\n-  parent:      -1:0000000000000000000000000000000000000000\n-  manifest:    2:66a5a01817fdf5239c273802b5b7618d051c89e4\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files+:      C\n-  extra:       branch=default\n-  description:\n-  C\n-  \n-  \n-  changeset:   1:27547f69f25460a52fff66ad004e58da7ad3fb56\n-  phase:       public\n-  parent:      0:4a2df7238c3b48766b5e22fafbb8a2f506ec8256\n-  parent:      -1:0000000000000000000000000000000000000000\n-  manifest:    1:cb5cbbc1bfbf24cc34b9e8c16914e9caa2d2a7fd\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files+:      B\n-  extra:       branch=default\n-  description:\n-  B\n-  \n-  \n-  changeset:   0:4a2df7238c3b48766b5e22fafbb8a2f506ec8256\n-  phase:       public\n-  parent:      -1:0000000000000000000000000000000000000000\n-  parent:      -1:0000000000000000000000000000000000000000\n-  manifest:    0:007d8c9d88841325f5c6b06371b35b4e8a2b1a83\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files+:      A\n-  extra:       branch=default\n-  description:\n-  A\n-  \n-  \n \n \n (Issue3707)\n test invalid phase name\n \n   $ mkcommit I --config phases.new-commit=\'babar\'\n-  transaction abort!\n-  rollback completed\n-  config error: phases.new-commit: not a valid phase name (\'babar\')\n-  [30]\n+  I already tracked!\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n Test phase command\n ===================\n \n initial picture\n \n   $ hg log -G --template "{rev} {phase} {desc}\\n"\n-  @    7 secret merge B\' and E\n-  |\\\n-  | o  6 draft B\'\n-  | |\n-  +---o  5 secret H\n-  | |\n-  o |  4 secret E\n-  | |\n-  o |  3 draft D\n-  | |\n-  o |  2 draft C\n-  |/\n-  o  1 public B\n-  |\n-  o  0 public A\n-  \n \n display changesets phase\n \n (mixing -r and plain rev specification)\n \n   $ hg phase 1::4 -r 7\n-  1: public\n-  2: draft\n-  3: draft\n-  4: secret\n-  7: secret\n+  abort: unknown revision \'1\'\n+  [255]\n \n \n move changeset forward\n@@ -554,120 +368,40 @@\n (with -r option)\n \n   $ hg phase --public -r 2\n-  test-debug-phase: move rev 2: 1 -> 0\n-  test-hook-close-phase: f838bfaca5c7226600ebcfd84f3c3c13a28d3757:  draft -> public\n+  abort: unknown revision \'2\'\n+  [255]\n   $ hg log -G --template "{rev} {phase} {desc}\\n"\n-  @    7 secret merge B\' and E\n-  |\\\n-  | o  6 draft B\'\n-  | |\n-  +---o  5 secret H\n-  | |\n-  o |  4 secret E\n-  | |\n-  o |  3 draft D\n-  | |\n-  o |  2 public C\n-  |/\n-  o  1 public B\n-  |\n-  o  0 public A\n-  \n \n move changeset backward\n \n (without -r option)\n \n   $ hg phase --draft --force 2\n-  test-debug-phase: move rev 2: 0 -> 1\n-  test-hook-close-phase: f838bfaca5c7226600ebcfd84f3c3c13a28d3757:  public -> draft\n+  abort: unknown revision \'2\'\n+  [255]\n   $ hg log -G --template "{rev} {phase} {desc}\\n"\n-  @    7 secret merge B\' and E\n-  |\\\n-  | o  6 draft B\'\n-  | |\n-  +---o  5 secret H\n-  | |\n-  o |  4 secret E\n-  | |\n-  o |  3 draft D\n-  | |\n-  o |  2 draft C\n-  |/\n-  o  1 public B\n-  |\n-  o  0 public A\n-  \n \n move changeset forward and backward\n \n   $ hg phase --draft --force 1::4\n-  test-debug-phase: move rev 1: 0 -> 1\n-  test-debug-phase: move rev 4: 2 -> 1\n-  test-hook-close-phase: 27547f69f25460a52fff66ad004e58da7ad3fb56:  public -> draft\n-  test-hook-close-phase: a603bfb5a83e312131cebcd05353c217d4d21dde:  secret -> draft\n+  abort: unknown revision \'1\'\n+  [255]\n   $ hg log -G --template "{rev} {phase} {desc}\\n"\n-  @    7 secret merge B\' and E\n-  |\\\n-  | o  6 draft B\'\n-  | |\n-  +---o  5 secret H\n-  | |\n-  o |  4 draft E\n-  | |\n-  o |  3 draft D\n-  | |\n-  o |  2 draft C\n-  |/\n-  o  1 draft B\n-  |\n-  o  0 public A\n-  \n test partial failure\n \n   $ hg phase --public 7\n-  test-debug-phase: move rev 1: 1 -> 0\n-  test-debug-phase: move rev 2: 1 -> 0\n-  test-debug-phase: move rev 3: 1 -> 0\n-  test-debug-phase: move rev 4: 1 -> 0\n-  test-debug-phase: move rev 6: 1 -> 0\n-  test-debug-phase: move rev 7: 2 -> 0\n-  test-hook-close-phase: 27547f69f25460a52fff66ad004e58da7ad3fb56:  draft -> public\n-  test-hook-close-phase: f838bfaca5c7226600ebcfd84f3c3c13a28d3757:  draft -> public\n-  test-hook-close-phase: b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e:  draft -> public\n-  test-hook-close-phase: a603bfb5a83e312131cebcd05353c217d4d21dde:  draft -> public\n-  test-hook-close-phase: cf9fe039dfd67e829edf6522a45de057b5c86519:  draft -> public\n-  test-hook-close-phase: 17a481b3bccb796c0521ae97903d81c52bfee4af:  secret -> public\n+  abort: unknown revision \'7\'\n+  [255]\n   $ hg phase --draft \'5 or 7\'\n-  test-debug-phase: move rev 5: 2 -> 1\n-  test-hook-close-phase: a030c6be5127abc010fcbff1851536552e6951a8:  secret -> draft\n-  cannot move 1 changesets to a higher phase, use --force\n-  phase changed for 1 changesets\n-  [1]\n+  abort: unknown revision \'5\'\n+  [255]\n   $ hg log -G --template "{rev} {phase} {desc}\\n"\n-  @    7 public merge B\' and E\n-  |\\\n-  | o  6 public B\'\n-  | |\n-  +---o  5 draft H\n-  | |\n-  o |  4 public E\n-  | |\n-  o |  3 public D\n-  | |\n-  o |  2 public C\n-  |/\n-  o  1 public B\n-  |\n-  o  0 public A\n-  \n \n test complete failure\n \n   $ hg phase --draft 7\n-  cannot move 1 changesets to a higher phase, use --force\n-  no phases changed\n-  [1]\n+  abort: unknown revision \'7\'\n+  [255]\n \n   $ cd ..\n \n@@ -683,60 +417,26 @@\n \n (making a changeset hidden; H in that case)\n   $ hg debugobsolete `hg id --debug -r 5`\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n+  abort: unknown revision \'5\'\n \n   $ cd ..\n   $ hg clone initialrepo clonewithobs\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 7 changesets with 6 changes to 6 files\n-  new changesets 4a2df7238c3b:17a481b3bccb\n-  test-debug-phase: new rev 0:  x -> 0\n-  test-debug-phase: new rev 1:  x -> 0\n-  test-debug-phase: new rev 2:  x -> 0\n-  test-debug-phase: new rev 3:  x -> 0\n-  test-debug-phase: new rev 4:  x -> 0\n-  test-debug-phase: new rev 5:  x -> 0\n-  test-debug-phase: new rev 6:  x -> 0\n-  test-hook-close-phase: 4a2df7238c3b48766b5e22fafbb8a2f506ec8256:   -> public\n-  test-hook-close-phase: 27547f69f25460a52fff66ad004e58da7ad3fb56:   -> public\n-  test-hook-close-phase: f838bfaca5c7226600ebcfd84f3c3c13a28d3757:   -> public\n-  test-hook-close-phase: b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e:   -> public\n-  test-hook-close-phase: a603bfb5a83e312131cebcd05353c217d4d21dde:   -> public\n-  test-hook-close-phase: cf9fe039dfd67e829edf6522a45de057b5c86519:   -> public\n-  test-hook-close-phase: 17a481b3bccb796c0521ae97903d81c52bfee4af:   -> public\n   updating to branch default\n-  6 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ cd clonewithobs\n   $ hg log -G --template "{rev} {phase} {desc}\\n"\n-  @    6 public merge B\' and E\n-  |\\\n-  | o  5 public B\'\n-  | |\n-  o |  4 public E\n-  | |\n-  o |  3 public D\n-  | |\n-  o |  2 public C\n-  |/\n-  o  1 public B\n-  |\n-  o  0 public A\n-  \n \n test verify repo containing hidden changesets, which should not abort just\n because repo.cancopy() is False\n \n   $ cd ../initialrepo\n   $ hg verify\n+  abandoned transaction found - run hg recover\n   checking changesets\n   checking manifests\n   crosschecking files in changesets and manifests\n   checking files\n-  checked 8 changesets with 7 changes to 7 files\n+  checked 0 changesets with 0 changes to 0 files\n \n   $ cd ..\n \n@@ -752,13 +452,14 @@\n   > EOF\n   $ cd push-dest\n   $ hg phase 6\n-  6: draft\n+  abort: unknown revision \'6\'\n+  [255]\n   $ hg --config hooks.pretxnclose="sh $TESTTMP/savepending.sh" phase -f -s 6\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnclose hook exited with status 1\n+  abort: unknown revision \'6\'\n   [255]\n   $ cp .hg/store/phaseroots.pending.saved .hg/store/phaseroots.pending\n+  cp: cannot stat `.hg/store/phaseroots.pending.saved\': $ENOENT$\n+  [1]\n \n (check (in)visibility of phaseroot while transaction running in repo)\n \n@@ -771,75 +472,18 @@\n   > EOF\n   $ cd ../initialrepo\n   $ hg phase 7\n-  7: public\n+  abort: unknown revision \'7\'\n+  [255]\n   $ hg --config hooks.pretxnclose="sh $TESTTMP/checkpending.sh" phase -f -s 7\n-  @initialrepo\n-  7: secret\n-  @push-dest\n-  6: draft\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnclose hook exited with status 1\n+  abort: unknown revision \'7\'\n   [255]\n \n Check that pretxnclose-phase hook can control phase movement\n \n   $ hg phase --force b3325c91a4d9 --secret\n-  test-debug-phase: move rev 3: 0 -> 2\n-  test-debug-phase: move rev 4: 0 -> 2\n-  test-debug-phase: move rev 5: 1 -> 2\n-  test-debug-phase: move rev 7: 0 -> 2\n-  test-hook-close-phase: b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e:  public -> secret\n-  test-hook-close-phase: a603bfb5a83e312131cebcd05353c217d4d21dde:  public -> secret\n-  test-hook-close-phase: a030c6be5127abc010fcbff1851536552e6951a8:  draft -> secret\n-  test-hook-close-phase: 17a481b3bccb796c0521ae97903d81c52bfee4af:  public -> secret\n+  abort: unknown revision \'b3325c91a4d9\'\n+  [255]\n   $ hg log -G -T phases\n-  @    changeset:   7:17a481b3bccb\n-  |\\   tag:         tip\n-  | |  phase:       secret\n-  | |  parent:      6:cf9fe039dfd6\n-  | |  parent:      4:a603bfb5a83e\n-  | |  user:        test\n-  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  | |  summary:     merge B\' and E\n-  | |\n-  | o  changeset:   6:cf9fe039dfd6\n-  | |  phase:       public\n-  | |  parent:      1:27547f69f254\n-  | |  user:        test\n-  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  | |  summary:     B\'\n-  | |\n-  o |  changeset:   4:a603bfb5a83e\n-  | |  phase:       secret\n-  | |  user:        test\n-  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  | |  summary:     E\n-  | |\n-  o |  changeset:   3:b3325c91a4d9\n-  | |  phase:       secret\n-  | |  user:        test\n-  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  | |  summary:     D\n-  | |\n-  o |  changeset:   2:f838bfaca5c7\n-  |/   phase:       public\n-  |    user:        test\n-  |    date:        Thu Jan 01 00:00:00 1970 +0000\n-  |    summary:     C\n-  |\n-  o  changeset:   1:27547f69f254\n-  |  phase:       public\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     B\n-  |\n-  o  changeset:   0:4a2df7238c3b\n-     phase:       public\n-     user:        test\n-     date:        Thu Jan 01 00:00:00 1970 +0000\n-     summary:     A\n-  \n \n Install a hook that prevent b3325c91a4d9 to become public\n \n@@ -851,26 +495,16 @@\n Try various actions. only the draft move should succeed\n \n   $ hg phase --public b3325c91a4d9\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnclose-phase.nopublish_D hook exited with status 1\n+  abort: unknown revision \'b3325c91a4d9\'\n   [255]\n   $ hg phase --public a603bfb5a83e\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnclose-phase.nopublish_D hook exited with status 1\n+  abort: unknown revision \'a603bfb5a83e\'\n   [255]\n   $ hg phase --draft 17a481b3bccb\n-  test-debug-phase: move rev 3: 2 -> 1\n-  test-debug-phase: move rev 4: 2 -> 1\n-  test-debug-phase: move rev 7: 2 -> 1\n-  test-hook-close-phase: b3325c91a4d916bcc4cdc83ea3fe4ece46a42f6e:  secret -> draft\n-  test-hook-close-phase: a603bfb5a83e312131cebcd05353c217d4d21dde:  secret -> draft\n-  test-hook-close-phase: 17a481b3bccb796c0521ae97903d81c52bfee4af:  secret -> draft\n+  abort: unknown revision \'17a481b3bccb\'\n+  [255]\n   $ hg phase --public 17a481b3bccb\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnclose-phase.nopublish_D hook exited with status 1\n+  abort: unknown revision \'17a481b3bccb\'\n   [255]\n \n   $ cd ..\n@@ -894,13 +528,9 @@\n   $ hg status\n   A X\n   $ hg --config "phases.new-commit=internal" commit -m "my test internal commit" 2>&1 | grep ProgrammingError\n-  ** ProgrammingError: this repository does not support the internal phase\n-      raise error.ProgrammingError(msg)\n-  *ProgrammingError: this repository does not support the internal phase (glob)\n+  [1]\n   $ hg --config "phases.new-commit=archived" commit -m "my test archived commit" 2>&1 | grep ProgrammingError\n-  ** ProgrammingError: this repository does not support the archived phase\n-      raise error.ProgrammingError(msg)\n-  *ProgrammingError: this repository does not support the archived phase (glob)\n+  [1]\n \n   $ cd ..\n \n@@ -1006,49 +636,56 @@\n \n   $ cd initialrepo\n   $ hg phase -r 2\n-  2: public\n+  abort: unknown revision \'2\'\n+  [255]\n   $ hg up -C 1\n-  0 files updated, 0 files merged, 4 files removed, 0 files unresolved\n+  abort: unknown revision \'1\'\n+  [255]\n   $ mkcommit C\n-  warning: commit already existed in the repository!\n+  C already tracked!\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase -r 2\n-  2: public\n+  abort: unknown revision \'2\'\n+  [255]\n \n Same, but for secret:\n \n   $ hg up 7\n-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: unknown revision \'7\'\n+  [255]\n   $ mkcommit F -s\n-  test-debug-phase: new rev 8:  x -> 2\n-  test-hook-close-phase: de414268ec5ce2330c590b942fbb5ff0b0ca1a0a:   -> secret\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up 7\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: unknown revision \'7\'\n+  [255]\n   $ hg phase\n-  7: draft\n+  -1: public\n   $ mkcommit F\n-  test-debug-phase: new rev 8:  x -> 2\n-  warning: commit already existed in the repository!\n-  test-hook-close-phase: de414268ec5ce2330c590b942fbb5ff0b0ca1a0a:   -> secret\n+  F already tracked!\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase -r tip\n-  8: secret\n+  -1: public\n \n But what about obsoleted changesets?\n \n   $ hg up 4\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: unknown revision \'4\'\n+  [255]\n   $ mkcommit H\n-  test-debug-phase: new rev 5:  x -> 2\n-  warning: commit already existed in the repository!\n-  test-hook-close-phase: a030c6be5127abc010fcbff1851536552e6951a8:   -> secret\n+  H already tracked!\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase -r 5\n-  5: secret\n+  abort: unknown revision \'5\'\n+  [255]\n   $ hg par\n-  changeset:   5:a030c6be5127\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  obsolete:    pruned\n-  summary:     H\n-  \n   $ hg up tip\n-  2 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ cd ..\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  $ cd ..\n', 2312, 2314, 'truncated \\uXXXX escape') decoding diff, sorry

test-profile.t

--- c:/hgdev/src/tests/test-profile.t
+++ c:/hgdev/src/tests/test-profile.t.err
@@ -101,7 +101,7 @@
   $ hg --profile --config profiling.statformat=hotpath sleep 2>../out || cat ../out
   $ cat ../out | statprofran
   $ grep sleepext_with_a_long_filename.py ../out
-  .* [0-9.]+%  [0-9.]+s  sleepext_with_a_long_filename.py:\s*sleep_for_at_least_one_stat_cycle, line 7:    time\.sleep.* (re)
+  [1]
 
   $ hg --profile --config profiling.statformat=json sleep 2>../out || cat ../out
   $ cat ../out

test-progress.t

--- c:/hgdev/src/tests/test-progress.t
+++ c:/hgdev/src/tests/test-progress.t.err
@@ -207,13 +207,13 @@
   
 (no-eol) (esc)
   loop [                                                ] 0/6
 (no-eol) (esc)
                                                               
 (no-eol) (esc)
-  \[20[2-9][0-9]-[01][0-9]-[0-3][0-9]T[0-5][0-9]:[0-5][0-9]:[0-5][0-9]\.[0-9][0-9][0-9][0-9][0-9][0-9]\] reached step 0 (re)
+  [1970-01-01T00:00:00.750000] reached step 0
   
 (no-eol) (esc)
   loop [=======>                                        ] 1/6
 (no-eol) (esc)
   loop [===============>                                ] 2/6
 (no-eol) (esc)
   loop [=======================>                        ] 3/6
 (no-eol) (esc)
                                                               
 (no-eol) (esc)
-  \[20[2-9][0-9]-[01][0-9]-[0-3][0-9]T[0-5][0-9]:[0-5][0-9]:[0-5][0-9]\.[0-9][0-9][0-9][0-9][0-9][0-9]\] reached step 3 (re)
+  [1970-01-01T00:00:01.750000] reached step 3
   
 (no-eol) (esc)
   loop [===============================>                ] 4/6
 (no-eol) (esc)
   loop [=======================================>        ] 5/6
 (no-eol) (esc)

test-pull-http.t

test-pull-r.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-pull-r.t\n+++ c:/hgdev/src/tests/test-pull-r.t.err\n@@ -59,41 +59,69 @@\n   adding 2 changesets with 1 changes to 1 files\n   new changesets 8c900227dd5d:00cfe9073916\n   accept incoming changes (yn)? n\n-  transaction abort!\n-  rollback completed\n-  abort: user aborted\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 5398, in pull\n+      confirm=opts.get(b\'confirm\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1634, in pull\n+      _pullobsolete(pullop)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1462, in release\n+      self._tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg pull --config pull.confirm=true << EOF\n   > n\n   > EOF\n   pulling from $TESTTMP/repo2\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  adding 2 changesets with 1 changes to 1 files\n-  new changesets 8c900227dd5d:00cfe9073916\n-  accept incoming changes (yn)? n\n-  transaction abort!\n-  rollback completed\n-  abort: user aborted\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg pull --confirm << EOF\n   > y\n   > EOF\n   pulling from $TESTTMP/repo2\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  adding 2 changesets with 1 changes to 1 files\n-  new changesets 8c900227dd5d:00cfe9073916\n-  accept incoming changes (yn)? y\n-  added 2 changesets with 1 changes to 1 files\n-  new changesets 8c900227dd5d:00cfe9073916\n-  (run \'hg update\' to get a working copy)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg heads -q --closed\n-  4:00cfe9073916\n   2:effea6de0384\n   1:ed1b79f46b9a\n \n@@ -101,7 +129,9 @@\n   $ HGPLAIN=1 hg pull --config pull.confirm=True\n   pulling from $TESTTMP/repo2\n   searching for changes\n-  no changes found\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ cd ..\n \n@@ -192,3 +222,5 @@\n \n   $ cd ..\n   $ killdaemons.py\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n', 2199, 2201, 'truncated \\uXXXX escape') decoding diff, sorry

test-pull-update.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-pull-update.t\n+++ c:/hgdev/src/tests/test-pull-update.t.err\n@@ -31,6 +31,54 @@\n   abort: uncommitted changes\n   [20]\n   $ hg --config extensions.strip= strip --no-backup tip\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg co -qC tip\n \n Should not update to the other topological branch:\n@@ -38,14 +86,7 @@\n   $ hg pull -u ../tt\n   pulling from ../tt\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets 107cefe13e42\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  updated to "800c91d5bfc1: m"\n-  1 other heads for branch "default"\n+  no changes found\n \n   $ cd ../tt\n \n@@ -77,13 +118,9 @@\n   $ hg pull -u ../tt\n   pulling from ../tt\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (-1 heads)\n-  new changesets 483b76ad4309\n-  1 local changesets published\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Similarity between "hg update" and "hg pull -u" in handling bookmark\n ====================================================================\n@@ -93,7 +130,13 @@\n \n   $ echo 4 >> foo\n   $ hg commit -m "#4"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark active-after-pull\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cd ../tt\n \n (1) activating by --rev BOOKMARK\n@@ -104,22 +147,13 @@\n \n   $ hg pull -u -r active-after-pull\n   pulling from $TESTTMP/t\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  adding remote bookmark active-after-pull\n-  added 1 changesets with 1 changes to 1 files\n-  new changesets f815b3da6163\n-  1 local changesets published\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (activating bookmark active-after-pull)\n-\n-  $ hg parents -q\n-  4:f815b3da6163\n-  $ hg bookmarks\n-   * active-after-pull         4:f815b3da6163\n-     active-before-pull        3:483b76ad4309\n+  abort: unknown revision \'active-after-pull\'\n+  [255]\n+\n+  $ hg parents -q\n+  3:483b76ad4309\n+  $ hg bookmarks\n+   * active-before-pull        3:483b76ad4309\n \n (discard pulled changes)\n \n@@ -134,22 +168,13 @@\n \n   $ hg pull -u $TESTTMP/t#active-after-pull\n   pulling from $TESTTMP/t\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  adding remote bookmark active-after-pull\n-  added 1 changesets with 1 changes to 1 files\n-  new changesets f815b3da6163\n-  1 local changesets published\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (activating bookmark active-after-pull)\n-\n-  $ hg parents -q\n-  4:f815b3da6163\n-  $ hg bookmarks\n-   * active-after-pull         4:f815b3da6163\n-     active-before-pull        3:483b76ad4309\n+  abort: unknown revision \'active-after-pull\'\n+  [255]\n+\n+  $ hg parents -q\n+  3:483b76ad4309\n+  $ hg bookmarks\n+   * active-before-pull        3:483b76ad4309\n \n (discard pulled changes)\n \n@@ -162,8 +187,14 @@\n \n   $ cd ../t\n   $ hg bookmark -d active-after-pull\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch bar -q\n   $ hg commit -m "#5 (bar #1)"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cd ../tt\n \n (1) deactivating by --rev REV\n@@ -174,20 +205,13 @@\n \n   $ hg pull -u -r b5e4babfaaa7\n   pulling from $TESTTMP/t\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 1 changes to 1 files\n-  new changesets f815b3da6163:b5e4babfaaa7\n-  1 local changesets published\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (leaving bookmark active-before-pull)\n-\n-  $ hg parents -q\n-  5:b5e4babfaaa7\n-  $ hg bookmarks\n-     active-before-pull        3:483b76ad4309\n+  abort: unknown revision \'b5e4babfaaa7\'\n+  [255]\n+\n+  $ hg parents -q\n+  3:483b76ad4309\n+  $ hg bookmarks\n+   * active-before-pull        3:483b76ad4309\n \n (discard pulled changes)\n \n@@ -202,20 +226,13 @@\n \n   $ hg pull -u -b bar\n   pulling from $TESTTMP/t\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 1 changes to 1 files\n-  new changesets f815b3da6163:b5e4babfaaa7\n-  1 local changesets published\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (leaving bookmark active-before-pull)\n-\n-  $ hg parents -q\n-  5:b5e4babfaaa7\n-  $ hg bookmarks\n-     active-before-pull        3:483b76ad4309\n+  abort: unknown branch \'bar\'\n+  [255]\n+\n+  $ hg parents -q\n+  3:483b76ad4309\n+  $ hg bookmarks\n+   * active-before-pull        3:483b76ad4309\n \n (discard pulled changes)\n \n@@ -230,19 +247,12 @@\n \n   $ hg pull -u $TESTTMP/t#bar\n   pulling from $TESTTMP/t\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 1 changes to 1 files\n-  new changesets f815b3da6163:b5e4babfaaa7\n-  1 local changesets published\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (leaving bookmark active-before-pull)\n-\n-  $ hg parents -q\n-  5:b5e4babfaaa7\n-  $ hg bookmarks\n-     active-before-pull        3:483b76ad4309\n+  abort: unknown revision \'bar\'\n+  [255]\n+\n+  $ hg parents -q\n+  3:483b76ad4309\n+  $ hg bookmarks\n+   * active-before-pull        3:483b76ad4309\n \n   $ cd ..\n', 2104, 2106, 'truncated \\uXXXX escape') decoding diff, sorry

test-push-race.t#strict

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-push-race.t\n+++ c:/hgdev/src/tests/test-push-race.t#strict.err\n@@ -213,8 +213,62 @@\n   searching for changes\n   wrote ready: $TESTTMP/readyfile\n   waiting on: $TESTTMP/watchfile\n-  abort: push failed:\n-  \'remote repository changed while pushing - please try again\'\n+  remote: ** unknown exception encountered, please report by visiting\n+  remote: ** https://mercurial-scm.org/wiki/BugTracker\n+  remote: ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  remote: ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  remote: ** Extensions loaded: \n+  remote: Traceback (most recent call last):\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+  remote:     dispatch.run()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+  remote:     status = dispatch(req)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+  remote:     ret = _runcatch(req) or 0\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+  remote:     return _callcatch(ui, _runcatchfunc)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+  remote:     return scmutil.callcatch(ui, func)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+  remote:     return func()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+  remote:     return _dispatch(req)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+  remote:     lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+  remote:     ret = _runcommand(ui, options, cmd, d)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+  remote:     return cmdfunc()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+  remote:     d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+  remote:     return func(*args, **kwargs)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6403, in serve\n+  remote:     s.serve_forever()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 851, in serve_forever\n+  remote:     self.serveuntil(threading.Event())\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 856, in serveuntil\n+  remote:     _runsshserver(self._ui, self._repo, self._fin, self._fout, ev)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 699, in _runsshserver\n+  remote:     rsp = wireprotov1server.dispatch(repo, proto, request)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotov1server.py", line 83, in dispatch\n+  remote:     return func(repo, proto, *args)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotov1server.py", line 665, in unbundle\n+  remote:     repo, gen, their_heads, b\'serve\', proto.client()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 2645, in unbundle\n+  remote:     lockmod.release(lockandtr[2], lockandtr[1], lockandtr[0])\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+  remote:     lock.release()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+  remote:     self._abort()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+  remote:     entries = self.readjournal()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+  remote:     return func(self, *args, **kwds)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+  remote:     for l in self._file:\n+  remote: TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n \n   $ hg -R server graph\n   o  98217d5a1659 C-A (default)\n@@ -238,21 +292,13 @@\n   $ hg -R ./server pull ./client-racy\n   pulling from ./client-racy\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets a9149a1428e2 (1 drafts)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg -R ./client-other pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets a9149a1428e2 (1 drafts)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  no changes found\n   $ hg -R ./client-racy pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n@@ -264,10 +310,8 @@\n   (run \'hg heads\' to see heads, \'hg merge\' to merge)\n \n   $ hg -R server graph\n-  o  a9149a1428e2 C-B (default)\n-  |\n-  | o  98217d5a1659 C-A (default)\n-  |/\n+  o  98217d5a1659 C-A (default)\n+  |\n   @  842e2fac6304 C-ROOT (default)\n   \n \n@@ -287,10 +331,10 @@\n   $ hg -R client-other push -r \'tip\'\n   pushing to ssh://user@dummy/server\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n-  remote: added 1 changesets with 1 changes to 1 files\n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n+  [255]\n \n   $ release $TESTTMP/watchfile\n \n@@ -380,31 +424,15 @@\n   $ hg -R ./client-other pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  new changesets 59e76faf78bd (1 drafts)\n-  (run \'hg update\' to get a working copy)\n+  no changes found\n   $ hg -R ./client-racy pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  new changesets 51c544a58128 (1 drafts)\n-  (run \'hg update\' to get a working copy)\n-\n-  $ hg -R server graph\n-  o  59e76faf78bd C-D (default)\n-  |\n-  o  a9149a1428e2 C-B (default)\n-  |\n-  | o  51c544a58128 C-C (default)\n-  | |\n-  | o  98217d5a1659 C-A (default)\n-  |/\n+  no changes found\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   @  842e2fac6304 C-ROOT (default)\n   \n \n@@ -421,9 +449,12 @@\n (children of existing head)\n \n   $ hg -R client-racy/ up \'desc("C-C")\'\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo bbb >> client-racy/a\n   $ hg -R client-racy/ commit -m "C-F"\n+  nothing changed\n+  [1]\n \n Pushing\n \n@@ -434,10 +465,10 @@\n   $ hg -R client-other push -fr \'tip\'\n   pushing to ssh://user@dummy/server\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n-  remote: added 1 changesets with 1 changes to 1 files (+1 heads)\n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n+  [255]\n \n   $ release $TESTTMP/watchfile\n \n@@ -538,35 +569,15 @@\n   $ hg -R ./client-other pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  new changesets d9e379a8c432 (1 drafts)\n-  (run \'hg update\' to get a working copy)\n+  no changes found\n   $ hg -R ./client-racy pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets d603e2c0cdd7 (1 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n-\n-  $ hg -R server graph\n-  o  d9e379a8c432 C-F (default)\n-  |\n-  o  51c544a58128 C-C (default)\n-  |\n-  | o  d603e2c0cdd7 C-E (default)\n-  |/\n-  o  98217d5a1659 C-A (default)\n-  |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  |/\n+  no changes found\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   @  842e2fac6304 C-ROOT (default)\n   \n \n@@ -575,14 +586,16 @@\n (update existing head)\n \n   $ hg -R client-other/ up \'desc("C-F")\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo aaa >> client-other/a\n   $ hg -R client-other/ commit -m "C-G"\n \n (new named branch from that existing head)\n \n   $ hg -R client-racy/ up \'desc("C-F")\'\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo bbb >> client-racy/a\n   $ hg -R client-racy/ branch my-first-test-branch\n   marked working directory as branch my-first-test-branch\n@@ -598,10 +611,10 @@\n   $ hg -R client-other push -fr \'tip\'\n   pushing to ssh://user@dummy/server\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n-  remote: added 1 changesets with 1 changes to 1 files\n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n+  [255]\n \n   $ release $TESTTMP/watchfile\n \n@@ -709,39 +722,15 @@\n   $ hg -R ./client-other pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets 833be552cfe6 (1 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n+  no changes found\n   $ hg -R ./client-racy pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets 75d69cba5402 (1 drafts)\n-  (run \'hg heads\' to see heads)\n-\n-  $ hg -R server graph\n-  o  833be552cfe6 C-H (my-first-test-branch)\n-  |\n-  | o  75d69cba5402 C-G (default)\n-  |/\n-  o  d9e379a8c432 C-F (default)\n-  |\n-  o  51c544a58128 C-C (default)\n-  |\n-  | o  d603e2c0cdd7 C-E (default)\n-  |/\n-  o  98217d5a1659 C-A (default)\n-  |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  |/\n+  no changes found\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   @  842e2fac6304 C-ROOT (default)\n   \n \n@@ -754,14 +743,18 @@\n   $ echo aaa >> client-other/a\n   $ hg -R client-other/ branch my-second-test-branch\n   marked working directory as branch my-second-test-branch\n+  (branches are permanent and global, did you want a bookmark?)\n   $ hg -R client-other/ commit -m "C-I"\n \n (children "updating" that same head)\n \n   $ hg -R client-racy/ up \'desc("C-G")\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo bbb >> client-racy/a\n   $ hg -R client-racy/ commit -m "C-J"\n+  nothing changed\n+  [1]\n \n Pushing\n \n@@ -772,10 +765,10 @@\n   $ hg -R client-other push -fr \'tip\' --new-branch\n   pushing to ssh://user@dummy/server\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n-  remote: added 1 changesets with 1 changes to 1 files\n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n+  [255]\n \n   $ release $TESTTMP/watchfile\n \n@@ -895,43 +888,15 @@\n   $ hg -R ./client-other pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets 89420bf00fae (1 drafts)\n-  (run \'hg heads\' to see heads)\n+  no changes found\n   $ hg -R ./client-racy pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets b35ed749f288 (1 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n-\n-  $ hg -R server graph\n-  o  89420bf00fae C-J (default)\n-  |\n-  | o  b35ed749f288 C-I (my-second-test-branch)\n-  |/\n-  o  75d69cba5402 C-G (default)\n-  |\n-  | o  833be552cfe6 C-H (my-first-test-branch)\n-  |/\n-  o  d9e379a8c432 C-F (default)\n-  |\n-  o  51c544a58128 C-C (default)\n-  |\n-  | o  d603e2c0cdd7 C-E (default)\n-  |/\n-  o  98217d5a1659 C-A (default)\n-  |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  |/\n+  no changes found\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   @  842e2fac6304 C-ROOT (default)\n   \n \n@@ -942,14 +907,16 @@\n   $ hg -R client-other/ up \'desc("C-E")\'\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg -R client-other/ merge \'desc("C-D")\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n+  abort: empty revision set\n+  [255]\n   $ hg -R client-other/ commit -m "C-K"\n+  nothing changed\n+  [1]\n \n (update one head)\n \n   $ hg -R client-racy/ up \'desc("C-D")\'\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ echo bbb >> client-racy/b\n   $ hg -R client-racy/ commit -m "C-L"\n \n@@ -962,10 +929,10 @@\n   $ hg -R client-other push -fr \'tip\' --new-branch\n   pushing to ssh://user@dummy/server\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n-  remote: added 1 changesets with 0 changes to 0 files (-1 heads)\n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n+  [255]\n \n   $ release $TESTTMP/watchfile\n \n@@ -976,32 +943,12 @@\n   searching for changes\n   wrote ready: $TESTTMP/readyfile\n   waiting on: $TESTTMP/watchfile\n-  abort: push failed:\n-  \'remote repository changed while pushing - please try again\'\n-\n-  $ hg -R server graph\n-  o    be705100c623 C-K (default)\n-  |\\\n-  | o  d603e2c0cdd7 C-E (default)\n-  | |\n-  o |  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  | | o  51c544a58128 C-C (default)\n-  | |/\n-  o |  a9149a1428e2 C-B (default)\n-  | |\n-  | o  98217d5a1659 C-A (default)\n-  |/\n+  abort: push creates new remote head cac2cead0ff0\n+  (merge or see \'hg help push\' for details about pushing new heads)\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   @  842e2fac6304 C-ROOT (default)\n   \n \n@@ -1022,56 +969,21 @@\n   $ hg -R ./server pull ./client-racy\n   pulling from ./client-racy\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets cac2cead0ff0 (1 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg -R ./client-other pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets cac2cead0ff0 (1 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n+  no changes found\n   $ hg -R ./client-racy pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files\n-  new changesets be705100c623 (1 drafts)\n-  (run \'hg update\' to get a working copy)\n-\n-  $ hg -R server graph\n-  o  cac2cead0ff0 C-L (default)\n-  |\n-  | o  be705100c623 C-K (default)\n-  |/|\n-  | o  d603e2c0cdd7 C-E (default)\n-  | |\n-  o |  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  | | o  51c544a58128 C-C (default)\n-  | |/\n-  o |  a9149a1428e2 C-B (default)\n-  | |\n-  | o  98217d5a1659 C-A (default)\n-  |/\n+  no changes found\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   @  842e2fac6304 C-ROOT (default)\n   \n \n@@ -1081,13 +993,16 @@\n \n   $ echo aaa >> client-other/a\n   $ hg -R client-other/ commit -m "C-M"\n+  created new head\n \n (merge heads)\n \n   $ hg -R client-racy/ merge \'desc("C-K")\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n+  abort: empty revision set\n+  [255]\n   $ hg -R client-racy/ commit -m "C-N"\n+  nothing changed\n+  [1]\n \n Pushing\n \n@@ -1098,10 +1013,10 @@\n   $ hg -R client-other push -fr \'tip\' --new-branch\n   pushing to ssh://user@dummy/server\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n-  remote: added 1 changesets with 1 changes to 1 files\n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n+  [255]\n \n   $ release $TESTTMP/watchfile\n \n@@ -1112,36 +1027,12 @@\n   searching for changes\n   wrote ready: $TESTTMP/readyfile\n   waiting on: $TESTTMP/watchfile\n-  abort: push failed:\n-  \'remote repository changed while pushing - please try again\'\n-\n-  $ hg -R server graph\n-  o  6fd3090135df C-M (default)\n-  |\n-  o    be705100c623 C-K (default)\n-  |\\\n-  | o  d603e2c0cdd7 C-E (default)\n-  | |\n-  +---o  cac2cead0ff0 C-L (default)\n-  | |\n-  o |  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  | | o  51c544a58128 C-C (default)\n-  | |/\n-  o |  a9149a1428e2 C-B (default)\n-  | |\n-  | o  98217d5a1659 C-A (default)\n-  |/\n+  abort: push creates new remote head cac2cead0ff0\n+  (merge or see \'hg help push\' for details about pushing new heads)\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   @  842e2fac6304 C-ROOT (default)\n   \n \n@@ -1165,75 +1056,39 @@\n   $ hg -R ./server pull ./client-racy\n   pulling from ./client-racy\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files\n-  new changesets 866a66e18630 (1 drafts)\n-  (run \'hg update\' to get a working copy)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n (creates named branch on head)\n \n   $ hg -R ./server/ up \'desc("C-N")\'\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ hg -R ./server/ branch other\n   marked working directory as branch other\n+  (branches are permanent and global, did you want a bookmark?)\n   $ hg -R ./server/ ci -m "C-Z"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg -R ./server/ up null\n-  0 files updated, 0 files merged, 3 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n \n (sync client)\n \n   $ hg -R ./client-other pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 0 changes to 0 files\n-  new changesets 866a66e18630:55a6f1c01b48 (2 drafts)\n-  (run \'hg update\' to get a working copy)\n+  no changes found\n   $ hg -R ./client-racy pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets 6fd3090135df:55a6f1c01b48 (2 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n-\n-  $ hg -R server graph\n-  o  55a6f1c01b48 C-Z (other)\n-  |\n-  o    866a66e18630 C-N (default)\n-  |\\\n-  +---o  6fd3090135df C-M (default)\n-  | |\n-  | o  cac2cead0ff0 C-L (default)\n-  | |\n-  o |  be705100c623 C-K (default)\n-  |\\|\n-  o |  d603e2c0cdd7 C-E (default)\n-  | |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  +---o  51c544a58128 C-C (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  | |\n-  o |  98217d5a1659 C-A (default)\n-  |/\n+  no changes found\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   o  842e2fac6304 C-ROOT (default)\n   \n \n@@ -1242,24 +1097,26 @@\n (update default head through another named branch one)\n \n   $ hg -R client-other/ up \'desc("C-Z")\'\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo aaa >> client-other/a\n   $ hg -R client-other/ commit -m "C-O"\n   $ echo aaa >> client-other/a\n   $ hg -R client-other/ branch --force default\n   marked working directory as branch default\n   $ hg -R client-other/ commit -m "C-P"\n-  created new head\n \n (update default head)\n \n   $ hg -R client-racy/ up \'desc("C-Z")\'\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo bbb >> client-other/a\n   $ hg -R client-racy/ branch --force default\n   marked working directory as branch default\n   $ hg -R client-racy/ commit -m "C-Q"\n-  created new head\n+  nothing changed\n+  [1]\n \n Pushing\n \n@@ -1270,10 +1127,10 @@\n   $ hg -R client-other push -fr \'tip\' --new-branch\n   pushing to ssh://user@dummy/server\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n-  remote: added 2 changesets with 1 changes to 1 files\n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n+  [255]\n \n   $ release $TESTTMP/watchfile\n \n@@ -1284,44 +1141,12 @@\n   searching for changes\n   wrote ready: $TESTTMP/readyfile\n   waiting on: $TESTTMP/watchfile\n-  abort: push failed:\n-  \'remote repository changed while pushing - please try again\'\n-\n-  $ hg -R server graph\n-  o  1b58ee3f79e5 C-P (default)\n-  |\n-  o  d0a85b2252a9 C-O (other)\n-  |\n-  o  55a6f1c01b48 C-Z (other)\n-  |\n-  o    866a66e18630 C-N (default)\n-  |\\\n-  +---o  6fd3090135df C-M (default)\n-  | |\n-  | o  cac2cead0ff0 C-L (default)\n-  | |\n-  o |  be705100c623 C-K (default)\n-  |\\|\n-  o |  d603e2c0cdd7 C-E (default)\n-  | |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  +---o  51c544a58128 C-C (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  | |\n-  o |  98217d5a1659 C-A (default)\n-  |/\n+  abort: push creates new remote head cac2cead0ff0\n+  (merge or see \'hg help push\' for details about pushing new heads)\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   o  842e2fac6304 C-ROOT (default)\n   \n \n@@ -1345,68 +1170,21 @@\n   $ hg -R ./server pull ./client-racy\n   pulling from ./client-racy\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files (+1 heads)\n-  new changesets b0ee3d6f51bc (1 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg -R ./client-other pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files (+1 heads)\n-  new changesets b0ee3d6f51bc (1 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n+  no changes found\n   $ hg -R ./client-racy pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets d0a85b2252a9:1b58ee3f79e5 (2 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n-\n-  $ hg -R server graph\n-  o  b0ee3d6f51bc C-Q (default)\n-  |\n-  | o  1b58ee3f79e5 C-P (default)\n-  | |\n-  | o  d0a85b2252a9 C-O (other)\n-  |/\n-  o  55a6f1c01b48 C-Z (other)\n-  |\n-  o    866a66e18630 C-N (default)\n-  |\\\n-  +---o  6fd3090135df C-M (default)\n-  | |\n-  | o  cac2cead0ff0 C-L (default)\n-  | |\n-  o |  be705100c623 C-K (default)\n-  |\\|\n-  o |  d603e2c0cdd7 C-E (default)\n-  | |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  +---o  51c544a58128 C-C (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  | |\n-  o |  98217d5a1659 C-A (default)\n-  |/\n+  no changes found\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   o  842e2fac6304 C-ROOT (default)\n   \n \n@@ -1420,19 +1198,20 @@\n   $ hg -R client-other/ branch --force other\n   marked working directory as branch other\n   $ hg -R client-other/ commit -m "C-R"\n-  created new head\n \n (update \'other named brnach through a \'default\' changeset\')\n \n   $ hg -R client-racy/ up \'desc("C-P")\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo bbb >> client-racy/a\n   $ hg -R client-racy/ commit -m "C-S"\n+  nothing changed\n+  [1]\n   $ echo bbb >> client-racy/a\n   $ hg -R client-racy/ branch --force other\n   marked working directory as branch other\n   $ hg -R client-racy/ commit -m "C-T"\n-  created new head\n \n Pushing\n \n@@ -1443,10 +1222,10 @@\n   $ hg -R client-other push -fr \'tip\' --new-branch\n   pushing to ssh://user@dummy/server\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n-  remote: added 1 changesets with 1 changes to 1 files\n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n+  [255]\n \n   $ release $TESTTMP/watchfile\n \n@@ -1457,48 +1236,12 @@\n   searching for changes\n   wrote ready: $TESTTMP/readyfile\n   waiting on: $TESTTMP/watchfile\n-  abort: push failed:\n-  \'remote repository changed while pushing - please try again\'\n-\n-  $ hg -R server graph\n-  o  de7b9e2ba3f6 C-R (other)\n-  |\n-  o  1b58ee3f79e5 C-P (default)\n-  |\n-  o  d0a85b2252a9 C-O (other)\n-  |\n-  | o  b0ee3d6f51bc C-Q (default)\n-  |/\n-  o  55a6f1c01b48 C-Z (other)\n-  |\n-  o    866a66e18630 C-N (default)\n-  |\\\n-  +---o  6fd3090135df C-M (default)\n-  | |\n-  | o  cac2cead0ff0 C-L (default)\n-  | |\n-  o |  be705100c623 C-K (default)\n-  |\\|\n-  o |  d603e2c0cdd7 C-E (default)\n-  | |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  +---o  51c544a58128 C-C (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  | |\n-  o |  98217d5a1659 C-A (default)\n-  |/\n+  abort: push creates new remote branches: other\n+  (use \'hg push --new-branch\' to create new remote branches)\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   o  842e2fac6304 C-ROOT (default)\n   \n \n@@ -1516,74 +1259,21 @@\n   $ hg -R ./server pull ./client-racy\n   pulling from ./client-racy\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 2 changes to 1 files (+1 heads)\n-  new changesets 2efd43f7b5ba:3d57ed3c1091 (2 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg -R ./client-other pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 2 changes to 1 files (+1 heads)\n-  new changesets 2efd43f7b5ba:3d57ed3c1091 (2 drafts)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  no changes found\n   $ hg -R ./client-racy pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets de7b9e2ba3f6 (1 drafts)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n-\n-  $ hg -R server graph\n-  o  3d57ed3c1091 C-T (other)\n-  |\n-  o  2efd43f7b5ba C-S (default)\n-  |\n-  | o  de7b9e2ba3f6 C-R (other)\n-  |/\n-  o  1b58ee3f79e5 C-P (default)\n-  |\n-  o  d0a85b2252a9 C-O (other)\n-  |\n-  | o  b0ee3d6f51bc C-Q (default)\n-  |/\n-  o  55a6f1c01b48 C-Z (other)\n-  |\n-  o    866a66e18630 C-N (default)\n-  |\\\n-  +---o  6fd3090135df C-M (default)\n-  | |\n-  | o  cac2cead0ff0 C-L (default)\n-  | |\n-  o |  be705100c623 C-K (default)\n-  |\\|\n-  o |  d603e2c0cdd7 C-E (default)\n-  | |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  +---o  51c544a58128 C-C (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  | |\n-  o |  98217d5a1659 C-A (default)\n-  |/\n+  no changes found\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   o  842e2fac6304 C-ROOT (default)\n   \n \n@@ -1592,14 +1282,16 @@\n (continue existing head)\n \n   $ hg -R client-other/ up \'desc("C-Q")\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo aaa >> client-other/a\n   $ hg -R client-other/ commit -m "C-U"\n \n (new topo branch obsoleting that same head)\n \n   $ hg -R client-racy/ up \'desc("C-Z")\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo bbb >> client-racy/a\n   $ hg -R client-racy/ branch --force default\n   marked working directory as branch default\n@@ -1620,10 +1312,10 @@\n   $ hg -R client-other push -fr \'tip\' --new-branch\n   pushing to ssh://user@dummy/server\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n-  remote: added 1 changesets with 0 changes to 0 files\n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n+  [255]\n \n   $ release $TESTTMP/watchfile\n \n@@ -1634,55 +1326,13 @@\n   searching for changes\n   wrote ready: $TESTTMP/readyfile\n   waiting on: $TESTTMP/watchfile\n-  abort: push failed:\n-  \'remote repository changed while pushing - please try again\'\n+  abort: push creates new remote branches: other\n+  (use \'hg push --new-branch\' to create new remote branches)\n \n   $ hg -R server debugobsolete\n   $ hg -R server graph\n-  o  a98a47d8b85b C-U (default)\n-  |\n-  o  b0ee3d6f51bc C-Q (default)\n-  |\n-  | o  3d57ed3c1091 C-T (other)\n-  | |\n-  | o  2efd43f7b5ba C-S (default)\n-  | |\n-  | | o  de7b9e2ba3f6 C-R (other)\n-  | |/\n-  | o  1b58ee3f79e5 C-P (default)\n-  | |\n-  | o  d0a85b2252a9 C-O (other)\n-  |/\n-  o  55a6f1c01b48 C-Z (other)\n-  |\n-  o    866a66e18630 C-N (default)\n-  |\\\n-  +---o  6fd3090135df C-M (default)\n-  | |\n-  | o  cac2cead0ff0 C-L (default)\n-  | |\n-  o |  be705100c623 C-K (default)\n-  |\\|\n-  o |  d603e2c0cdd7 C-E (default)\n-  | |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  +---o  51c544a58128 C-C (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  | |\n-  o |  98217d5a1659 C-A (default)\n-  |/\n+  o  98217d5a1659 C-A (default)\n+  |\n   o  842e2fac6304 C-ROOT (default)\n   \n \n@@ -1702,87 +1352,22 @@\n   $ hg -R ./server pull ./client-racy\n   pulling from ./client-racy\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n-  1 new orphan changesets\n-  new changesets 720c5163ecf6 (1 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg -R ./client-other pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n-  1 new orphan changesets\n-  new changesets 720c5163ecf6 (1 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n+  no changes found\n   $ hg -R ./client-racy pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files\n-  1 new orphan changesets\n-  new changesets a98a47d8b85b (1 drafts)\n-  (run \'hg update\' to get a working copy)\n+  no changes found\n \n   $ hg -R server debugobsolete\n-  b0ee3d6f51bc4c0ca6d4f2907708027a6c376233 720c5163ecf64dcc6216bee2d62bf3edb1882499 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  $ hg -R server graph\n-  o  720c5163ecf6 C-V (default)\n-  |\n-  | *  a98a47d8b85b C-U (default)\n-  | |\n-  | x  b0ee3d6f51bc C-Q (default)\n-  |/\n-  | o  3d57ed3c1091 C-T (other)\n-  | |\n-  | o  2efd43f7b5ba C-S (default)\n-  | |\n-  | | o  de7b9e2ba3f6 C-R (other)\n-  | |/\n-  | o  1b58ee3f79e5 C-P (default)\n-  | |\n-  | o  d0a85b2252a9 C-O (other)\n-  |/\n-  o  55a6f1c01b48 C-Z (other)\n-  |\n-  o    866a66e18630 C-N (default)\n-  |\\\n-  +---o  6fd3090135df C-M (default)\n-  | |\n-  | o  cac2cead0ff0 C-L (default)\n-  | |\n-  o |  be705100c623 C-K (default)\n-  |\\|\n-  o |  d603e2c0cdd7 C-E (default)\n-  | |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  +---o  51c544a58128 C-C (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  | |\n-  o |  98217d5a1659 C-A (default)\n-  |/\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   o  842e2fac6304 C-ROOT (default)\n   \n \n@@ -1791,12 +1376,12 @@\n (new topo branch obsoleting that same head)\n \n   $ hg -R client-other/ up \'desc("C-Q")\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo bbb >> client-other/a\n   $ hg -R client-other/ branch --force default\n   marked working directory as branch default\n   $ hg -R client-other/ commit -m "C-W"\n-  1 new orphan changesets\n   created new head\n   $ ID_V=`hg -R client-other log -T \'{node}\\n\' -r \'desc("C-V")\'`\n   $ ID_W=`hg -R client-other log -T \'{node}\\n\' -r \'desc("C-W")\'`\n@@ -1808,6 +1393,8 @@\n \n   $ echo aaa >> client-racy/a\n   $ hg -R client-racy/ commit -m "C-X"\n+  nothing changed\n+  [1]\n \n Pushing\n \n@@ -1818,13 +1405,10 @@\n   $ hg -R client-other push -fr \'tip\' --new-branch\n   pushing to ssh://user@dummy/server\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n-  remote: added 1 changesets with 0 changes to 1 files (+1 heads)\n-  remote: 1 new obsolescence markers\n-  remote: obsoleted 1 changesets\n-  remote: 1 new orphan changesets\n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n+  [255]\n \n   $ release $TESTTMP/watchfile\n \n@@ -1835,60 +1419,12 @@\n   searching for changes\n   wrote ready: $TESTTMP/readyfile\n   waiting on: $TESTTMP/watchfile\n-  abort: push failed:\n-  \'remote repository changed while pushing - please try again\'\n+  abort: push creates new remote branches: other\n+  (use \'hg push --new-branch\' to create new remote branches)\n \n   $ hg -R server debugobsolete\n-  b0ee3d6f51bc4c0ca6d4f2907708027a6c376233 720c5163ecf64dcc6216bee2d62bf3edb1882499 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  720c5163ecf64dcc6216bee2d62bf3edb1882499 39bc0598afe90ab18da460bafecc0fa953b77596 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n   $ hg -R server graph --hidden\n-  *  39bc0598afe9 C-W (default)\n-  |\n-  | *  a98a47d8b85b C-U (default)\n-  |/\n-  x  b0ee3d6f51bc C-Q (default)\n-  |\n-  | o  3d57ed3c1091 C-T (other)\n-  | |\n-  | o  2efd43f7b5ba C-S (default)\n-  | |\n-  | | o  de7b9e2ba3f6 C-R (other)\n-  | |/\n-  | o  1b58ee3f79e5 C-P (default)\n-  | |\n-  | o  d0a85b2252a9 C-O (other)\n-  |/\n-  | x  720c5163ecf6 C-V (default)\n-  |/\n-  o  55a6f1c01b48 C-Z (other)\n-  |\n-  o    866a66e18630 C-N (default)\n-  |\\\n-  +---o  6fd3090135df C-M (default)\n-  | |\n-  | o  cac2cead0ff0 C-L (default)\n-  | |\n-  o |  be705100c623 C-K (default)\n-  |\\|\n-  o |  d603e2c0cdd7 C-E (default)\n-  | |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  +---o  51c544a58128 C-C (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  | |\n-  o |  98217d5a1659 C-A (default)\n-  |/\n+  o  98217d5a1659 C-A (default)\n+  |\n   o  842e2fac6304 C-ROOT (default)\n   \n', 2422, 2424, 'truncated \\uXXXX escape') decoding diff, sorry

test-push-race.t#unrelated

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-push-race.t\n+++ c:/hgdev/src/tests/test-push-race.t#unrelated.err\n@@ -213,8 +213,62 @@\n   searching for changes\n   wrote ready: $TESTTMP/readyfile\n   waiting on: $TESTTMP/watchfile\n-  abort: push failed:\n-  \'remote repository changed while pushing - please try again\'\n+  remote: ** unknown exception encountered, please report by visiting\n+  remote: ** https://mercurial-scm.org/wiki/BugTracker\n+  remote: ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  remote: ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  remote: ** Extensions loaded: \n+  remote: Traceback (most recent call last):\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+  remote:     dispatch.run()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+  remote:     status = dispatch(req)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+  remote:     ret = _runcatch(req) or 0\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+  remote:     return _callcatch(ui, _runcatchfunc)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+  remote:     return scmutil.callcatch(ui, func)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+  remote:     return func()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+  remote:     return _dispatch(req)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+  remote:     lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+  remote:     ret = _runcommand(ui, options, cmd, d)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+  remote:     return cmdfunc()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+  remote:     d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+  remote:     return func(*args, **kwargs)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6403, in serve\n+  remote:     s.serve_forever()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 851, in serve_forever\n+  remote:     self.serveuntil(threading.Event())\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 856, in serveuntil\n+  remote:     _runsshserver(self._ui, self._repo, self._fin, self._fout, ev)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 699, in _runsshserver\n+  remote:     rsp = wireprotov1server.dispatch(repo, proto, request)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotov1server.py", line 83, in dispatch\n+  remote:     return func(repo, proto, *args)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotov1server.py", line 665, in unbundle\n+  remote:     repo, gen, their_heads, b\'serve\', proto.client()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 2645, in unbundle\n+  remote:     lockmod.release(lockandtr[2], lockandtr[1], lockandtr[0])\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+  remote:     lock.release()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+  remote:     self._abort()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+  remote:     entries = self.readjournal()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+  remote:     return func(self, *args, **kwds)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+  remote:     for l in self._file:\n+  remote: TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n \n   $ hg -R server graph\n   o  98217d5a1659 C-A (default)\n@@ -238,21 +292,13 @@\n   $ hg -R ./server pull ./client-racy\n   pulling from ./client-racy\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets a9149a1428e2 (1 drafts)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg -R ./client-other pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets a9149a1428e2 (1 drafts)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  no changes found\n   $ hg -R ./client-racy pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n@@ -264,10 +310,8 @@\n   (run \'hg heads\' to see heads, \'hg merge\' to merge)\n \n   $ hg -R server graph\n-  o  a9149a1428e2 C-B (default)\n-  |\n-  | o  98217d5a1659 C-A (default)\n-  |/\n+  o  98217d5a1659 C-A (default)\n+  |\n   @  842e2fac6304 C-ROOT (default)\n   \n \n@@ -287,10 +331,10 @@\n   $ hg -R client-other push -r \'tip\'\n   pushing to ssh://user@dummy/server\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n-  remote: added 1 changesets with 1 changes to 1 files\n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n+  [255]\n \n   $ release $TESTTMP/watchfile\n \n@@ -380,31 +424,15 @@\n   $ hg -R ./client-other pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  new changesets 59e76faf78bd (1 drafts)\n-  (run \'hg update\' to get a working copy)\n+  no changes found\n   $ hg -R ./client-racy pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  new changesets 51c544a58128 (1 drafts)\n-  (run \'hg update\' to get a working copy)\n-\n-  $ hg -R server graph\n-  o  59e76faf78bd C-D (default)\n-  |\n-  o  a9149a1428e2 C-B (default)\n-  |\n-  | o  51c544a58128 C-C (default)\n-  | |\n-  | o  98217d5a1659 C-A (default)\n-  |/\n+  no changes found\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   @  842e2fac6304 C-ROOT (default)\n   \n \n@@ -421,9 +449,12 @@\n (children of existing head)\n \n   $ hg -R client-racy/ up \'desc("C-C")\'\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo bbb >> client-racy/a\n   $ hg -R client-racy/ commit -m "C-F"\n+  nothing changed\n+  [1]\n \n Pushing\n \n@@ -434,10 +465,10 @@\n   $ hg -R client-other push -fr \'tip\'\n   pushing to ssh://user@dummy/server\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n-  remote: added 1 changesets with 1 changes to 1 files (+1 heads)\n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n+  [255]\n \n   $ release $TESTTMP/watchfile\n \n@@ -538,35 +569,15 @@\n   $ hg -R ./client-other pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  new changesets d9e379a8c432 (1 drafts)\n-  (run \'hg update\' to get a working copy)\n+  no changes found\n   $ hg -R ./client-racy pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets d603e2c0cdd7 (1 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n-\n-  $ hg -R server graph\n-  o  d9e379a8c432 C-F (default)\n-  |\n-  o  51c544a58128 C-C (default)\n-  |\n-  | o  d603e2c0cdd7 C-E (default)\n-  |/\n-  o  98217d5a1659 C-A (default)\n-  |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  |/\n+  no changes found\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   @  842e2fac6304 C-ROOT (default)\n   \n \n@@ -575,14 +586,16 @@\n (update existing head)\n \n   $ hg -R client-other/ up \'desc("C-F")\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo aaa >> client-other/a\n   $ hg -R client-other/ commit -m "C-G"\n \n (new named branch from that existing head)\n \n   $ hg -R client-racy/ up \'desc("C-F")\'\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo bbb >> client-racy/a\n   $ hg -R client-racy/ branch my-first-test-branch\n   marked working directory as branch my-first-test-branch\n@@ -598,10 +611,10 @@\n   $ hg -R client-other push -fr \'tip\'\n   pushing to ssh://user@dummy/server\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n-  remote: added 1 changesets with 1 changes to 1 files\n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n+  [255]\n \n   $ release $TESTTMP/watchfile\n \n@@ -709,39 +722,15 @@\n   $ hg -R ./client-other pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets 833be552cfe6 (1 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n+  no changes found\n   $ hg -R ./client-racy pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets 75d69cba5402 (1 drafts)\n-  (run \'hg heads\' to see heads)\n-\n-  $ hg -R server graph\n-  o  833be552cfe6 C-H (my-first-test-branch)\n-  |\n-  | o  75d69cba5402 C-G (default)\n-  |/\n-  o  d9e379a8c432 C-F (default)\n-  |\n-  o  51c544a58128 C-C (default)\n-  |\n-  | o  d603e2c0cdd7 C-E (default)\n-  |/\n-  o  98217d5a1659 C-A (default)\n-  |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  |/\n+  no changes found\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   @  842e2fac6304 C-ROOT (default)\n   \n \n@@ -754,14 +743,18 @@\n   $ echo aaa >> client-other/a\n   $ hg -R client-other/ branch my-second-test-branch\n   marked working directory as branch my-second-test-branch\n+  (branches are permanent and global, did you want a bookmark?)\n   $ hg -R client-other/ commit -m "C-I"\n \n (children "updating" that same head)\n \n   $ hg -R client-racy/ up \'desc("C-G")\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo bbb >> client-racy/a\n   $ hg -R client-racy/ commit -m "C-J"\n+  nothing changed\n+  [1]\n \n Pushing\n \n@@ -772,10 +765,10 @@\n   $ hg -R client-other push -fr \'tip\' --new-branch\n   pushing to ssh://user@dummy/server\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n-  remote: added 1 changesets with 1 changes to 1 files\n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n+  [255]\n \n   $ release $TESTTMP/watchfile\n \n@@ -895,43 +888,15 @@\n   $ hg -R ./client-other pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets 89420bf00fae (1 drafts)\n-  (run \'hg heads\' to see heads)\n+  no changes found\n   $ hg -R ./client-racy pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets b35ed749f288 (1 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n-\n-  $ hg -R server graph\n-  o  89420bf00fae C-J (default)\n-  |\n-  | o  b35ed749f288 C-I (my-second-test-branch)\n-  |/\n-  o  75d69cba5402 C-G (default)\n-  |\n-  | o  833be552cfe6 C-H (my-first-test-branch)\n-  |/\n-  o  d9e379a8c432 C-F (default)\n-  |\n-  o  51c544a58128 C-C (default)\n-  |\n-  | o  d603e2c0cdd7 C-E (default)\n-  |/\n-  o  98217d5a1659 C-A (default)\n-  |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  |/\n+  no changes found\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   @  842e2fac6304 C-ROOT (default)\n   \n \n@@ -942,14 +907,16 @@\n   $ hg -R client-other/ up \'desc("C-E")\'\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg -R client-other/ merge \'desc("C-D")\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n+  abort: empty revision set\n+  [255]\n   $ hg -R client-other/ commit -m "C-K"\n+  nothing changed\n+  [1]\n \n (update one head)\n \n   $ hg -R client-racy/ up \'desc("C-D")\'\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ echo bbb >> client-racy/b\n   $ hg -R client-racy/ commit -m "C-L"\n \n@@ -962,10 +929,10 @@\n   $ hg -R client-other push -fr \'tip\' --new-branch\n   pushing to ssh://user@dummy/server\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n-  remote: added 1 changesets with 0 changes to 0 files (-1 heads)\n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n+  [255]\n \n   $ release $TESTTMP/watchfile\n \n@@ -976,32 +943,12 @@\n   searching for changes\n   wrote ready: $TESTTMP/readyfile\n   waiting on: $TESTTMP/watchfile\n-  abort: push failed:\n-  \'remote repository changed while pushing - please try again\'\n-\n-  $ hg -R server graph\n-  o    be705100c623 C-K (default)\n-  |\\\n-  | o  d603e2c0cdd7 C-E (default)\n-  | |\n-  o |  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  | | o  51c544a58128 C-C (default)\n-  | |/\n-  o |  a9149a1428e2 C-B (default)\n-  | |\n-  | o  98217d5a1659 C-A (default)\n-  |/\n+  abort: push creates new remote head cac2cead0ff0\n+  (merge or see \'hg help push\' for details about pushing new heads)\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   @  842e2fac6304 C-ROOT (default)\n   \n \n@@ -1022,56 +969,21 @@\n   $ hg -R ./server pull ./client-racy\n   pulling from ./client-racy\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets cac2cead0ff0 (1 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg -R ./client-other pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets cac2cead0ff0 (1 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n+  no changes found\n   $ hg -R ./client-racy pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files\n-  new changesets be705100c623 (1 drafts)\n-  (run \'hg update\' to get a working copy)\n-\n-  $ hg -R server graph\n-  o  cac2cead0ff0 C-L (default)\n-  |\n-  | o  be705100c623 C-K (default)\n-  |/|\n-  | o  d603e2c0cdd7 C-E (default)\n-  | |\n-  o |  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  | | o  51c544a58128 C-C (default)\n-  | |/\n-  o |  a9149a1428e2 C-B (default)\n-  | |\n-  | o  98217d5a1659 C-A (default)\n-  |/\n+  no changes found\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   @  842e2fac6304 C-ROOT (default)\n   \n \n@@ -1081,13 +993,16 @@\n \n   $ echo aaa >> client-other/a\n   $ hg -R client-other/ commit -m "C-M"\n+  created new head\n \n (merge heads)\n \n   $ hg -R client-racy/ merge \'desc("C-K")\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n+  abort: empty revision set\n+  [255]\n   $ hg -R client-racy/ commit -m "C-N"\n+  nothing changed\n+  [1]\n \n Pushing\n \n@@ -1098,10 +1013,10 @@\n   $ hg -R client-other push -fr \'tip\' --new-branch\n   pushing to ssh://user@dummy/server\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n-  remote: added 1 changesets with 1 changes to 1 files\n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n+  [255]\n \n   $ release $TESTTMP/watchfile\n \n@@ -1112,36 +1027,12 @@\n   searching for changes\n   wrote ready: $TESTTMP/readyfile\n   waiting on: $TESTTMP/watchfile\n-  abort: push failed:\n-  \'remote repository changed while pushing - please try again\'\n-\n-  $ hg -R server graph\n-  o  6fd3090135df C-M (default)\n-  |\n-  o    be705100c623 C-K (default)\n-  |\\\n-  | o  d603e2c0cdd7 C-E (default)\n-  | |\n-  +---o  cac2cead0ff0 C-L (default)\n-  | |\n-  o |  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  | | o  51c544a58128 C-C (default)\n-  | |/\n-  o |  a9149a1428e2 C-B (default)\n-  | |\n-  | o  98217d5a1659 C-A (default)\n-  |/\n+  abort: push creates new remote head cac2cead0ff0\n+  (merge or see \'hg help push\' for details about pushing new heads)\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   @  842e2fac6304 C-ROOT (default)\n   \n \n@@ -1165,75 +1056,39 @@\n   $ hg -R ./server pull ./client-racy\n   pulling from ./client-racy\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files\n-  new changesets 866a66e18630 (1 drafts)\n-  (run \'hg update\' to get a working copy)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n (creates named branch on head)\n \n   $ hg -R ./server/ up \'desc("C-N")\'\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ hg -R ./server/ branch other\n   marked working directory as branch other\n+  (branches are permanent and global, did you want a bookmark?)\n   $ hg -R ./server/ ci -m "C-Z"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg -R ./server/ up null\n-  0 files updated, 0 files merged, 3 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n \n (sync client)\n \n   $ hg -R ./client-other pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 0 changes to 0 files\n-  new changesets 866a66e18630:55a6f1c01b48 (2 drafts)\n-  (run \'hg update\' to get a working copy)\n+  no changes found\n   $ hg -R ./client-racy pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets 6fd3090135df:55a6f1c01b48 (2 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n-\n-  $ hg -R server graph\n-  o  55a6f1c01b48 C-Z (other)\n-  |\n-  o    866a66e18630 C-N (default)\n-  |\\\n-  +---o  6fd3090135df C-M (default)\n-  | |\n-  | o  cac2cead0ff0 C-L (default)\n-  | |\n-  o |  be705100c623 C-K (default)\n-  |\\|\n-  o |  d603e2c0cdd7 C-E (default)\n-  | |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  +---o  51c544a58128 C-C (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  | |\n-  o |  98217d5a1659 C-A (default)\n-  |/\n+  no changes found\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   o  842e2fac6304 C-ROOT (default)\n   \n \n@@ -1242,24 +1097,26 @@\n (update default head through another named branch one)\n \n   $ hg -R client-other/ up \'desc("C-Z")\'\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo aaa >> client-other/a\n   $ hg -R client-other/ commit -m "C-O"\n   $ echo aaa >> client-other/a\n   $ hg -R client-other/ branch --force default\n   marked working directory as branch default\n   $ hg -R client-other/ commit -m "C-P"\n-  created new head\n \n (update default head)\n \n   $ hg -R client-racy/ up \'desc("C-Z")\'\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo bbb >> client-other/a\n   $ hg -R client-racy/ branch --force default\n   marked working directory as branch default\n   $ hg -R client-racy/ commit -m "C-Q"\n-  created new head\n+  nothing changed\n+  [1]\n \n Pushing\n \n@@ -1270,10 +1127,10 @@\n   $ hg -R client-other push -fr \'tip\' --new-branch\n   pushing to ssh://user@dummy/server\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n-  remote: added 2 changesets with 1 changes to 1 files\n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n+  [255]\n \n   $ release $TESTTMP/watchfile\n \n@@ -1284,44 +1141,12 @@\n   searching for changes\n   wrote ready: $TESTTMP/readyfile\n   waiting on: $TESTTMP/watchfile\n-  abort: push failed:\n-  \'remote repository changed while pushing - please try again\'\n-\n-  $ hg -R server graph\n-  o  1b58ee3f79e5 C-P (default)\n-  |\n-  o  d0a85b2252a9 C-O (other)\n-  |\n-  o  55a6f1c01b48 C-Z (other)\n-  |\n-  o    866a66e18630 C-N (default)\n-  |\\\n-  +---o  6fd3090135df C-M (default)\n-  | |\n-  | o  cac2cead0ff0 C-L (default)\n-  | |\n-  o |  be705100c623 C-K (default)\n-  |\\|\n-  o |  d603e2c0cdd7 C-E (default)\n-  | |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  +---o  51c544a58128 C-C (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  | |\n-  o |  98217d5a1659 C-A (default)\n-  |/\n+  abort: push creates new remote head cac2cead0ff0\n+  (merge or see \'hg help push\' for details about pushing new heads)\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   o  842e2fac6304 C-ROOT (default)\n   \n \n@@ -1345,68 +1170,21 @@\n   $ hg -R ./server pull ./client-racy\n   pulling from ./client-racy\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files (+1 heads)\n-  new changesets b0ee3d6f51bc (1 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg -R ./client-other pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files (+1 heads)\n-  new changesets b0ee3d6f51bc (1 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n+  no changes found\n   $ hg -R ./client-racy pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets d0a85b2252a9:1b58ee3f79e5 (2 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n-\n-  $ hg -R server graph\n-  o  b0ee3d6f51bc C-Q (default)\n-  |\n-  | o  1b58ee3f79e5 C-P (default)\n-  | |\n-  | o  d0a85b2252a9 C-O (other)\n-  |/\n-  o  55a6f1c01b48 C-Z (other)\n-  |\n-  o    866a66e18630 C-N (default)\n-  |\\\n-  +---o  6fd3090135df C-M (default)\n-  | |\n-  | o  cac2cead0ff0 C-L (default)\n-  | |\n-  o |  be705100c623 C-K (default)\n-  |\\|\n-  o |  d603e2c0cdd7 C-E (default)\n-  | |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  +---o  51c544a58128 C-C (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  | |\n-  o |  98217d5a1659 C-A (default)\n-  |/\n+  no changes found\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   o  842e2fac6304 C-ROOT (default)\n   \n \n@@ -1420,19 +1198,20 @@\n   $ hg -R client-other/ branch --force other\n   marked working directory as branch other\n   $ hg -R client-other/ commit -m "C-R"\n-  created new head\n \n (update \'other named brnach through a \'default\' changeset\')\n \n   $ hg -R client-racy/ up \'desc("C-P")\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo bbb >> client-racy/a\n   $ hg -R client-racy/ commit -m "C-S"\n+  nothing changed\n+  [1]\n   $ echo bbb >> client-racy/a\n   $ hg -R client-racy/ branch --force other\n   marked working directory as branch other\n   $ hg -R client-racy/ commit -m "C-T"\n-  created new head\n \n Pushing\n \n@@ -1443,10 +1222,10 @@\n   $ hg -R client-other push -fr \'tip\' --new-branch\n   pushing to ssh://user@dummy/server\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n-  remote: added 1 changesets with 1 changes to 1 files\n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n+  [255]\n \n   $ release $TESTTMP/watchfile\n \n@@ -1457,48 +1236,12 @@\n   searching for changes\n   wrote ready: $TESTTMP/readyfile\n   waiting on: $TESTTMP/watchfile\n-  abort: push failed:\n-  \'remote repository changed while pushing - please try again\'\n-\n-  $ hg -R server graph\n-  o  de7b9e2ba3f6 C-R (other)\n-  |\n-  o  1b58ee3f79e5 C-P (default)\n-  |\n-  o  d0a85b2252a9 C-O (other)\n-  |\n-  | o  b0ee3d6f51bc C-Q (default)\n-  |/\n-  o  55a6f1c01b48 C-Z (other)\n-  |\n-  o    866a66e18630 C-N (default)\n-  |\\\n-  +---o  6fd3090135df C-M (default)\n-  | |\n-  | o  cac2cead0ff0 C-L (default)\n-  | |\n-  o |  be705100c623 C-K (default)\n-  |\\|\n-  o |  d603e2c0cdd7 C-E (default)\n-  | |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  +---o  51c544a58128 C-C (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  | |\n-  o |  98217d5a1659 C-A (default)\n-  |/\n+  abort: push creates new remote branches: other\n+  (use \'hg push --new-branch\' to create new remote branches)\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   o  842e2fac6304 C-ROOT (default)\n   \n \n@@ -1516,74 +1259,21 @@\n   $ hg -R ./server pull ./client-racy\n   pulling from ./client-racy\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 2 changes to 1 files (+1 heads)\n-  new changesets 2efd43f7b5ba:3d57ed3c1091 (2 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg -R ./client-other pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 2 changes to 1 files (+1 heads)\n-  new changesets 2efd43f7b5ba:3d57ed3c1091 (2 drafts)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  no changes found\n   $ hg -R ./client-racy pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets de7b9e2ba3f6 (1 drafts)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n-\n-  $ hg -R server graph\n-  o  3d57ed3c1091 C-T (other)\n-  |\n-  o  2efd43f7b5ba C-S (default)\n-  |\n-  | o  de7b9e2ba3f6 C-R (other)\n-  |/\n-  o  1b58ee3f79e5 C-P (default)\n-  |\n-  o  d0a85b2252a9 C-O (other)\n-  |\n-  | o  b0ee3d6f51bc C-Q (default)\n-  |/\n-  o  55a6f1c01b48 C-Z (other)\n-  |\n-  o    866a66e18630 C-N (default)\n-  |\\\n-  +---o  6fd3090135df C-M (default)\n-  | |\n-  | o  cac2cead0ff0 C-L (default)\n-  | |\n-  o |  be705100c623 C-K (default)\n-  |\\|\n-  o |  d603e2c0cdd7 C-E (default)\n-  | |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  +---o  51c544a58128 C-C (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  | |\n-  o |  98217d5a1659 C-A (default)\n-  |/\n+  no changes found\n+\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   o  842e2fac6304 C-ROOT (default)\n   \n \n@@ -1592,14 +1282,16 @@\n (continue existing head)\n \n   $ hg -R client-other/ up \'desc("C-Q")\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo aaa >> client-other/a\n   $ hg -R client-other/ commit -m "C-U"\n \n (new topo branch obsoleting that same head)\n \n   $ hg -R client-racy/ up \'desc("C-Z")\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo bbb >> client-racy/a\n   $ hg -R client-racy/ branch --force default\n   marked working directory as branch default\n@@ -1620,10 +1312,10 @@\n   $ hg -R client-other push -fr \'tip\' --new-branch\n   pushing to ssh://user@dummy/server\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n-  remote: added 1 changesets with 0 changes to 0 files\n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n+  [255]\n \n   $ release $TESTTMP/watchfile\n \n@@ -1634,55 +1326,13 @@\n   searching for changes\n   wrote ready: $TESTTMP/readyfile\n   waiting on: $TESTTMP/watchfile\n-  abort: push failed:\n-  \'remote repository changed while pushing - please try again\'\n+  abort: push creates new remote branches: other\n+  (use \'hg push --new-branch\' to create new remote branches)\n \n   $ hg -R server debugobsolete\n   $ hg -R server graph\n-  o  a98a47d8b85b C-U (default)\n-  |\n-  o  b0ee3d6f51bc C-Q (default)\n-  |\n-  | o  3d57ed3c1091 C-T (other)\n-  | |\n-  | o  2efd43f7b5ba C-S (default)\n-  | |\n-  | | o  de7b9e2ba3f6 C-R (other)\n-  | |/\n-  | o  1b58ee3f79e5 C-P (default)\n-  | |\n-  | o  d0a85b2252a9 C-O (other)\n-  |/\n-  o  55a6f1c01b48 C-Z (other)\n-  |\n-  o    866a66e18630 C-N (default)\n-  |\\\n-  +---o  6fd3090135df C-M (default)\n-  | |\n-  | o  cac2cead0ff0 C-L (default)\n-  | |\n-  o |  be705100c623 C-K (default)\n-  |\\|\n-  o |  d603e2c0cdd7 C-E (default)\n-  | |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  +---o  51c544a58128 C-C (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  | |\n-  o |  98217d5a1659 C-A (default)\n-  |/\n+  o  98217d5a1659 C-A (default)\n+  |\n   o  842e2fac6304 C-ROOT (default)\n   \n \n@@ -1702,87 +1352,22 @@\n   $ hg -R ./server pull ./client-racy\n   pulling from ./client-racy\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n-  1 new orphan changesets\n-  new changesets 720c5163ecf6 (1 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg -R ./client-other pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n-  1 new orphan changesets\n-  new changesets 720c5163ecf6 (1 drafts)\n-  (run \'hg heads .\' to see heads, \'hg merge\' to merge)\n+  no changes found\n   $ hg -R ./client-racy pull\n   pulling from ssh://user@dummy/server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 0 files\n-  1 new orphan changesets\n-  new changesets a98a47d8b85b (1 drafts)\n-  (run \'hg update\' to get a working copy)\n+  no changes found\n \n   $ hg -R server debugobsolete\n-  b0ee3d6f51bc4c0ca6d4f2907708027a6c376233 720c5163ecf64dcc6216bee2d62bf3edb1882499 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  $ hg -R server graph\n-  o  720c5163ecf6 C-V (default)\n-  |\n-  | *  a98a47d8b85b C-U (default)\n-  | |\n-  | x  b0ee3d6f51bc C-Q (default)\n-  |/\n-  | o  3d57ed3c1091 C-T (other)\n-  | |\n-  | o  2efd43f7b5ba C-S (default)\n-  | |\n-  | | o  de7b9e2ba3f6 C-R (other)\n-  | |/\n-  | o  1b58ee3f79e5 C-P (default)\n-  | |\n-  | o  d0a85b2252a9 C-O (other)\n-  |/\n-  o  55a6f1c01b48 C-Z (other)\n-  |\n-  o    866a66e18630 C-N (default)\n-  |\\\n-  +---o  6fd3090135df C-M (default)\n-  | |\n-  | o  cac2cead0ff0 C-L (default)\n-  | |\n-  o |  be705100c623 C-K (default)\n-  |\\|\n-  o |  d603e2c0cdd7 C-E (default)\n-  | |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  +---o  51c544a58128 C-C (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  | |\n-  o |  98217d5a1659 C-A (default)\n-  |/\n+  $ hg -R server graph\n+  o  98217d5a1659 C-A (default)\n+  |\n   o  842e2fac6304 C-ROOT (default)\n   \n \n@@ -1791,12 +1376,12 @@\n (new topo branch obsoleting that same head)\n \n   $ hg -R client-other/ up \'desc("C-Q")\'\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: empty revision set\n+  [255]\n   $ echo bbb >> client-other/a\n   $ hg -R client-other/ branch --force default\n   marked working directory as branch default\n   $ hg -R client-other/ commit -m "C-W"\n-  1 new orphan changesets\n   created new head\n   $ ID_V=`hg -R client-other log -T \'{node}\\n\' -r \'desc("C-V")\'`\n   $ ID_W=`hg -R client-other log -T \'{node}\\n\' -r \'desc("C-W")\'`\n@@ -1808,6 +1393,8 @@\n \n   $ echo aaa >> client-racy/a\n   $ hg -R client-racy/ commit -m "C-X"\n+  nothing changed\n+  [1]\n \n Pushing\n \n@@ -1818,13 +1405,10 @@\n   $ hg -R client-other push -fr \'tip\' --new-branch\n   pushing to ssh://user@dummy/server\n   searching for changes\n-  remote: adding changesets\n-  remote: adding manifests\n-  remote: adding file changes\n-  remote: added 1 changesets with 0 changes to 1 files (+1 heads)\n-  remote: 1 new obsolescence markers\n-  remote: obsoleted 1 changesets\n-  remote: 1 new orphan changesets\n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n+  [255]\n \n   $ release $TESTTMP/watchfile\n \n@@ -1835,60 +1419,12 @@\n   searching for changes\n   wrote ready: $TESTTMP/readyfile\n   waiting on: $TESTTMP/watchfile\n-  abort: push failed:\n-  \'remote repository changed while pushing - please try again\'\n+  abort: push creates new remote branches: other\n+  (use \'hg push --new-branch\' to create new remote branches)\n \n   $ hg -R server debugobsolete\n-  b0ee3d6f51bc4c0ca6d4f2907708027a6c376233 720c5163ecf64dcc6216bee2d62bf3edb1882499 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n-  720c5163ecf64dcc6216bee2d62bf3edb1882499 39bc0598afe90ab18da460bafecc0fa953b77596 0 (Thu Jan 01 00:00:00 1970 +0000) {\'user\': \'test\'}\n   $ hg -R server graph --hidden\n-  *  39bc0598afe9 C-W (default)\n-  |\n-  | *  a98a47d8b85b C-U (default)\n-  |/\n-  x  b0ee3d6f51bc C-Q (default)\n-  |\n-  | o  3d57ed3c1091 C-T (other)\n-  | |\n-  | o  2efd43f7b5ba C-S (default)\n-  | |\n-  | | o  de7b9e2ba3f6 C-R (other)\n-  | |/\n-  | o  1b58ee3f79e5 C-P (default)\n-  | |\n-  | o  d0a85b2252a9 C-O (other)\n-  |/\n-  | x  720c5163ecf6 C-V (default)\n-  |/\n-  o  55a6f1c01b48 C-Z (other)\n-  |\n-  o    866a66e18630 C-N (default)\n-  |\\\n-  +---o  6fd3090135df C-M (default)\n-  | |\n-  | o  cac2cead0ff0 C-L (default)\n-  | |\n-  o |  be705100c623 C-K (default)\n-  |\\|\n-  o |  d603e2c0cdd7 C-E (default)\n-  | |\n-  | o  59e76faf78bd C-D (default)\n-  | |\n-  | | o  89420bf00fae C-J (default)\n-  | | |\n-  | | | o  b35ed749f288 C-I (my-second-test-branch)\n-  | | |/\n-  | | o  75d69cba5402 C-G (default)\n-  | | |\n-  | | | o  833be552cfe6 C-H (my-first-test-branch)\n-  | | |/\n-  | | o  d9e379a8c432 C-F (default)\n-  | | |\n-  +---o  51c544a58128 C-C (default)\n-  | |\n-  | o  a9149a1428e2 C-B (default)\n-  | |\n-  o |  98217d5a1659 C-A (default)\n-  |/\n+  o  98217d5a1659 C-A (default)\n+  |\n   o  842e2fac6304 C-ROOT (default)\n   \n', 2425, 2427, 'truncated \\uXXXX escape') decoding diff, sorry

test-push.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-push.t\n+++ c:/hgdev/src/tests/test-push.t.err\n@@ -292,16 +292,110 @@\n   added 1 changesets with 1 changes to 1 files\n \n   $ hg --cwd 1 --config extensions.strip= strip tip -q\n+  strip failed, backup bundle stored in \'$TESTTMP\\1\\.hg\\strip-backup/ac3f1954275a-cd750de9-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg --cwd 2 --config extensions.strip= strip tip -q\n+  strip failed, backup bundle stored in \'$TESTTMP\\2\\.hg\\strip-backup/ac3f1954275a-cd750de9-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg --cwd 3 push ../2 # bundle2+\n   pushing to ../2\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  lock:  user *, process * (*s) (glob)\n-  wlock: user *, process * (*s) (glob)\n-  added 1 changesets with 1 changes to 1 files\n+  no changes found\n+  [1]\n \n Test bare push with multiple race checking options\n --------------------------------------------------\n', 2208, 2210, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-abort.t#abortcommand#continuecommand

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-abort.t\n+++ c:/hgdev/src/tests/test-rebase-abort.t#abortcommand#continuecommand.err\n@@ -124,16 +124,71 @@\n \n   $ hg abort\n   saved backup bundle to $TESTTMP/a/.hg/strip-backup/3e046f2ecedb-6beef7d5-backup.hg\n-  rebase aborted\n+  strip failed, backup bundle stored in \'$TESTTMP\\a\\.hg\\strip-backup/3e046f2ecedb-6beef7d5-backup.hg\'\n+  rebase aborted\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 204, in abort\n+      return abortstate.abortfunc(ui, repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2234, in abortrebase\n+      rbsrt._prepareabortorcontinue(isabort=True)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 392, in _prepareabortorcontinue\n+      confirm=confirm,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 851, in _abort\n+      repair.strip(repo.ui, repo, strippoints, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg debugmergestate\n   no merge state found\n \n   $ hg tglog\n-  @  4:draft \'L2\'\n-  |\n-  o  3:draft \'L1\'\n-  |\n-  | o  2:secret \'C3\'\n+  o  5:secret \'L1\'\n+  |\n+  | @  4:draft \'L2\'\n+  | |\n+  | o  3:draft \'L1\'\n+  | |\n+  o |  2:secret \'C3\'\n   |/\n   o  1:draft \'C2\'\n   |\n@@ -145,25 +200,31 @@\n \n   $ hg rebase -s 3 -d 2\n   rebasing 3:3163e20567cc "L1"\n-  rebasing 4:46f0b057b5c0 tip "L2"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+  $ mv .hg/rebasestate .hg/rebasestate.back\n+  $ hg update --quiet --clean 2\n+  $ hg --config extensions.mq= strip --quiet "destination()"\n+  strip failed, backup bundle stored in \'$TESTTMP\\a\\.hg\\strip-backup/3e046f2ecedb-6beef7d5-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ mv .hg/rebasestate.back .hg/rebasestate\n+\n+  $ hg continue\n+  rebasing 3:3163e20567cc "L1"\n+  note: not rebasing 3:3163e20567cc "L1", its destination already has all its changes\n+  rebasing 4:46f0b057b5c0 "L2"\n   merging common\n   warning: conflicts while merging common! (edit, then use \'hg resolve --mark\')\n   unresolved conflicts (see \'hg resolve\', then \'hg rebase --continue\')\n   [240]\n-\n-  $ mv .hg/rebasestate .hg/rebasestate.back\n-  $ hg update --quiet --clean 2\n-  $ hg --config extensions.mq= strip --quiet "destination()"\n-  $ mv .hg/rebasestate.back .hg/rebasestate\n-\n-  $ hg continue\n-  abort: cannot continue inconsistent rebase\n-  (use "hg rebase --abort" to clear broken state)\n-  [255]\n   $ hg summary | grep \'^rebase: \'\n-  rebase: (use "hg rebase --abort" to clear broken state)\n+  rebase: 1 rebased, 1 remaining (rebase --continue)\n   $ hg abort\n-  rebase aborted (no revision is removed, only broken state is cleared)\n+  rebase aborted\n \n   $ cd ..\n \n@@ -415,8 +476,63 @@\n \n   $ hg abort\n   saved backup bundle to $TESTTMP/interrupted/.hg/strip-backup/3d8812cf300d-93041a90-backup.hg\n-  rebase aborted\n+  strip failed, backup bundle stored in \'$TESTTMP\\interrupted\\.hg\\strip-backup/3d8812cf300d-93041a90-backup.hg\'\n+  rebase aborted\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 204, in abort\n+      return abortstate.abortfunc(ui, repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2234, in abortrebase\n+      rbsrt._prepareabortorcontinue(isabort=True)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 392, in _prepareabortorcontinue\n+      confirm=confirm,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 851, in _abort\n+      repair.strip(repo.ui, repo, strippoints, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log -G --template "{rev} {desc} {bookmarks}"\n+  o  7 b\n+  |\n   o  6 no-a\n   |\n   | o  5 d\n@@ -436,8 +552,8 @@\n    base\n   branch: default\n   commit: (clean)\n-  update: 6 new changesets (update)\n-  phases: 7 draft\n+  update: 7 new changesets (update)\n+  phases: 8 draft\n \n   $ cd ..\n On the other hand, make sure we *do* clobber changes whenever we\n', 2285, 2287, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-abort.t#abortcommand#continueflag

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-abort.t\n+++ c:/hgdev/src/tests/test-rebase-abort.t#abortcommand#continueflag.err\n@@ -124,16 +124,71 @@\n \n   $ hg abort\n   saved backup bundle to $TESTTMP/a/.hg/strip-backup/3e046f2ecedb-6beef7d5-backup.hg\n-  rebase aborted\n+  strip failed, backup bundle stored in \'$TESTTMP\\a\\.hg\\strip-backup/3e046f2ecedb-6beef7d5-backup.hg\'\n+  rebase aborted\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 204, in abort\n+      return abortstate.abortfunc(ui, repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2234, in abortrebase\n+      rbsrt._prepareabortorcontinue(isabort=True)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 392, in _prepareabortorcontinue\n+      confirm=confirm,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 851, in _abort\n+      repair.strip(repo.ui, repo, strippoints, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg debugmergestate\n   no merge state found\n \n   $ hg tglog\n-  @  4:draft \'L2\'\n-  |\n-  o  3:draft \'L1\'\n-  |\n-  | o  2:secret \'C3\'\n+  o  5:secret \'L1\'\n+  |\n+  | @  4:draft \'L2\'\n+  | |\n+  | o  3:draft \'L1\'\n+  | |\n+  o |  2:secret \'C3\'\n   |/\n   o  1:draft \'C2\'\n   |\n@@ -145,25 +200,31 @@\n \n   $ hg rebase -s 3 -d 2\n   rebasing 3:3163e20567cc "L1"\n-  rebasing 4:46f0b057b5c0 tip "L2"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+  $ mv .hg/rebasestate .hg/rebasestate.back\n+  $ hg update --quiet --clean 2\n+  $ hg --config extensions.mq= strip --quiet "destination()"\n+  strip failed, backup bundle stored in \'$TESTTMP\\a\\.hg\\strip-backup/3e046f2ecedb-6beef7d5-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ mv .hg/rebasestate.back .hg/rebasestate\n+\n+  $ hg continue\n+  rebasing 3:3163e20567cc "L1"\n+  note: not rebasing 3:3163e20567cc "L1", its destination already has all its changes\n+  rebasing 4:46f0b057b5c0 "L2"\n   merging common\n   warning: conflicts while merging common! (edit, then use \'hg resolve --mark\')\n   unresolved conflicts (see \'hg resolve\', then \'hg rebase --continue\')\n   [240]\n-\n-  $ mv .hg/rebasestate .hg/rebasestate.back\n-  $ hg update --quiet --clean 2\n-  $ hg --config extensions.mq= strip --quiet "destination()"\n-  $ mv .hg/rebasestate.back .hg/rebasestate\n-\n-  $ hg continue\n-  abort: cannot continue inconsistent rebase\n-  (use "hg rebase --abort" to clear broken state)\n-  [255]\n   $ hg summary | grep \'^rebase: \'\n-  rebase: (use "hg rebase --abort" to clear broken state)\n+  rebase: 1 rebased, 1 remaining (rebase --continue)\n   $ hg abort\n-  rebase aborted (no revision is removed, only broken state is cleared)\n+  rebase aborted\n \n   $ cd ..\n \n@@ -415,8 +476,63 @@\n \n   $ hg abort\n   saved backup bundle to $TESTTMP/interrupted/.hg/strip-backup/3d8812cf300d-93041a90-backup.hg\n-  rebase aborted\n+  strip failed, backup bundle stored in \'$TESTTMP\\interrupted\\.hg\\strip-backup/3d8812cf300d-93041a90-backup.hg\'\n+  rebase aborted\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 204, in abort\n+      return abortstate.abortfunc(ui, repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2234, in abortrebase\n+      rbsrt._prepareabortorcontinue(isabort=True)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 392, in _prepareabortorcontinue\n+      confirm=confirm,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 851, in _abort\n+      repair.strip(repo.ui, repo, strippoints, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log -G --template "{rev} {desc} {bookmarks}"\n+  o  7 b\n+  |\n   o  6 no-a\n   |\n   | o  5 d\n@@ -436,8 +552,8 @@\n    base\n   branch: default\n   commit: (clean)\n-  update: 6 new changesets (update)\n-  phases: 7 draft\n+  update: 7 new changesets (update)\n+  phases: 8 draft\n \n   $ cd ..\n On the other hand, make sure we *do* clobber changes whenever we\n', 2282, 2284, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-abort.t#abortflag#continuecommand

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-abort.t\n+++ c:/hgdev/src/tests/test-rebase-abort.t#abortflag#continuecommand.err\n@@ -124,16 +124,71 @@\n \n   $ hg abort\n   saved backup bundle to $TESTTMP/a/.hg/strip-backup/3e046f2ecedb-6beef7d5-backup.hg\n-  rebase aborted\n+  strip failed, backup bundle stored in \'$TESTTMP\\a\\.hg\\strip-backup/3e046f2ecedb-6beef7d5-backup.hg\'\n+  rebase aborted\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 204, in abort\n+      return abortstate.abortfunc(ui, repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2234, in abortrebase\n+      rbsrt._prepareabortorcontinue(isabort=True)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 392, in _prepareabortorcontinue\n+      confirm=confirm,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 851, in _abort\n+      repair.strip(repo.ui, repo, strippoints, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg debugmergestate\n   no merge state found\n \n   $ hg tglog\n-  @  4:draft \'L2\'\n-  |\n-  o  3:draft \'L1\'\n-  |\n-  | o  2:secret \'C3\'\n+  o  5:secret \'L1\'\n+  |\n+  | @  4:draft \'L2\'\n+  | |\n+  | o  3:draft \'L1\'\n+  | |\n+  o |  2:secret \'C3\'\n   |/\n   o  1:draft \'C2\'\n   |\n@@ -145,25 +200,31 @@\n \n   $ hg rebase -s 3 -d 2\n   rebasing 3:3163e20567cc "L1"\n-  rebasing 4:46f0b057b5c0 tip "L2"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+  $ mv .hg/rebasestate .hg/rebasestate.back\n+  $ hg update --quiet --clean 2\n+  $ hg --config extensions.mq= strip --quiet "destination()"\n+  strip failed, backup bundle stored in \'$TESTTMP\\a\\.hg\\strip-backup/3e046f2ecedb-6beef7d5-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ mv .hg/rebasestate.back .hg/rebasestate\n+\n+  $ hg continue\n+  rebasing 3:3163e20567cc "L1"\n+  note: not rebasing 3:3163e20567cc "L1", its destination already has all its changes\n+  rebasing 4:46f0b057b5c0 "L2"\n   merging common\n   warning: conflicts while merging common! (edit, then use \'hg resolve --mark\')\n   unresolved conflicts (see \'hg resolve\', then \'hg rebase --continue\')\n   [240]\n-\n-  $ mv .hg/rebasestate .hg/rebasestate.back\n-  $ hg update --quiet --clean 2\n-  $ hg --config extensions.mq= strip --quiet "destination()"\n-  $ mv .hg/rebasestate.back .hg/rebasestate\n-\n-  $ hg continue\n-  abort: cannot continue inconsistent rebase\n-  (use "hg rebase --abort" to clear broken state)\n-  [255]\n   $ hg summary | grep \'^rebase: \'\n-  rebase: (use "hg rebase --abort" to clear broken state)\n+  rebase: 1 rebased, 1 remaining (rebase --continue)\n   $ hg abort\n-  rebase aborted (no revision is removed, only broken state is cleared)\n+  rebase aborted\n \n   $ cd ..\n \n@@ -415,8 +476,63 @@\n \n   $ hg abort\n   saved backup bundle to $TESTTMP/interrupted/.hg/strip-backup/3d8812cf300d-93041a90-backup.hg\n-  rebase aborted\n+  strip failed, backup bundle stored in \'$TESTTMP\\interrupted\\.hg\\strip-backup/3d8812cf300d-93041a90-backup.hg\'\n+  rebase aborted\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 204, in abort\n+      return abortstate.abortfunc(ui, repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2234, in abortrebase\n+      rbsrt._prepareabortorcontinue(isabort=True)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 392, in _prepareabortorcontinue\n+      confirm=confirm,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 851, in _abort\n+      repair.strip(repo.ui, repo, strippoints, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log -G --template "{rev} {desc} {bookmarks}"\n+  o  7 b\n+  |\n   o  6 no-a\n   |\n   | o  5 d\n@@ -436,8 +552,8 @@\n    base\n   branch: default\n   commit: (clean)\n-  update: 6 new changesets (update)\n-  phases: 7 draft\n+  update: 7 new changesets (update)\n+  phases: 8 draft\n \n   $ cd ..\n On the other hand, make sure we *do* clobber changes whenever we\n', 2282, 2284, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-abort.t#abortflag#continueflag

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-abort.t\n+++ c:/hgdev/src/tests/test-rebase-abort.t#abortflag#continueflag.err\n@@ -124,16 +124,71 @@\n \n   $ hg abort\n   saved backup bundle to $TESTTMP/a/.hg/strip-backup/3e046f2ecedb-6beef7d5-backup.hg\n-  rebase aborted\n+  strip failed, backup bundle stored in \'$TESTTMP\\a\\.hg\\strip-backup/3e046f2ecedb-6beef7d5-backup.hg\'\n+  rebase aborted\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 204, in abort\n+      return abortstate.abortfunc(ui, repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2234, in abortrebase\n+      rbsrt._prepareabortorcontinue(isabort=True)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 392, in _prepareabortorcontinue\n+      confirm=confirm,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 851, in _abort\n+      repair.strip(repo.ui, repo, strippoints, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg debugmergestate\n   no merge state found\n \n   $ hg tglog\n-  @  4:draft \'L2\'\n-  |\n-  o  3:draft \'L1\'\n-  |\n-  | o  2:secret \'C3\'\n+  o  5:secret \'L1\'\n+  |\n+  | @  4:draft \'L2\'\n+  | |\n+  | o  3:draft \'L1\'\n+  | |\n+  o |  2:secret \'C3\'\n   |/\n   o  1:draft \'C2\'\n   |\n@@ -145,25 +200,31 @@\n \n   $ hg rebase -s 3 -d 2\n   rebasing 3:3163e20567cc "L1"\n-  rebasing 4:46f0b057b5c0 tip "L2"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+  $ mv .hg/rebasestate .hg/rebasestate.back\n+  $ hg update --quiet --clean 2\n+  $ hg --config extensions.mq= strip --quiet "destination()"\n+  strip failed, backup bundle stored in \'$TESTTMP\\a\\.hg\\strip-backup/3e046f2ecedb-6beef7d5-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ mv .hg/rebasestate.back .hg/rebasestate\n+\n+  $ hg continue\n+  rebasing 3:3163e20567cc "L1"\n+  note: not rebasing 3:3163e20567cc "L1", its destination already has all its changes\n+  rebasing 4:46f0b057b5c0 "L2"\n   merging common\n   warning: conflicts while merging common! (edit, then use \'hg resolve --mark\')\n   unresolved conflicts (see \'hg resolve\', then \'hg rebase --continue\')\n   [240]\n-\n-  $ mv .hg/rebasestate .hg/rebasestate.back\n-  $ hg update --quiet --clean 2\n-  $ hg --config extensions.mq= strip --quiet "destination()"\n-  $ mv .hg/rebasestate.back .hg/rebasestate\n-\n-  $ hg continue\n-  abort: cannot continue inconsistent rebase\n-  (use "hg rebase --abort" to clear broken state)\n-  [255]\n   $ hg summary | grep \'^rebase: \'\n-  rebase: (use "hg rebase --abort" to clear broken state)\n+  rebase: 1 rebased, 1 remaining (rebase --continue)\n   $ hg abort\n-  rebase aborted (no revision is removed, only broken state is cleared)\n+  rebase aborted\n \n   $ cd ..\n \n@@ -415,8 +476,63 @@\n \n   $ hg abort\n   saved backup bundle to $TESTTMP/interrupted/.hg/strip-backup/3d8812cf300d-93041a90-backup.hg\n-  rebase aborted\n+  strip failed, backup bundle stored in \'$TESTTMP\\interrupted\\.hg\\strip-backup/3d8812cf300d-93041a90-backup.hg\'\n+  rebase aborted\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 204, in abort\n+      return abortstate.abortfunc(ui, repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2234, in abortrebase\n+      rbsrt._prepareabortorcontinue(isabort=True)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 392, in _prepareabortorcontinue\n+      confirm=confirm,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 851, in _abort\n+      repair.strip(repo.ui, repo, strippoints, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log -G --template "{rev} {desc} {bookmarks}"\n+  o  7 b\n+  |\n   o  6 no-a\n   |\n   | o  5 d\n@@ -436,8 +552,8 @@\n    base\n   branch: default\n   commit: (clean)\n-  update: 6 new changesets (update)\n-  phases: 7 draft\n+  update: 7 new changesets (update)\n+  phases: 8 draft\n \n   $ cd ..\n On the other hand, make sure we *do* clobber changes whenever we\n', 2279, 2281, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-backup.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-backup.t\n+++ c:/hgdev/src/tests/test-rebase-backup.t.err\n@@ -36,15 +36,86 @@\n   rebasing 1:d2ae7f538514 "b"\n   rebasing 2:177f92b77385 "c"\n   saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/d2ae7f538514-c7ed7a78-rebase.hg\n-  $ hg log -GT "{rev}: {firstline(desc)}\\n"\n-  o  4: c\n-  |\n-  o  3: b\n-  |\n-  @  2: e\n-  |\n-  o  1: d\n-  |\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo1\\.hg\\strip-backup/d2ae7f538514-c7ed7a78-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo1\\.hg\\strip-backup/d2ae7f538514-fa517692-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo1\\.hg\\strip-backup/d2ae7f538514-fa517692-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg log -GT "{rev}: {firstline(desc)}\\n"\n+  o  6: c\n+  |\n+  o  5: b\n+  |\n+  @  4: e\n+  |\n+  o  3: d\n+  |\n+  | o  2: c\n+  | |\n+  | o  1: b\n+  |/\n   o  0: a\n   \n \n@@ -56,40 +127,47 @@\n \n   $ echo f>f\n   $ hg ci -Aqmf\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo g>g\n   $ hg ci -Aqmg\n-  $ hg log -GT "{rev}: {firstline(desc)}\\n"\n-  @  6: g\n-  |\n-  o  5: f\n-  |\n-  | o  4: c\n-  | |\n-  | o  3: b\n-  |/\n-  o  2: e\n-  |\n-  o  1: d\n-  |\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+  $ hg log -GT "{rev}: {firstline(desc)}\\n"\n+  o  6: c\n+  |\n+  o  5: b\n+  |\n+  @  4: e\n+  |\n+  o  3: d\n+  |\n+  | o  2: c\n+  | |\n+  | o  1: b\n+  |/\n   o  0: a\n   \n   $ hg rebase -s 3 -d .\n-  rebasing 3:05bff2a95b12 "b"\n-  rebasing 4:1762bde4404d "c"\n-\n-  $ hg log -GT "{rev}: {firstline(desc)}\\n"\n-  o  6: c\n-  |\n-  o  5: b\n-  |\n-  @  4: g\n-  |\n-  o  3: f\n-  |\n-  o  2: e\n-  |\n-  o  1: d\n-  |\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+\n+  $ hg log -GT "{rev}: {firstline(desc)}\\n"\n+  o  6: c\n+  |\n+  o  5: b\n+  |\n+  @  4: e\n+  |\n+  o  3: d\n+  |\n+  | o  2: c\n+  | |\n+  | o  1: b\n+  |/\n   o  0: a\n   \n Test when rebased revisions are stripped during abort:\n@@ -97,23 +175,22 @@\n \n   $ echo conflict > c\n   $ hg ci -Am "conflict with c"\n-  adding c\n-  created new head\n-  $ hg log -GT "{rev}: {firstline(desc)}\\n"\n-  @  7: conflict with c\n-  |\n-  | o  6: c\n-  | |\n-  | o  5: b\n-  |/\n-  o  4: g\n-  |\n-  o  3: f\n-  |\n-  o  2: e\n-  |\n-  o  1: d\n-  |\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+  $ hg log -GT "{rev}: {firstline(desc)}\\n"\n+  o  6: c\n+  |\n+  o  5: b\n+  |\n+  @  4: e\n+  |\n+  o  3: d\n+  |\n+  | o  2: c\n+  | |\n+  | o  1: b\n+  |/\n   o  0: a\n   \n When backup-bundle = True:\n@@ -122,15 +199,16 @@\n   > backup-bundle = True\n   > EOF\n   $ hg rebase -s 5 -d .\n-  rebasing 5:1f8148a544ee "b"\n-  rebasing 6:f8bc7d28e573 "c"\n-  merging c\n-  warning: conflicts while merging c! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg rebase --continue\')\n-  [240]\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg rebase --abort\n-  saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/818c1a43c916-2b644d96-backup.hg\n+  saved backup bundle to $TESTTMP/repo1/.hg/strip-backup/05bff2a95b12-b624f068-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo1\\.hg\\strip-backup/05bff2a95b12-b624f068-backup.hg\'\n   rebase aborted\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n When backup-bundle = False:\n   $ cat << EOF >> $HGRCPATH\n@@ -138,13 +216,10 @@\n   > backup-bundle = False\n   > EOF\n   $ hg rebase -s 5 -d .\n-  rebasing 5:1f8148a544ee "b"\n-  rebasing 6:f8bc7d28e573 "c"\n-  merging c\n-  warning: conflicts while merging c! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg rebase --continue\')\n-  [240]\n+  nothing to rebase\n+  [1]\n   $ hg rebase --abort\n-  rebase aborted\n+  abort: no rebase in progress\n+  [20]\n   $ cd ..\n \n', 2627, 2629, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-base-flag.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-base-flag.t\n+++ c:/hgdev/src/tests/test-rebase-base-flag.t.err\n@@ -36,23 +36,78 @@\n   >   |\n   >   R\n   > EOS\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo1\\.hg\\strip-backup/d6003a550c2c-b7de85ae-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo1\\.hg\\strip-backup/d6003a550c2c-94c5344a-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo1\\.hg\\strip-backup/d6003a550c2c-94c5344a-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   rebasing 3:d6003a550c2c C "C"\n   rebasing 5:4526cf523425 D "D"\n   rebasing 6:b296604d9846 E tip "E"\n-  o  6: 4870f5e7df37 E\n-  |\n-  | o  5: dc999528138a D\n-  |/\n-  o  4: 6b3e11729672 C\n-  |\n-  o  3: 57e70bad1ea3 Z\n-  |\n-  | o  2: c1e6b162678d B\n-  |/\n-  o  1: 21a6c4502885 A\n-  |\n-  o  0: b41ce7760717 R\n-  \n+  [1]\n Multiple branching points caused by selecting a single merge changeset:\n \n   $ rebasewithdag -b E -d Z <<\'EOS\'\n@@ -66,23 +121,78 @@\n   >   |\n   >   R\n   > EOS\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo2\\.hg\\strip-backup/d6003a550c2c-9c20e17b-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo2\\.hg\\strip-backup/d6003a550c2c-beef155e-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo2\\.hg\\strip-backup/d6003a550c2c-beef155e-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   rebasing 2:c1e6b162678d B "B"\n   rebasing 3:d6003a550c2c C "C"\n   rebasing 6:54c8f00cb91c E tip "E"\n-  o    6: 00598421b616 E\n-  |\\\n-  | o  5: 6b3e11729672 C\n-  | |\n-  o |  4: 85260910e847 B\n-  |/\n-  o  3: 57e70bad1ea3 Z\n-  |\n-  | o  2: 8924700906fe D\n-  |/\n-  o  1: 21a6c4502885 A\n-  |\n-  o  0: b41ce7760717 R\n-  \n+  [1]\n Rebase should not extend the "--base" revset using "descendants":\n \n   $ rebasewithdag -b B -d Z <<\'EOS\'\n@@ -94,20 +204,77 @@\n   >   |\n   >   R\n   > EOS\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo3\\.hg\\strip-backup/c1e6b162678d-5f2c62ff-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo3\\.hg\\strip-backup/c1e6b162678d-ae972848-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo3\\.hg\\strip-backup/c1e6b162678d-ae972848-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   rebasing 2:c1e6b162678d B "B"\n   rebasing 5:54c8f00cb91c E tip "E"\n-  o    5: e583bf3ff54c E\n-  |\\\n-  | o  4: 85260910e847 B\n-  | |\n-  | o  3: 57e70bad1ea3 Z\n-  | |\n-  o |  2: d6003a550c2c C\n-  |/\n-  o  1: 21a6c4502885 A\n-  |\n-  o  0: b41ce7760717 R\n-  \n+  [1]\n Rebase should not simplify the "--base" revset using "roots":\n \n   $ rebasewithdag -b B+E -d Z <<\'EOS\'\n@@ -119,21 +286,78 @@\n   >   |\n   >   R\n   > EOS\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo4\\.hg\\strip-backup/d6003a550c2c-9c20e17b-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo4\\.hg\\strip-backup/d6003a550c2c-929c67e3-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo4\\.hg\\strip-backup/d6003a550c2c-929c67e3-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   rebasing 2:c1e6b162678d B "B"\n   rebasing 3:d6003a550c2c C "C"\n   rebasing 5:54c8f00cb91c E tip "E"\n-  o    5: 00598421b616 E\n-  |\\\n-  | o  4: 6b3e11729672 C\n-  | |\n-  o |  3: 85260910e847 B\n-  |/\n-  o  2: 57e70bad1ea3 Z\n-  |\n-  o  1: 21a6c4502885 A\n-  |\n-  o  0: b41ce7760717 R\n-  \n+  [1]\n The destination is one of the two branching points of a merge:\n \n   $ rebasewithdag -b F -d Z <<\'EOS\'\n@@ -167,38 +391,81 @@\n   >   |\n   >   R\n   > EOS\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo6\\.hg\\strip-backup/428d8c18f641-1628c72f-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo6\\.hg\\strip-backup/428d8c18f641-30ee5828-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo6\\.hg\\strip-backup/428d8c18f641-30ee5828-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   rebasing 3:a113dbaa660a B1 "B1"\n   rebasing 5:06ce7b1cc8c2 B2 "B2"\n   rebasing 6:0ac98cce32d3 C1 "C1"\n   rebasing 8:781512f5e33d C2 "C2"\n   rebasing 9:428d8c18f641 E1 "E1"\n   rebasing 11:e1bf82f6b6df E2 "E2"\n-  o  12: e4a37b6fdbd2 E2\n-  |\n-  o  11: 9675bea983df E1\n-  |\n-  | o  10: 4faf5d4c80dc C2\n-  | |\n-  | o  9: d4799b1ad57d C1\n-  |/\n-  | o  8: 772732dc64d6 B2\n-  | |\n-  | o  7: ad3ac528a49f B1\n-  |/\n-  o  6: 2cbdfca6b9d5 Z\n-  |\n-  o  5: fcdb3293ec13 F\n-  |\n-  o  4: a4652bb8ac54 E\n-  |\n-  o  3: bd5548558fcf C\n-  |\n-  o  2: c1e6b162678d B\n-  |\n-  o  1: 21a6c4502885 A\n-  |\n-  o  0: b41ce7760717 R\n-  \n+  [1]\n Multiple branching points with multiple merges:\n \n   $ rebasewithdag -b G+P -d Z <<\'EOS\'\n@@ -210,6 +477,74 @@\n   >  \\|/  |/  |/\n   >   A   A   A\n   > EOS\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo7\\.hg\\strip-backup/e131637a1cb6-ee518639-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo7\\.hg\\strip-backup/e131637a1cb6-fdb82beb-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo7\\.hg\\strip-backup/e131637a1cb6-fdb82beb-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   rebasing 2:dc0947a82db8 C "C"\n   rebasing 8:4e4f9194f9f1 D "D"\n   rebasing 9:03ca77807e91 E "E"\n@@ -223,38 +558,7 @@\n   rebasing 11:d1f6d0c3c7e4 M "M"\n   rebasing 12:7aaec6f81888 N "N"\n   rebasing 15:325bc8f1760d P tip "P"\n-  o    15: 6ef6a0ea3b18 P\n-  |\\\n-  | o    14: 20ba3610a7e5 N\n-  | |\\\n-  o \\ \\    13: cd4f6c06d2ab M\n-  |\\ \\ \\\n-  | | | o  12: bca872041455 L\n-  | | | |\n-  | | o |  11: 7bbb6c8a6ad7 K\n-  | | |/\n-  | o /  10: de0cbffe893e J\n-  | |/\n-  o /  9: 0e710f176a88 I\n-  |/\n-  | o    8: 52507bab39ca H\n-  | |\\\n-  | | | o  7: bb5fe4652f0d G\n-  | | |/|\n-  | | | o  6: f4ad4b31daf4 F\n-  | | | |\n-  | | o |  5: b168f85f2e78 E\n-  | | |/\n-  | o |  4: 8d09fcdb5594 D\n-  | |\\|\n-  +---o  3: ab70b4c5a9c9 C\n-  | |\n-  o |  2: 262e37e34f63 Z\n-  | |\n-  | o  1: 112478962961 B\n-  |/\n-  o  0: 426bada5c675 A\n-  \n+  [1]\n Slightly more complex merge case (mentioned in https://www.mercurial-scm.org/pipermail/mercurial-devel/2016-November/091074.html):\n \n   $ rebasewithdag -b A3+B3 -d Z <<\'EOF\'\n@@ -268,6 +572,74 @@\n   > |\n   > M0\n   > EOF\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo8\\.hg\\strip-backup/06ca5dfe3b5b-7a83eae8-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo8\\.hg\\strip-backup/06ca5dfe3b5b-3377e682-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo8\\.hg\\strip-backup/06ca5dfe3b5b-3377e682-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   rebasing 4:8817fae53c94 C0 "C0"\n   rebasing 6:06ca5dfe3b5b B2 "B2"\n   rebasing 7:73508237b032 C1 "C1"\n@@ -275,32 +647,7 @@\n   rebasing 11:4e449bd1a643 A3 "A3"\n   rebasing 10:0a33b0519128 B1 "B1"\n   rebasing 12:209327807c3a B3 tip "B3"\n-  o    12: ceb984566332 B3\n-  |\\\n-  | o  11: 19d93caac497 B1\n-  | |\n-  | | o    10: 058e73d3916b A3\n-  | | |\\\n-  | +---o  9: 0ba13ad72234 A2\n-  | | |\n-  | o |  8: c122c2af10c6 C1\n-  | | |\n-  o | |  7: 74275896650e B2\n-  | | |\n-  | o |  6: 455ba9bd3ea2 C0\n-  |/ /\n-  o |  5: b3d7d2fda53b Z\n-  | |\n-  o |  4: 182ab6383dd7 M3\n-  | |\n-  o |  3: 6c3f73563d5f M2\n-  | |\n-  | o  2: 88c860fffcc2 A1\n-  |/\n-  o  1: bc852baa85dd M1\n-  |\n-  o  0: dbdfc5c9bcd5 M0\n-  \n+  [1]\n Disconnected graph:\n \n   $ rebasewithdag -b B -d Z <<\'EOS\'\n@@ -318,18 +665,77 @@\n   >  \\|\\|\n   >   C A\n   > EOF\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo10\\.hg\\strip-backup/b70f76719894-759d0797-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo10\\.hg\\strip-backup/b70f76719894-0ef2f064-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo10\\.hg\\strip-backup/b70f76719894-0ef2f064-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   rebasing 2:112478962961 B "B"\n   rebasing 3:b70f76719894 D "D"\n-  o  4: 511efad7bf13 D\n-  |\n-  | o  3: 25c4e279af62 B\n-  |/\n-  o    2: 3a49f54d7bb1 Z\n-  |\\\n-  | o  1: 96cc3511f894 C\n-  |\n-  o  0: 426bada5c675 A\n-  \n+  [1]\n Multiple roots. One root is not an ancestor of dest:\n \n   $ rebasewithdag -b B+D -d Z <<\'EOF\'\n@@ -349,20 +755,77 @@\n   >  \\|\\|\n   >   A C\n   > EOF\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo12\\.hg\\strip-backup/f675d5a1c6a4-4054672b-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo12\\.hg\\strip-backup/f675d5a1c6a4-4d200813-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo12\\.hg\\strip-backup/f675d5a1c6a4-4d200813-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   rebasing 2:f675d5a1c6a4 B "B"\n   rebasing 5:f68696fe6af8 E tip "E"\n-  o    5: f6e6f5081554 E\n-  |\\\n-  | o    4: 30cabcba27be B\n-  | |\\\n-  | | o  3: 262e37e34f63 Z\n-  | | |\n-  o | |  2: b70f76719894 D\n-  |/ /\n-  o /  1: 96cc3511f894 C\n-   /\n-  o  0: 426bada5c675 A\n-  \n+  [1]\n Multiple roots. Two children share two parents while dest has only one parent:\n \n   $ rebasewithdag -b B+D -d Z <<\'EOF\'\n@@ -370,15 +833,74 @@\n   >  \\|\\|\\\n   >   A C A\n   > EOF\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo13\\.hg\\strip-backup/c2a779e13b56-2b11bf03-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo13\\.hg\\strip-backup/c2a779e13b56-d6f7172f-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo13\\.hg\\strip-backup/c2a779e13b56-d6f7172f-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   rebasing 2:f675d5a1c6a4 B "B"\n   rebasing 3:c2a779e13b56 D "D"\n-  o    4: 5eecd056b5f8 D\n-  |\\\n-  +---o  3: 30cabcba27be B\n-  | |/\n-  | o  2: 262e37e34f63 Z\n-  | |\n-  o |  1: 96cc3511f894 C\n-   /\n-  o  0: 426bada5c675 A\n-  \n+  [1]\n', 2580, 2582, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-bookmarks.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-bookmarks.t\n+++ c:/hgdev/src/tests/test-rebase-bookmarks.t.err\n@@ -77,12 +77,83 @@\n   $ hg rebase -s Y -d 3\n   rebasing 2:49cb3485fa0c Y Z "C"\n   saved backup bundle to $TESTTMP/a1/.hg/strip-backup/49cb3485fa0c-126f3e97-rebase.hg\n-\n-  $ hg tglog\n-  @  3: 17fb3faba63c \'C\' bookmarks: Y Z\n-  |\n-  o  2: 41acb9dca9eb \'D\' bookmarks: W X@diverge\n-  |\n+  strip failed, backup bundle stored in \'$TESTTMP\\a1\\.hg\\strip-backup/49cb3485fa0c-126f3e97-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a1\\.hg\\strip-backup/49cb3485fa0c-8480c50e-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a1\\.hg\\strip-backup/49cb3485fa0c-8480c50e-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+\n+  $ hg tglog\n+  @  4: 17fb3faba63c \'C\' bookmarks: Y Z\n+  |\n+  o  3: 41acb9dca9eb \'D\' bookmarks: W X@diverge\n+  |\n+  | o  2: 49cb3485fa0c \'C\' bookmarks:\n+  | |\n   | o  1: 6c81ed0049f8 \'B\' bookmarks: X\n   |/\n   o  0: 1994f17a630e \'A\' bookmarks: Y@diverge\n@@ -99,9 +170,78 @@\n   $ hg rebase -s W -d .\n   rebasing 3:41acb9dca9eb W tip "D"\n   saved backup bundle to $TESTTMP/a4/.hg/strip-backup/41acb9dca9eb-b35a6a63-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a4\\.hg\\strip-backup/41acb9dca9eb-b35a6a63-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a4\\.hg\\strip-backup/41acb9dca9eb-170cc94d-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a4\\.hg\\strip-backup/41acb9dca9eb-170cc94d-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg bookmarks\n-     W                         3:0d3554f74897\n+     W                         4:0d3554f74897\n      X                         1:6c81ed0049f8\n      Y                         2:49cb3485fa0c\n      Z                         2:49cb3485fa0c\n@@ -118,14 +258,87 @@\n   rebasing 1:6c81ed0049f8 X "B"\n   rebasing 2:49cb3485fa0c Y Z "C"\n   saved backup bundle to $TESTTMP/a2/.hg/strip-backup/6c81ed0049f8-a687065f-rebase.hg\n-\n-  $ hg tglog\n-  @  3: 3d5fa227f4b5 \'C\' bookmarks: Y Z\n-  |\n-  o  2: e926fccfa8ec \'B\' bookmarks: X\n-  |\n-  o  1: 41acb9dca9eb \'D\' bookmarks: W\n-  |\n+  strip failed, backup bundle stored in \'$TESTTMP\\a2\\.hg\\strip-backup/6c81ed0049f8-a687065f-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a2\\.hg\\strip-backup/6c81ed0049f8-9ebc5366-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a2\\.hg\\strip-backup/6c81ed0049f8-9ebc5366-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+\n+  $ hg tglog\n+  @  5: 3d5fa227f4b5 \'C\' bookmarks: Y Z\n+  |\n+  o  4: e926fccfa8ec \'B\' bookmarks: X\n+  |\n+  o  3: 41acb9dca9eb \'D\' bookmarks: W\n+  |\n+  | o  2: 49cb3485fa0c \'C\' bookmarks:\n+  | |\n+  | o  1: 6c81ed0049f8 \'B\' bookmarks:\n+  |/\n   o  0: 1994f17a630e \'A\' bookmarks:\n   \n \n@@ -141,55 +354,136 @@\n   rebasing 1:6c81ed0049f8 X "B"\n   rebasing 2:49cb3485fa0c Y Z "C"\n   saved backup bundle to $TESTTMP/a3/.hg/strip-backup/6c81ed0049f8-a687065f-rebase.hg\n-\n-  $ hg tglog\n-  o  3: 3d5fa227f4b5 \'C\' bookmarks: Y Z\n-  |\n-  @  2: e926fccfa8ec \'B\' bookmarks: X\n-  |\n-  o  1: 41acb9dca9eb \'D\' bookmarks: W\n-  |\n+  strip failed, backup bundle stored in \'$TESTTMP\\a3\\.hg\\strip-backup/6c81ed0049f8-a687065f-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a3\\.hg\\strip-backup/6c81ed0049f8-9ebc5366-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a3\\.hg\\strip-backup/6c81ed0049f8-9ebc5366-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+\n+  $ hg tglog\n+  o  5: 3d5fa227f4b5 \'C\' bookmarks: Y Z\n+  |\n+  @  4: e926fccfa8ec \'B\' bookmarks: X\n+  |\n+  o  3: 41acb9dca9eb \'D\' bookmarks: W\n+  |\n+  | o  2: 49cb3485fa0c \'C\' bookmarks:\n+  | |\n+  | o  1: 6c81ed0049f8 \'B\' bookmarks:\n+  |/\n   o  0: 1994f17a630e \'A\' bookmarks:\n   \n   $ hg bookmarks\n-     W                         1:41acb9dca9eb\n-   * X                         2:e926fccfa8ec\n-     Y                         3:3d5fa227f4b5\n-     Z                         3:3d5fa227f4b5\n+     W                         3:41acb9dca9eb\n+     X                         4:e926fccfa8ec\n+     Y                         5:3d5fa227f4b5\n+     Z                         5:3d5fa227f4b5\n \n rebase --continue with bookmarks present (issue3802)\n \n   $ hg up 2\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (leaving bookmark X)\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo \'C\' > c\n   $ hg add c\n   $ hg ci -m \'other C\'\n-  created new head\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg up 3\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg rebase --dest 4\n-  rebasing 3:3d5fa227f4b5 Y Z "C"\n-  merging c\n-  warning: conflicts while merging c! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg rebase --continue\')\n-  [240]\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo \'c\' > c\n   $ hg resolve --mark c\n-  (no more unresolved files)\n-  continue: hg rebase --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg rebase --continue\n-  rebasing 3:3d5fa227f4b5 Y Z "C"\n-  saved backup bundle to $TESTTMP/a3/.hg/strip-backup/3d5fa227f4b5-c6ea2371-rebase.hg\n-  $ hg tglog\n-  @  4: 45c0f0ec1203 \'C\' bookmarks: Y Z\n-  |\n-  o  3: b0e10b7175fd \'other C\' bookmarks:\n-  |\n-  o  2: e926fccfa8ec \'B\' bookmarks: X\n-  |\n-  o  1: 41acb9dca9eb \'D\' bookmarks: W\n-  |\n+  already rebased 1:6c81ed0049f8 "B" as e926fccfa8ec\n+  already rebased 2:49cb3485fa0c "C" as 3d5fa227f4b5\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg tglog\n+  o  5: 3d5fa227f4b5 \'C\' bookmarks: Y Z\n+  |\n+  @  4: e926fccfa8ec \'B\' bookmarks: X\n+  |\n+  o  3: 41acb9dca9eb \'D\' bookmarks: W\n+  |\n+  | o  2: 49cb3485fa0c \'C\' bookmarks:\n+  | |\n+  | o  1: 6c81ed0049f8 \'B\' bookmarks:\n+  |/\n   o  0: 1994f17a630e \'A\' bookmarks:\n   \n \n@@ -197,20 +491,37 @@\n as --rev arguments (issue3950)\n \n   $ hg update -q 3\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo bimble > bimble\n   $ hg add bimble\n   $ hg commit -q -m \'bisect\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo e >> bimble\n   $ hg ci -m bisect2\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo e >> bimble\n   $ hg ci -m bisect3\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg book bisect\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg update -q Y\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg rebase -r \'"bisect"^^::"bisect"^\' -r bisect -d Z\n-  rebasing 5:345c90f326a4 "bisect"\n-  rebasing 6:f677a2907404 "bisect2"\n-  rebasing 7:325c16001345 bisect tip "bisect3"\n-  saved backup bundle to $TESTTMP/a3/.hg/strip-backup/345c90f326a4-b4840586-rebase.hg\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n Bookmark and working parent get moved even if --keep is set (issue5682)\n \n', 2807, 2809, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-brute-force.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-brute-force.t\n+++ c:/hgdev/src/tests/test-rebase-brute-force.t.err\n@@ -22,20 +22,52 @@\n \n   $ hg debugbruterebase \'all()-Z\' Z\n      A: A\':Z\n-     B: B\':Z\n-    AB: A\':Z B\':Z\n-     C: ABORT: cannot rebase 3:a35c07e8a2a4 without moving at least one of its parents\n-    AC: A\':Z C\':A\'B\n-    BC: B\':Z C\':B\'A\n-   ABC: A\':Z B\':Z C\':A\'B\'\n-     D: D\':Z\n-    AD: A\':Z D\':Z\n-    BD: B\':Z D\':B\'\n-   ABD: A\':Z B\':Z D\':B\'\n-    CD: ABORT: cannot rebase 3:a35c07e8a2a4 without moving at least one of its parents\n-   ACD: A\':Z C\':A\'B D\':Z\n-   BCD: B\':Z C\':B\'A D\':B\'\n-  ABCD: A\':Z B\':Z C\':A\'B\' D\':B\'\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: bruterebase, drawdag\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "c:/hgdev/src/tests/bruterebase.py", line 75, in debugbruterebase\n+      tr.abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 629, in abort\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Moving backwards\n \n@@ -48,9 +80,49 @@\n   > EOS\n   $ hg debugbruterebase \'all()-Z\' Z\n     B: B\':Z\n-    A: \n-   BA: B\':Z\n-    C: ABORT: cannot rebase 3:b8d7149b562b without moving at least one of its parents\n-   BC: B\':Z C\':B\'A\n-   AC: \n-  BAC: B\':Z C\':B\'A\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: bruterebase, drawdag\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "c:/hgdev/src/tests/bruterebase.py", line 75, in debugbruterebase\n+      tr.abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 629, in abort\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n', 2706, 2708, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-cache.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-cache.t\n+++ c:/hgdev/src/tests/test-rebase-cache.t.err\n@@ -105,32 +105,110 @@\n   rebasing 5:635859577d0b "D"\n   rebasing 6:5097051d331d "E"\n   saved backup bundle to $TESTTMP/a1/.hg/strip-backup/635859577d0b-89160bff-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a1\\.hg\\strip-backup/635859577d0b-89160bff-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a1\\.hg\\strip-backup/635859577d0b-b2046f82-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a1\\.hg\\strip-backup/635859577d0b-b2046f82-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg branches\n-  branch3                        8:466cdfb14b62\n-  branch2                        4:e4fdb121d036\n-  branch1                        2:0a03079c47fd\n+  branch3                       10:466cdfb14b62\n+  branch2                        6:5097051d331d\n+  branch1                        2:0a03079c47fd (inactive)\n   default                        0:1994f17a630e (inactive)\n \n   $ hg theads\n-  8: \'E\' branch3\n+  10: \'E\' branch3\n+  6: \'E\' branch2\n   4: \'C\' branch2\n   2: \'B\' branch1\n   0: \'A\' \n \n   $ hg tglog\n-  o  8: \'E\' branch3\n-  |\n-  o  7: \'D\' branch3\n-  |\n-  @  6: \'F\' branch3\n-  |\n-  o  5: \'branch3\' branch3\n-  |\n-  | o  4: \'C\' branch2\n-  | |\n-  | o  3: \'branch2\' branch2\n-  |/\n+  o  10: \'E\' branch3\n+  |\n+  o  9: \'D\' branch3\n+  |\n+  @  8: \'F\' branch3\n+  |\n+  o  7: \'branch3\' branch3\n+  |\n+  | o  6: \'E\' branch2\n+  | |\n+  | o  5: \'D\' branch2\n+  | |\n+  | | o  4: \'C\' branch2\n+  | | |\n+  +---o  3: \'branch2\' branch2\n+  | |\n   | o  2: \'B\' branch1\n   | |\n   | o  1: \'branch1\' branch1\n@@ -167,23 +245,98 @@\n   $ hg rebase -s 8 -d 6\n   rebasing 8:4666b71e8e32 tip "F"\n   saved backup bundle to $TESTTMP/a2/.hg/strip-backup/4666b71e8e32-fc1c4e96-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a2\\.hg\\strip-backup/4666b71e8e32-fc1c4e96-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a2\\.hg\\strip-backup/4666b71e8e32-ab680fba-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a2\\.hg\\strip-backup/4666b71e8e32-ab680fba-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg branches\n-  branch2                        8:6b4bdc1b5ac0\n-  branch3                        7:653b9feb4616\n+  branch2                        9:6b4bdc1b5ac0\n+  branch3                        8:4666b71e8e32\n   branch1                        2:0a03079c47fd (inactive)\n   default                        0:1994f17a630e (inactive)\n \n   $ hg theads\n-  8: \'F\' branch2\n-  7: \'branch3\' branch3\n+  9: \'F\' branch2\n+  8: \'F\' branch3\n   4: \'C\' branch2\n   2: \'B\' branch1\n   0: \'A\' \n \n   $ hg tglog\n-  @  8: \'F\' branch2\n-  |\n+  @  9: \'F\' branch2\n+  |\n+  | o  8: \'F\' branch3\n+  | |\n   | o  7: \'branch3\' branch3\n   | |\n   o |  6: \'E\' branch2\n@@ -201,6 +354,7 @@\n   o  0: \'A\'\n   \n   $ hg verify -q\n+  abandoned transaction found - run hg recover\n \n   $ cd ..\n \n@@ -234,29 +388,108 @@\n   note: not rebasing 7:653b9feb4616 "branch3", its destination already has all its changes\n   rebasing 8:4666b71e8e32 tip "F"\n   saved backup bundle to $TESTTMP/a3/.hg/strip-backup/653b9feb4616-3c88de16-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a3\\.hg\\strip-backup/653b9feb4616-3c88de16-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a3\\.hg\\strip-backup/653b9feb4616-ab680fba-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a3\\.hg\\strip-backup/653b9feb4616-ab680fba-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg branches\n-  branch2                        7:6b4bdc1b5ac0\n+  branch2                        9:6b4bdc1b5ac0\n+  branch3                        8:4666b71e8e32\n   branch1                        2:0a03079c47fd (inactive)\n   default                        0:1994f17a630e (inactive)\n \n   $ hg theads\n-  7: \'F\' branch2\n+  9: \'F\' branch2\n+  8: \'F\' branch3\n   4: \'C\' branch2\n   2: \'B\' branch1\n   0: \'A\' \n \n   $ hg tglog\n-  @  7: \'F\' branch2\n-  |\n-  o  6: \'E\' branch2\n-  |\n-  o  5: \'D\' branch2\n-  |\n-  | o  4: \'C\' branch2\n-  | |\n-  | o  3: \'branch2\' branch2\n-  | |\n+  @  9: \'F\' branch2\n+  |\n+  | o  8: \'F\' branch3\n+  | |\n+  | o  7: \'branch3\' branch3\n+  | |\n+  o |  6: \'E\' branch2\n+  | |\n+  o |  5: \'D\' branch2\n+  | |\n+  | | o  4: \'C\' branch2\n+  | | |\n+  | | o  3: \'branch2\' branch2\n+  | |/\n   o |  2: \'B\' branch1\n   | |\n   o |  1: \'branch1\' branch1\n@@ -264,220 +497,58 @@\n   o  0: \'A\'\n   \n   $ hg verify -q\n+  abandoned transaction found - run hg recover\n \n Stripping multiple branches in one go bypasses the fast-case code to\n update the branch cache.\n \n   $ hg strip 2\n-  0 files updated, 0 files merged, 4 files removed, 0 files unresolved\n-  saved backup bundle to $TESTTMP/a3/.hg/strip-backup/0a03079c47fd-11b7c407-backup.hg\n-\n-  $ hg tglog\n-  o  3: \'C\' branch2\n-  |\n-  o  2: \'branch2\' branch2\n-  |\n-  | @  1: \'branch1\' branch1\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+\n+  $ hg tglog\n+  @  9: \'F\' branch2\n+  |\n+  | o  8: \'F\' branch3\n+  | |\n+  | o  7: \'branch3\' branch3\n+  | |\n+  o |  6: \'E\' branch2\n+  | |\n+  o |  5: \'D\' branch2\n+  | |\n+  | | o  4: \'C\' branch2\n+  | | |\n+  | | o  3: \'branch2\' branch2\n+  | |/\n+  o |  2: \'B\' branch1\n+  | |\n+  o |  1: \'branch1\' branch1\n   |/\n   o  0: \'A\'\n   \n \n   $ hg branches\n-  branch2                        3:e4fdb121d036\n-  branch1                        1:63379ac49655\n+  branch2                        9:6b4bdc1b5ac0\n+  branch3                        8:4666b71e8e32\n+  branch1                        2:0a03079c47fd (inactive)\n   default                        0:1994f17a630e (inactive)\n \n   $ hg theads\n-  3: \'C\' branch2\n-  1: \'branch1\' branch1\n+  9: \'F\' branch2\n+  8: \'F\' branch3\n+  4: \'C\' branch2\n+  2: \'B\' branch1\n   0: \'A\' \n \n Fast path branchcache code should not be invoked if branches stripped is not\n the same as branches remaining.\n \n   $ hg init b\n+  abort: cannot create new bundle repository\n+  [255]\n   $ cd b\n+  $TESTTMP.sh: line 131: cd: b: $ENOTDIR$\n \n   $ hg branch branch1\n-  marked working directory as branch branch1\n-  (branches are permanent and global, did you want a bookmark?)\n-  $ hg ci -m \'branch1\'\n-\n-  $ hg branch branch2\n-  marked working directory as branch branch2\n-  $ hg ci -m \'branch2\'\n-\n-  $ hg branch -f branch1\n-  marked working directory as branch branch1\n-\n-  $ echo a > A\n-  $ hg ci -Am A\n-  adding A\n-  created new head\n-\n-  $ hg tglog\n-  @  2: \'A\' branch1\n-  |\n-  o  1: \'branch2\' branch2\n-  |\n-  o  0: \'branch1\' branch1\n-  \n-\n-  $ hg theads\n-  2: \'A\' branch1\n-  1: \'branch2\' branch2\n-\n-  $ hg strip 2\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  saved backup bundle to $TESTTMP/a3/b/.hg/strip-backup/a5b4b27ed7b4-a3b6984e-backup.hg\n-\n-  $ hg theads\n-  1: \'branch2\' branch2\n-  0: \'branch1\' branch1\n-\n-\n-Make sure requesting to strip a revision already stripped does not confuse things.\n-Try both orders.\n-\n-  $ cd ..\n-\n-  $ hg init c\n-  $ cd c\n-\n-  $ echo a > a\n-  $ hg ci -Am A\n-  adding a\n-  $ echo b > b\n-  $ hg ci -Am B\n-  adding b\n-  $ echo c > c\n-  $ hg ci -Am C\n-  adding c\n-  $ echo d > d\n-  $ hg ci -Am D\n-  adding d\n-  $ echo e > e\n-  $ hg ci -Am E\n-  adding e\n-\n-  $ hg tglog\n-  @  4: \'E\'\n-  |\n-  o  3: \'D\'\n-  |\n-  o  2: \'C\'\n-  |\n-  o  1: \'B\'\n-  |\n-  o  0: \'A\'\n-  \n-\n-  $ hg strip 3 4\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n-  saved backup bundle to $TESTTMP/a3/c/.hg/strip-backup/67a385d4e6f2-b9243789-backup.hg\n-\n-  $ hg theads\n-  2: \'C\' \n-\n-  $ hg strip 2 1\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n-  saved backup bundle to $TESTTMP/a3/c/.hg/strip-backup/6c81ed0049f8-a687065f-backup.hg\n-\n-  $ hg theads\n-  0: \'A\' \n-\n-Make sure rebase does not break for phase/filter related reason\n-----------------------------------------------------------------\n-(issue3858)\n-\n-  $ cd ..\n-\n-  $ cat >> $HGRCPATH << EOF\n-  > [ui]\n-  > logtemplate={rev} {desc} {phase}\\n\n-  > EOF\n-\n-\n-  $ hg init c4\n-  $ cd c4\n-\n-  $ echo a > a\n-  $ hg ci -Am A\n-  adding a\n-  $ echo b > b\n-  $ hg ci -Am B\n-  adding b\n-  $ hg up 0\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ echo c > c\n-  $ hg ci -Am C\n-  adding c\n-  created new head\n-  $ hg up 1\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg merge\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n-  $ hg ci -m d\n-  $ hg up 2\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ echo e > e\n-  $ hg ci -Am E\n-  adding e\n-  created new head\n-  $ hg merge 3\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n-  $ hg ci -m F\n-  $ hg up 3\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ echo g > g\n-  $ hg ci -Am G\n-  adding g\n-  created new head\n-  $ echo h > h\n-  $ hg ci -Am H\n-  adding h\n-  $ hg up 5\n-  1 files updated, 0 files merged, 2 files removed, 0 files unresolved\n-  $ echo i > i\n-  $ hg ci -Am I\n-  adding i\n-\n-Turn most changeset public\n-\n-  $ hg ph -p 7\n-\n-  $ hg heads\n-  8 I draft\n-  7 H public\n-  $ hg log -G\n-  @  8 I draft\n-  |\n-  | o  7 H public\n-  | |\n-  | o  6 G public\n-  | |\n-  o |  5 F draft\n-  |\\|\n-  o |  4 E draft\n-  | |\n-  | o  3 d public\n-  |/|\n-  o |  2 C public\n-  | |\n-  | o  1 B public\n-  |/\n-  o  0 A public\n-  \n-\n-  $ cat > $TESTTMP/checkeditform.sh <<EOF\n-  > env | grep HGEDITFORM\n-  > true\n-  > EOF\n-  $ HGEDITOR="sh $TESTTMP/checkeditform.sh" hg rebase --dest 7 --source 5 -e\n-  rebasing 5:361a99976cc9 "F"\n-  HGEDITFORM=rebase.merge\n-  rebasing 8:326cfedc031c tip "I"\n-  HGEDITFORM=rebase.normal\n-  saved backup bundle to $TESTTMP/a3/c4/.hg/strip-backup/361a99976cc9-35e980d0-rebase.hg\n', 2518, 2520, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-check-restore.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-check-restore.t\n+++ c:/hgdev/src/tests/test-rebase-check-restore.t.err\n@@ -139,14 +139,83 @@\n   $ hg rebase --continue\n   rebasing 5:01e6ebbd8272 tip "F"\n   saved backup bundle to $TESTTMP/a2/.hg/strip-backup/01e6ebbd8272-6fd3a015-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a2\\.hg\\strip-backup/01e6ebbd8272-6fd3a015-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a2\\.hg\\strip-backup/01e6ebbd8272-b9aed1c0-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a2\\.hg\\strip-backup/01e6ebbd8272-b9aed1c0-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  @  5:draft \'F\' notdefault\n-  |\n-  o  4:draft \'E\'\n-  |\n-  o  3:draft \'D\'\n-  |\n+  @  6:draft \'F\' notdefault\n+  |\n+  | o  5:draft \'F\' notdefault\n+  | |\n+  o |  4:draft \'E\'\n+  | |\n+  o |  3:draft \'D\'\n+  |/\n   | o  2:secret \'C\'\n   | |\n   | o  1:draft \'B\'\n@@ -163,32 +232,33 @@\n \n   $ echo conflict > A\n   $ hg debugobsolete 071d07019675449d53b7e312c65bcf28adbbdb64 965c486023dbfdc9c32c52dc249a231882fd5c17\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg update -r 2 --config ui.merge=internal:merge --merge\n-  merging A\n-  warning: conflicts while merging A! (edit, then use \'hg resolve --mark\')\n-  1 files updated, 0 files merged, 1 files removed, 1 files unresolved\n-  use \'hg resolve\' to retry unresolved file merges\n-  [1]\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg resolve A\n-  merging A\n-  warning: conflicts while merging A! (edit, then use \'hg resolve --mark\')\n-  [1]\n+  abort: resolve command not applicable when not merging\n+  [20]\n \n An unresolved conflict will pin the obsolete revision\n \n   $ hg log -G -Tcompact\n-  %  5[tip]   071d07019675   1970-01-01 00:00 +0000   test\n+  @  6[tip]:4   071d07019675   1970-01-01 00:00 +0000   test\n   |    F\n   |\n-  o  4   ae36e8e3dfd7   1970-01-01 00:00 +0000   test\n-  |    E\n-  |\n-  o  3:0   46b37eabc604   1970-01-01 00:00 +0000   test\n-  |    D\n-  |\n-  | @  2   965c486023db   1970-01-01 00:00 +0000   test\n+  | o  5:0   01e6ebbd8272   1970-01-01 00:00 +0000   test\n+  | |    F\n+  | |\n+  o |  4   ae36e8e3dfd7   1970-01-01 00:00 +0000   test\n+  | |    E\n+  | |\n+  o |  3:0   46b37eabc604   1970-01-01 00:00 +0000   test\n+  |/     D\n+  |\n+  | o  2   965c486023db   1970-01-01 00:00 +0000   test\n   | |    C\n   | |\n   | o  1   27547f69f254   1970-01-01 00:00 +0000   test\n@@ -201,15 +271,22 @@\n But resolving the conflicts will unpin it\n \n   $ hg resolve -m A\n-  (no more unresolved files)\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg log -G -Tcompact\n-  o  4[tip]   ae36e8e3dfd7   1970-01-01 00:00 +0000   test\n-  |    E\n-  |\n-  o  3:0   46b37eabc604   1970-01-01 00:00 +0000   test\n-  |    D\n-  |\n-  | @  2   965c486023db   1970-01-01 00:00 +0000   test\n+  @  6[tip]:4   071d07019675   1970-01-01 00:00 +0000   test\n+  |    F\n+  |\n+  | o  5:0   01e6ebbd8272   1970-01-01 00:00 +0000   test\n+  | |    F\n+  | |\n+  o |  4   ae36e8e3dfd7   1970-01-01 00:00 +0000   test\n+  | |    E\n+  | |\n+  o |  3:0   46b37eabc604   1970-01-01 00:00 +0000   test\n+  |/     D\n+  |\n+  | o  2   965c486023db   1970-01-01 00:00 +0000   test\n   | |    C\n   | |\n   | o  1   27547f69f254   1970-01-01 00:00 +0000   test\n@@ -219,5 +296,8 @@\n        A\n   \n   $ hg up -C -q .\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n   $ cd ..\n', 2521, 2523, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-collapse.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-collapse.t\n+++ c:/hgdev/src/tests/test-rebase-collapse.t.err\n@@ -55,19 +55,100 @@\n   HG: added D\n   ====\n   saved backup bundle to $TESTTMP/phase/.hg/strip-backup/112478962961-cb2a9b47-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\phase\\.hg\\strip-backup/112478962961-cb2a9b47-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\phase\\.hg\\strip-backup/112478962961-f079ba72-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\phase\\.hg\\strip-backup/112478962961-f079ba72-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, mq, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglogp\n-  o  3: 92fa5f5fe108 secret \'Collapsed revision\n+  o  6: 92fa5f5fe108 secret \'Collapsed revision\n   |  * B\n   |  * C\n   |  * D\n   |\n   |\n   |  edited manually\'\n-  o  2: 64a8289d2492 draft \'F\'\n-  |\n-  o  1: 7fb047a69f22 draft \'E\'\n-  |\n+  | o  5: f585351a92f8 secret \'D\'\n+  | |\n+  o |  4: 64a8289d2492 draft \'F\'\n+  | |\n+  | o  3: 26805aba1e60 draft \'C\'\n+  | |\n+  o |  2: 7fb047a69f22 draft \'E\'\n+  | |\n+  | o  1: 112478962961 draft \'B\'\n+  |/\n   o  0: 426bada5c675 draft \'A\'\n   \n   $ hg manifest --rev tip\n@@ -99,15 +180,94 @@\n   rebasing 1:112478962961 B "B"\n   rebasing 3:4e4f9194f9f1 D "D"\n   saved backup bundle to $TESTTMP/linearized-merge/.hg/strip-backup/112478962961-e389075b-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\linearized-merge\\.hg\\strip-backup/112478962961-e389075b-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\linearized-merge\\.hg\\strip-backup/112478962961-74a1f7f1-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\linearized-merge\\.hg\\strip-backup/112478962961-74a1f7f1-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, mq, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  o  3: 5bdc08b7da2b \'Collapsed revision\n+  o  5: 5bdc08b7da2b \'Collapsed revision\n   |  * B\n   |  * D\'\n-  o  2: afc707c82df0 \'F\'\n+  o  4: afc707c82df0 \'F\'\n   |\n-  o  1: dc0947a82db8 \'C\'\n-  |\n+  | o  3: 4e4f9194f9f1 \'D\'\n+  |/|\n+  o |  2: dc0947a82db8 \'C\'\n+  | |\n+  | o  1: 112478962961 \'B\'\n+  |/\n   o  0: 426bada5c675 \'A\'\n   \n   $ hg manifest --rev tip\n@@ -145,12 +305,91 @@\n   rebasing 3:26805aba1e60 C tip "C"\n   HGEDITFORM=rebase.collapse\n   saved backup bundle to $TESTTMP/message/.hg/strip-backup/112478962961-f4131707-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\message\\.hg\\strip-backup/112478962961-f4131707-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\message\\.hg\\strip-backup/112478962961-51119c28-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\message\\.hg\\strip-backup/112478962961-51119c28-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, mq, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  o  2: 2f197b9a08f3 \'custom message\'\n+  o  4: 2f197b9a08f3 \'custom message\'\n   |\n-  o  1: b18e25de2cf5 \'D\'\n-  |\n+  | o  3: 26805aba1e60 \'C\'\n+  | |\n+  o |  2: b18e25de2cf5 \'D\'\n+  | |\n+  | o  1: 112478962961 \'B\'\n+  |/\n   o  0: 426bada5c675 \'A\'\n   \n   $ hg manifest --rev tip\n@@ -189,18 +428,99 @@\n   rebasing 6:11abe3fb10b8 F "F"\n   rebasing 7:64e264db77f0 G tip "G"\n   saved backup bundle to $TESTTMP/multiple-external-parents/.hg/strip-backup/49cb92066bfd-ee8a8a79-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\multiple-external-parents\\.hg\\strip-backup/49cb92066bfd-ee8a8a79-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\multiple-external-parents\\.hg\\strip-backup/49cb92066bfd-a7516a81-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\multiple-external-parents\\.hg\\strip-backup/49cb92066bfd-a7516a81-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, mq, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  o    5: 8b2315790719 \'Collapsed revision\n+  o    8: 8b2315790719 \'Collapsed revision\n   |\\   * E\n   | |  * F\n   | |  * G\'\n-  | o    4: 4e4f9194f9f1 \'D\'\n-  | |\\\n+  | | o  7: 64e264db77f0 \'G\'\n+  | |/|\n+  | | o  6: 11abe3fb10b8 \'F\'\n+  | | |\n+  | | o  5: 49cb92066bfd \'E\'\n+  | | |\n+  | o |  4: 4e4f9194f9f1 \'D\'\n+  | |\\|\n   o | |  3: 575c4b5ec114 \'H\'\n   | | |\n-  +---o  2: dc0947a82db8 \'C\'\n-  | |\n+  | o |  2: dc0947a82db8 \'C\'\n+  |/ /\n   | o  1: 112478962961 \'B\'\n   |/\n   o  0: 426bada5c675 \'A\'\n@@ -251,17 +571,74 @@\n \n   $ hg strip 4\n   saved backup bundle to $TESTTMP/branch-heads/.hg/strip-backup/4e4f9194f9f1-5ec4b5e6-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\branch-heads\\.hg\\strip-backup/4e4f9194f9f1-5ec4b5e6-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\branch-heads\\.hg\\strip-backup/4e4f9194f9f1-37bdcbb6-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\branch-heads\\.hg\\strip-backup/4e4f9194f9f1-37bdcbb6-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, mq, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ cat $TESTTMP/branch-heads/.hg/cache/branch2-served\n-  11abe3fb10b8689b560681094b17fe161871d043 5\n-  dc0947a82db884575bb76ea10ac97b08536bfa03 o default\n+  64e264db77f061f16d9132b70c5a58e2461fb630 7\n   575c4b5ec114d64b681d33f8792853568bfb2b2c o default\n-  11abe3fb10b8689b560681094b17fe161871d043 o default\n+  64e264db77f061f16d9132b70c5a58e2461fb630 o default\n \n   $ hg heads --template="{rev}:{node} {branch}\\n"\n-  5:11abe3fb10b8689b560681094b17fe161871d043 default\n+  7:64e264db77f061f16d9132b70c5a58e2461fb630 default\n   3:575c4b5ec114d64b681d33f8792853568bfb2b2c default\n-  2:dc0947a82db884575bb76ea10ac97b08536bfa03 default\n \n   $ cd ..\n \n@@ -303,12 +680,93 @@\n   rebasing 7:a6db7fa104e1 G "G"\n   rebasing 8:e1d201b72d91 H tip "H"\n   saved backup bundle to $TESTTMP/external-parent/.hg/strip-backup/c82b08f646f1-f2721fbf-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\external-parent\\.hg\\strip-backup/c82b08f646f1-f2721fbf-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\external-parent\\.hg\\strip-backup/c82b08f646f1-4a132198-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\external-parent\\.hg\\strip-backup/c82b08f646f1-4a132198-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, mq, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  o    6: 681daa3e686d \'Collapsed revision\n+  o    9: 681daa3e686d \'Collapsed revision\n   |\\   * F\n   | |  * G\n   | |  * H\'\n+  | | o  8: e1d201b72d91 \'H\'\n+  | |/|\n+  | | o  7: a6db7fa104e1 \'G\'\n+  | | |\n+  | | o  6: c82b08f646f1 \'F\'\n+  | | |\n   | | o  5: 49cb92066bfd \'E\'\n   | | |\n   | o |  4: 09143c0bf13e \'D\'\n@@ -331,8 +789,12 @@\n   I\n \n   $ hg up tip -q\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ cat E\n-  F\n+  cat: E: $ENOENT$\n+  [1]\n \n   $ cd ..\n \n@@ -350,11 +812,90 @@\n   rebasing 1:fc2b737bb2e5 B "B"\n   rebasing 2:dc0947a82db8 C "C"\n   saved backup bundle to $TESTTMP/multiple-bases/.hg/strip-backup/dc0947a82db8-b0c1a7ea-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\multiple-bases\\.hg\\strip-backup/dc0947a82db8-b0c1a7ea-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\multiple-bases\\.hg\\strip-backup/dc0947a82db8-1ae33c9f-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\multiple-bases\\.hg\\strip-backup/dc0947a82db8-1ae33c9f-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, mq, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg tglog\n-  o  2: 2127ae44d291 \'Collapsed revision\n+  o  4: 2127ae44d291 \'Collapsed revision\n   |  * B\n   |  * C\'\n-  o  1: b18e25de2cf5 \'D\'\n+  o  3: b18e25de2cf5 \'D\'\n+  |\n+  | o  2: dc0947a82db8 \'C\'\n+  |/\n+  | o  1: fc2b737bb2e5 \'B\'\n   |\n   o  0: 426bada5c675 \'A\'\n   \n@@ -429,15 +970,98 @@\n   rebasing 4:be0ef73c17ad D "D"\n   rebasing 5:02c4367d6973 E tip "E"\n   saved backup bundle to $TESTTMP/internal-merge/.hg/strip-backup/112478962961-1dfb057b-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\internal-merge\\.hg\\strip-backup/112478962961-1dfb057b-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\internal-merge\\.hg\\strip-backup/112478962961-3e641a93-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\internal-merge\\.hg\\strip-backup/112478962961-3e641a93-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, mq, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  o  2: c0512a1797b0 \'Collapsed revision\n+  o  6: c0512a1797b0 \'Collapsed revision\n   |  * B\n   |  * C\n   |  * D\n   |  * E\'\n-  o  1: 8908a377a434 \'F\'\n-  |\n+  | o    5: 02c4367d6973 \'E\'\n+  | |\\\n+  | | o  4: be0ef73c17ad \'D\'\n+  | | |\n+  | o |  3: 26805aba1e60 \'C\'\n+  | |/\n+  o |  2: 8908a377a434 \'F\'\n+  | |\n+  | o  1: 112478962961 \'B\'\n+  |/\n   o  0: 426bada5c675 \'A\'\n   \n   $ hg manifest --rev tip\n@@ -518,6 +1142,81 @@\n   merging f and c to c\n   merging e and g to g\n   saved backup bundle to $TESTTMP/copies/.hg/strip-backup/6e7340ee38c0-ef8ef003-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\copies\\.hg\\strip-backup/6e7340ee38c0-ef8ef003-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\copies\\.hg\\strip-backup/6e7340ee38c0-166853e3-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\copies\\.hg\\strip-backup/6e7340ee38c0-166853e3-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, mq, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg st\n   $ hg st --copies --change tip\n   A d\n@@ -526,6 +1225,9 @@\n     b\n   R b\n   $ hg up tip -q\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ cat c\n   c\n   c\n@@ -541,33 +1243,38 @@\n Test collapsing a middle revision in-place\n \n   $ hg tglog\n-  @  2: 64b456429f67 \'Collapsed revision\n+  @  4: 64b456429f67 \'Collapsed revision\n   |  * move1\n   |  * move2\'\n-  o  1: 1352765a01d4 \'change\'\n-  |\n+  | o  3: 338e84e2e558 \'move2\'\n+  | |\n+  | o  2: 6e7340ee38c0 \'move1\'\n+  | |\n+  o |  1: 1352765a01d4 \'change\'\n+  |/\n   o  0: f447d5abf5ea \'add\'\n   \n   $ hg rebase --collapse -r 1 -d 0\n-  abort: cannot rebase changeset with children\n-  (use --keep to keep original changesets)\n-  [10]\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n Test collapsing in place\n \n   $ hg rebase --collapse -b . -d 0\n-  rebasing 1:1352765a01d4 "change"\n-  rebasing 2:64b456429f67 tip "Collapsed revision"\n-  saved backup bundle to $TESTTMP/copies/.hg/strip-backup/1352765a01d4-45a352ea-rebase.hg\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg st --change tip --copies\n-  M a\n-  M c\n   A d\n     a\n   A g\n     b\n   R b\n   $ hg up tip -q\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ cat a\n   a\n   a\n@@ -600,15 +1307,75 @@\n \n   $ hg strip C\n   saved backup bundle to $TESTTMP/f/.hg/strip-backup/dc0947a82db8-d21b92a4-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\f\\.hg\\strip-backup/dc0947a82db8-d21b92a4-backup.hg\'\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, mq, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  o  1: 112478962961 \'B\'\n+  o  2: dc0947a82db8 \'C\'\n   |\n+  | o  1: 112478962961 \'B\'\n+  |/\n   o  0: 426bada5c675 \'A\'\n   \n \n \n   $ hg heads --template="{rev}:{node} {branch}: {desc}\\n"\n+  2:dc0947a82db884575bb76ea10ac97b08536bfa03 default: C\n   1:112478962961147124edd43549aedd1a335e44bf default: B\n \n   $ cd ..\n@@ -633,9 +1400,88 @@\n   rebasing 1:6d8d9f24eec3 "a"\n   rebasing 2:1cc73eca5ecc foo tip "b"\n   saved backup bundle to $TESTTMP/collapseaddremove/.hg/strip-backup/6d8d9f24eec3-77d3b6e2-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\collapseaddremove\\.hg\\strip-backup/6d8d9f24eec3-77d3b6e2-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\collapseaddremove\\.hg\\strip-backup/6d8d9f24eec3-320598c7-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\collapseaddremove\\.hg\\strip-backup/6d8d9f24eec3-320598c7-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, mq, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log -G --template "{rev}: \'{desc}\' {bookmarks}"\n-  @  1: \'collapsed\' foo\n+  @  3: \'collapsed\' foo\n   |\n+  | o  2: \'b\'\n+  | |\n+  | o  1: \'a\'\n+  |/\n   o  0: \'base\'\n   \n   $ hg manifest --rev tip\n@@ -667,18 +1513,100 @@\n   $ hg rebase --continue\n   rebasing 1:81e5401e4d37 B "B"\n   saved backup bundle to $TESTTMP/collapse_remember_message/.hg/strip-backup/81e5401e4d37-96c3dd30-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\collapse_remember_message\\.hg\\strip-backup/81e5401e4d37-96c3dd30-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\collapse_remember_message\\.hg\\strip-backup/81e5401e4d37-a00ce25f-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\collapse_remember_message\\.hg\\strip-backup/81e5401e4d37-a00ce25f-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, mq, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log\n-  changeset:   2:17186933e123\n+  changeset:   3:17186933e123\n   tag:         tip\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n   summary:     new message\n   \n-  changeset:   1:043039e9df84\n+  changeset:   2:043039e9df84\n   tag:         C\n+  parent:      0:426bada5c675\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n   summary:     C\n+  \n+  changeset:   1:81e5401e4d37\n+  tag:         B\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     B\n   \n   changeset:   0:426bada5c675\n   tag:         A\n@@ -774,3 +1702,78 @@\n   already rebased 1:f899f3910ce7 B "B" as 82b8abf9c185\n   already rebased 3:63668d570d21 C tip "C" as 82b8abf9c185\n   saved backup bundle to $TESTTMP/aborted-editor/.hg/strip-backup/f899f3910ce7-7cab5e15-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\aborted-editor\\.hg\\strip-backup/f899f3910ce7-7cab5e15-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\aborted-editor\\.hg\\strip-backup/f899f3910ce7-8c5e1bef-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\aborted-editor\\.hg\\strip-backup/f899f3910ce7-8c5e1bef-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, mq, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n', 2676, 2678, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-conflicts.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-conflicts.t\n+++ c:/hgdev/src/tests/test-rebase-conflicts.t.err\n@@ -102,16 +102,91 @@\n   rebasing 4:46f0b057b5c0 "L2"\n   rebasing 5:8029388f38dc mybook "L3"\n   saved backup bundle to $TESTTMP/a/.hg/strip-backup/3163e20567cc-5ca4656e-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a\\.hg\\strip-backup/3163e20567cc-5ca4656e-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a\\.hg\\strip-backup/3163e20567cc-fad55c47-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a\\.hg\\strip-backup/3163e20567cc-fad55c47-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  @  5:secret \'L3\'  mybook\n-  |\n-  o  4:secret \'L2\'\n-  |\n-  o  3:draft \'L1\'\n-  |\n-  o  2:draft \'C3\'\n-  |\n+  @  8:secret \'L3\'  mybook\n+  |\n+  o  7:secret \'L2\'\n+  |\n+  o  6:draft \'L1\'\n+  |\n+  | o  5:secret \'L3\'\n+  | |\n+  | o  4:secret \'L2\'\n+  | |\n+  | o  3:draft \'L1\'\n+  | |\n+  o |  2:draft \'C3\'\n+  |/\n   o  1:draft \'C2\'\n   |\n   o  0:draft \'C1\'\n@@ -133,17 +208,18 @@\n   $ hg cat -r 3 common\n   c1\n   c2\n-  c3\n \n   $ hg cat -r 4 common\n-  resolved merge\n+  c1\n+  l2\n \n   $ hg cat -r 5 common\n-  resolved merge\n+  c1\n+  l2\n \n Bookmark stays active after --continue\n   $ hg bookmarks\n-   * mybook                    5:d67b21408fc0\n+     mybook                    8:d67b21408fc0\n \n   $ cd ..\n \n@@ -305,80 +381,133 @@\n   bundle2-output-part: "changegroup" (params: 1 mandatory 1 advisory) streamed payload\n   bundle2-output-part: "cache:rev-branch-cache" (advisory) streamed payload\n   bundle2-output-part: "phase-heads" 24 bytes payload\n-  adding branch\n-  bundle2-input-bundle: with-transaction\n-  bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported\n-  adding changesets\n-  add changeset 4c9fbe56a16f\n-  add changeset 19c888675e13\n-  add changeset 2a7f09cac94c\n-  adding manifests\n-  adding file changes\n-  adding f1.txt revisions\n-  bundle2-input-part: total payload size 1686\n-  bundle2-input-part: "cache:rev-branch-cache" (advisory) supported\n-  bundle2-input-part: total payload size 74\n-  truncating cache/rbc-revs-v1 to 56\n-  bundle2-input-part: "phase-heads" supported\n-  bundle2-input-part: total payload size 24\n-  bundle2-input-bundle: 3 parts total\n-  added 2 changesets with 2 changes to 1 files\n-  updating the branch cache\n-  invalid branch cache (served): tip differs\n-  invalid branch cache (served.hidden): tip differs\n-  rebase completed\n+  strip failed, backup bundle stored in \'$TESTTMP\\issue4041\\.hg\\strip-backup/e31216eec445-15f7a814-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\issue4041\\.hg\\strip-backup/e31216eec445-425eacca-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\issue4041\\.hg\\strip-backup/e31216eec445-425eacca-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Test minimization of merge conflicts\n   $ hg up -q null\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo a > a\n   $ hg add a\n   $ hg commit -q -m \'a\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo b >> a\n   $ hg commit -q -m \'ab\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg bookmark ab\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up -q \'.^\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo b >> a\n   $ echo c >> a\n   $ hg commit -q -m \'abc\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg rebase -s 7bc217434fc1 -d ab --keep\n-  rebasing 13:7bc217434fc1 tip "abc"\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg rebase --continue\')\n-  [240]\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg diff\n-  diff -r 328e4ab1f7cc a\n-  --- a/a\tThu Jan 01 00:00:00 1970 +0000\n+  diff -r d79e2059b5c0 a\n+  --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n   +++ b/a\t* (glob)\n-  @@ -1,2 +1,6 @@\n-   a\n-   b\n-  +<<<<<<< dest:   328e4ab1f7cc ab - test: ab\n-  +=======\n-  +c\n-  +>>>>>>> source: 7bc217434fc1 - test: abc\n-  $ hg rebase --abort\n-  rebase aborted\n-  $ hg up -q -C 7bc217434fc1\n-  $ hg rebase -s . -d ab --keep -t internal:merge3\n-  rebasing 13:7bc217434fc1 tip "abc"\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg rebase --continue\')\n-  [240]\n-  $ hg diff\n-  diff -r 328e4ab1f7cc a\n-  --- a/a\tThu Jan 01 00:00:00 1970 +0000\n-  +++ b/a\t* (glob)\n-  @@ -1,2 +1,8 @@\n-   a\n-  +<<<<<<< dest:   328e4ab1f7cc ab - test: ab\n-   b\n-  +||||||| base\n-  +=======\n+  @@ -0,0 +1,4 @@\n+  +a\n+  +b\n   +b\n   +c\n-  +>>>>>>> source: 7bc217434fc1 - test: abc\n+  $ hg rebase --abort\n+  saved backup bundle to $TESTTMP/issue4041/.hg/strip-backup/19c888675e13-425eacca-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\issue4041\\.hg\\strip-backup/19c888675e13-425eacca-backup.hg\'\n+  rebase aborted\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg up -q -C 7bc217434fc1\n+  abort: unknown revision \'7bc217434fc1\'\n+  [255]\n+  $ hg rebase -s . -d ab --keep -t internal:merge3\n+  abort: unknown revision \'ab\'\n+  [255]\n+  $ hg diff\n \n Test rebase with obsstore turned on and off (issue5606)\n \n@@ -398,6 +527,69 @@\n   $ hg update E -q\n   $ echo 3 > B\n   $ hg commit --amend -m E -A B -q\n+  strip failed, backup bundle stored in \'$TESTTMP\\b\\.hg\\strip-backup/7fb047a69f22-ad02f30b-amend.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\b\\.hg\\strip-backup/7fb047a69f22-217f40db-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\b\\.hg\\strip-backup/7fb047a69f22-217f40db-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2098, in _docommit\n+      node = cmdutil.amend(ui, repo, old, extra, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2994, in amend\n+      dirstate.drop(f)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg rebase -r B+D -d . --config experimental.evolution=true\n   rebasing 1:112478962961 B "B"\n   merging B\n@@ -411,19 +603,19 @@\n   continue: hg rebase --continue\n   $ hg rebase --continue --config experimental.evolution=none\n   rebasing 1:112478962961 B "B"\n-  rebasing 3:f585351a92f8 D "D"\n-  warning: orphaned descendants detected, not stripping 112478962961\n-  saved backup bundle to $TESTTMP/b/.hg/strip-backup/f585351a92f8-e536a9e4-rebase.hg\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ rm .hg/localtags\n   $ hg tglog\n-  o  5:draft \'D\'\n-  |\n-  o  4:draft \'B\'\n-  |\n-  @  3:draft \'E\'\n-  |\n-  | o  2:draft \'C\'\n+  @  5:draft \'E\'\n+  |\n+  | o  4:draft \'D\'\n+  | |\n+  | o  3:draft \'C\'\n+  | |\n+  +---o  2:draft \'E\'\n   | |\n   | o  1:draft \'B\'\n   |/\n@@ -485,16 +677,93 @@\n   already rebased 4:03ca77807e91 E "E" as cbf25af8347d\n   rebasing 5:9a6b91dc2044 F "F"\n   saved backup bundle to $TESTTMP/conflict-in-merge/.hg/strip-backup/dc0947a82db8-ca7e7d5b-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\conflict-in-merge\\.hg\\strip-backup/dc0947a82db8-ca7e7d5b-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\conflict-in-merge\\.hg\\strip-backup/dc0947a82db8-06c1b503-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\conflict-in-merge\\.hg\\strip-backup/dc0947a82db8-06c1b503-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg tglog\n-  @    5:draft \'F\'\n+  @    9:draft \'F\'\n   |\\\n-  | o  4:draft \'E\'\n-  | |\n-  o |  3:draft \'D\'\n+  | o  8:draft \'E\'\n+  | |\n+  o |  7:draft \'D\'\n   |/\n-  o  2:draft \'C\'\n-  |\n-  o  1:draft \'B\'\n-  |\n+  o  6:draft \'C\'\n+  |\n+  | o    5:draft \'F\'\n+  | |\\\n+  | | o  4:draft \'E\'\n+  | | |\n+  | o |  3:draft \'D\'\n+  | |/\n+  | o  2:draft \'C\'\n+  | |\n+  o |  1:draft \'B\'\n+  |/\n   o  0:draft \'A\'\n   \n', 2700, 2702, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-dest.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-dest.t\n+++ c:/hgdev/src/tests/test-rebase-dest.t.err\n@@ -22,41 +22,122 @@\n   $ hg rebase -d 1\n   rebasing 2:5db65b93a12b tip "cc"\n   saved backup bundle to $TESTTMP/repo/.hg/strip-backup/5db65b93a12b-4fb789ec-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/5db65b93a12b-4fb789ec-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\.hg\\strip-backup/5db65b93a12b-01dbe393-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\.hg\\strip-backup/5db65b93a12b-01dbe393-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg rebase -d 0 -r . -q\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ HGPLAIN=1 hg rebase\n-  rebasing 2:889b0bc6a730 tip "cc"\n-  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/889b0bc6a730-41ec4f81-rebase.hg\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg rebase -d 0 -r . -q\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg --config commands.rebase.requiredest=False rebase\n-  rebasing 2:279de9495438 tip "cc"\n-  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/279de9495438-ab0a5128-rebase.hg\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n Requiring dest should not break continue or other rebase options\n   $ hg up 1 -q\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo d >> c\n   $ hg commit -qAm dc\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg log -G -T \'{rev} {desc}\'\n-  @  3 dc\n+  @  3 cc\n   |\n   | o  2 cc\n+  | |\n+  o |  1 bb\n   |/\n-  o  1 bb\n-  |\n   o  0 aa\n   \n   $ hg rebase -d 2\n-  rebasing 3:0537f6b50def tip "dc"\n-  merging c\n-  warning: conflicts while merging c! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg rebase --continue\')\n-  [240]\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo d > c\n   $ hg resolve --mark --all\n-  (no more unresolved files)\n-  continue: hg rebase --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg rebase --continue\n-  rebasing 3:0537f6b50def tip "dc"\n-  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/0537f6b50def-be4c7386-rebase.hg\n+  already rebased 2:5db65b93a12b "cc" as 06ddba375f0f\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ cd ..\n \n@@ -67,6 +148,9 @@\n   $ cd repo\n   $ echo e > e\n   $ hg commit -qAm ee\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ cd ..\n   $ cd clone\n   $ echo f > f\n', 2505, 2507, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-detach.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-detach.t\n+++ c:/hgdev/src/tests/test-rebase-detach.t.err\n@@ -26,10 +26,81 @@\n   $ hg rebase -s D -d B\n   rebasing 3:e7b3f00ed42e D tip "D"\n   saved backup bundle to $TESTTMP/a1/.hg/strip-backup/e7b3f00ed42e-6f368371-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a1\\.hg\\strip-backup/e7b3f00ed42e-6f368371-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a1\\.hg\\strip-backup/e7b3f00ed42e-9e40654e-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a1\\.hg\\strip-backup/e7b3f00ed42e-9e40654e-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg log -G --template "{rev}:{phase} \'{desc}\' {branches}\\n"\n-  o  3:secret \'D\'\n-  |\n+  o  4:secret \'D\'\n+  |\n+  | o  3:secret \'D\'\n+  | |\n   | o  2:draft \'C\'\n   | |\n   o |  1:draft \'B\'\n@@ -63,12 +134,85 @@\n   rebasing 3:e7b3f00ed42e D "D"\n   rebasing 4:69a34c08022a E tip "E"\n   saved backup bundle to $TESTTMP/a2/.hg/strip-backup/e7b3f00ed42e-a2ec7cea-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a2\\.hg\\strip-backup/e7b3f00ed42e-a2ec7cea-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a2\\.hg\\strip-backup/e7b3f00ed42e-e45e7846-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a2\\.hg\\strip-backup/e7b3f00ed42e-e45e7846-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  o  4: ee79e0744528 \'E\'\n-  |\n-  o  3: 10530e1d72d9 \'D\'\n-  |\n+  o  6: ee79e0744528 \'E\'\n+  |\n+  o  5: 10530e1d72d9 \'D\'\n+  |\n+  | o  4: 69a34c08022a \'E\'\n+  | |\n+  | o  3: e7b3f00ed42e \'D\'\n+  | |\n   | o  2: dc0947a82db8 \'C\'\n   | |\n   o |  1: 112478962961 \'B\'\n@@ -100,14 +244,87 @@\n   rebasing 2:dc0947a82db8 C "C"\n   rebasing 3:e7b3f00ed42e D tip "D"\n   saved backup bundle to $TESTTMP/a3/.hg/strip-backup/dc0947a82db8-b8481714-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a3\\.hg\\strip-backup/dc0947a82db8-b8481714-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a3\\.hg\\strip-backup/dc0947a82db8-760435bb-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a3\\.hg\\strip-backup/dc0947a82db8-760435bb-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  o  3: 7375f3dbfb0f \'D\'\n-  |\n-  o  2: bbfdd6cb49aa \'C\'\n-  |\n-  o  1: 112478962961 \'B\'\n-  |\n+  o  5: 7375f3dbfb0f \'D\'\n+  |\n+  o  4: bbfdd6cb49aa \'C\'\n+  |\n+  | o  3: e7b3f00ed42e \'D\'\n+  | |\n+  | o  2: dc0947a82db8 \'C\'\n+  | |\n+  o |  1: 112478962961 \'B\'\n+  |/\n   o  0: 426bada5c675 \'A\'\n   \n   $ hg manifest --rev tip\n@@ -139,11 +356,84 @@\n   rebasing 3:e7b3f00ed42e D "D"\n   rebasing 4:69a34c08022a E tip "E"\n   saved backup bundle to $TESTTMP/a4/.hg/strip-backup/e7b3f00ed42e-a2ec7cea-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a4\\.hg\\strip-backup/e7b3f00ed42e-a2ec7cea-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a4\\.hg\\strip-backup/e7b3f00ed42e-2a4d714e-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a4\\.hg\\strip-backup/e7b3f00ed42e-2a4d714e-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg  log -G --template "{rev}:{phase} \'{desc}\' {branches}\\n"\n-  o  3:secret \'Collapsed revision\n+  o  5:secret \'Collapsed revision\n   |  * D\n   |  * E\'\n+  | o  4:secret \'E\'\n+  | |\n+  | o  3:draft \'D\'\n+  | |\n   | o  2:draft \'C\'\n   | |\n   o |  1:draft \'B\'\n@@ -177,31 +467,112 @@\n   rebasing 3:e7b3f00ed42e D "D"\n   rebasing 4:69a34c08022a E tip "E"\n   saved backup bundle to $TESTTMP/a5/.hg/strip-backup/dc0947a82db8-3eefec98-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a5\\.hg\\strip-backup/dc0947a82db8-3eefec98-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a5\\.hg\\strip-backup/dc0947a82db8-02ec422b-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a5\\.hg\\strip-backup/dc0947a82db8-02ec422b-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  o  4: e3d0c70d606d \'E\'\n-  |\n-  o  3: e9153d36a1af \'D\'\n-  |\n-  o  2: a7ac28b870a8 \'C\'\n-  |\n-  o  1: fc2b737bb2e5 \'B\'\n-  \n+  o  7: e3d0c70d606d \'E\'\n+  |\n+  o  6: e9153d36a1af \'D\'\n+  |\n+  o  5: a7ac28b870a8 \'C\'\n+  |\n+  | o  4: 69a34c08022a \'E\'\n+  | |\n+  | o  3: e7b3f00ed42e \'D\'\n+  | |\n+  | o  2: dc0947a82db8 \'C\'\n+  | |\n+  o |  1: fc2b737bb2e5 \'B\'\n+   /\n   o  0: 426bada5c675 \'A\'\n   \n   $ hg rebase -d 1 -s 3\n-  rebasing 3:e9153d36a1af "D"\n-  rebasing 4:e3d0c70d606d tip "E"\n-  saved backup bundle to $TESTTMP/a5/.hg/strip-backup/e9153d36a1af-db7388ed-rebase.hg\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg tglog\n-  o  4: 2c24e540eccd \'E\'\n-  |\n-  o  3: 73f786ed52ff \'D\'\n-  |\n-  | o  2: a7ac28b870a8 \'C\'\n-  |/\n-  o  1: fc2b737bb2e5 \'B\'\n-  \n+  o  7: e3d0c70d606d \'E\'\n+  |\n+  o  6: e9153d36a1af \'D\'\n+  |\n+  o  5: a7ac28b870a8 \'C\'\n+  |\n+  | o  4: 69a34c08022a \'E\'\n+  | |\n+  | o  3: e7b3f00ed42e \'D\'\n+  | |\n+  | o  2: dc0947a82db8 \'C\'\n+  | |\n+  o |  1: fc2b737bb2e5 \'B\'\n+   /\n   o  0: 426bada5c675 \'A\'\n   \n   $ cd ..\n@@ -252,14 +623,89 @@\n   rebasing 6:0cfbc7e8faaf "Merge"\n   rebasing 7:c6aaf0d259c0 tip "J"\n   saved backup bundle to $TESTTMP/a6/.hg/strip-backup/b92d164ad3cb-88fd7ab7-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a6\\.hg\\strip-backup/b92d164ad3cb-88fd7ab7-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a6\\.hg\\strip-backup/b92d164ad3cb-20930608-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a6\\.hg\\strip-backup/b92d164ad3cb-20930608-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  @  5: 65079693dac4 \'Collapsed revision\n+  @  8: 65079693dac4 \'Collapsed revision\n   |  * I\n   |  * Merge\n   |  * J\'\n-  o  4: 4ea5b230dea3 \'H\'\n-  |\n+  | o  7: c6aaf0d259c0 \'J\'\n+  | |\n+  | o  6: 0cfbc7e8faaf \'Merge\'\n+  |/|\n+  | o  5: b92d164ad3cb \'I\'\n+  | |\n+  o |  4: 4ea5b230dea3 \'H\'\n+  | |\n   | o  3: c6001eacfde5 \'G\'\n   |/|\n   o |  2: 8908a377a434 \'F\'\n@@ -270,8 +716,9 @@\n   \n \n   $ hg log --rev tip\n-  changeset:   5:65079693dac4\n+  changeset:   8:65079693dac4\n   tag:         tip\n+  parent:      4:4ea5b230dea3\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n   summary:     Collapsed revision\n@@ -306,7 +753,76 @@\n   rebasing 3:17b4880d2402 tip "B2"\n   note: not rebasing 3:17b4880d2402 tip "B2", its destination already has all its changes\n   saved backup bundle to $TESTTMP/a7/.hg/strip-backup/17b4880d2402-1ae1f6cc-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a7\\.hg\\strip-backup/17b4880d2402-1ae1f6cc-rebase.hg\'\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg  log -G --template "{rev}:{phase} \'{desc}\' {branches}\\n"\n+  o  3:secret \'B2\'\n+  |\n   o  2:draft \'C\'\n   |\n   | @  1:draft \'B\'\n', 2687, 2689, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-empty-successor.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-empty-successor.t\n+++ c:/hgdev/src/tests/test-rebase-empty-successor.t.err\n@@ -34,11 +34,80 @@\n   rebasing 2:6e2aad5e0f3c tip "b2"\n   note: created empty successor for 2:6e2aad5e0f3c tip "b2", its destination already has all its changes\n   saved backup bundle to $TESTTMP/.hg/strip-backup/6e2aad5e0f3c-7d7c8801-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\.hg\\strip-backup/6e2aad5e0f3c-7d7c8801-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\.hg\\strip-backup/6e2aad5e0f3c-d1669e58-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\.hg\\strip-backup/6e2aad5e0f3c-d1669e58-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  @  2 \'b2\'\n+  @  3 \'b2\'\n   |\n-  o  1 \'b1\'\n-  |\n+  | o  2 \'b2\'\n+  | |\n+  o |  1 \'b1\'\n+  |/\n   o  0 \'a\'\n   \n', 2592, 2594, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-emptycommit.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-emptycommit.t\n+++ c:/hgdev/src/tests/test-rebase-emptycommit.t.err\n@@ -89,17 +89,94 @@\n   note: not rebasing 4:69a34c08022a BOOK-E "E", its destination already has all its changes\n   rebasing 5:6b2aeab91270 BOOK-F F "F"\n   saved backup bundle to $TESTTMP/non-merge/.hg/strip-backup/dc0947a82db8-52bb4973-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\non-merge\\.hg\\strip-backup/dc0947a82db8-52bb4973-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\non-merge\\.hg\\strip-backup/dc0947a82db8-1add0b4d-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\non-merge\\.hg\\strip-backup/dc0947a82db8-1add0b4d-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log -G -T \'{rev} {desc} {bookmarks}\'\n-  o  5 F BOOK-F\n-  |\n-  o  4 C BOOK-C BOOK-D BOOK-E\n-  |\n-  o  3 E\n-  |\n-  o  2 D\n-  |\n-  o  1 B\n-  |\n+  o  9 F BOOK-F\n+  |\n+  o  8 C BOOK-C BOOK-D BOOK-E\n+  |\n+  o  7 E\n+  |\n+  o  6 D\n+  |\n+  | o  5 F\n+  | |\n+  | o  4 E\n+  | |\n+  | o  3 D\n+  | |\n+  | o  2 C\n+  | |\n+  o |  1 B\n+  |/\n   o  0 A\n   \n Merge and its ancestors all become empty\n@@ -146,17 +223,95 @@\n   rebasing 4:86a1f6686812 BOOK-E E "E"\n   note: not rebasing 4:86a1f6686812 BOOK-E E "E", its destination already has all its changes\n   saved backup bundle to $TESTTMP/merge1/.hg/strip-backup/b18e25de2cf5-1fd0a4ba-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\merge1\\.hg\\strip-backup/b18e25de2cf5-1fd0a4ba-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\merge1\\.hg\\strip-backup/b18e25de2cf5-7892a5e6-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\merge1\\.hg\\strip-backup/b18e25de2cf5-7892a5e6-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg update null -q\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n   $ hg log -G -T \'{rev} {desc} {bookmarks}\'\n-  o  4 H BOOK-C BOOK-D BOOK-E\n-  |\n-  o  3 D\n-  |\n-  o  2 C\n-  |\n-  o  1 B\n-  |\n+  @  7 H BOOK-C BOOK-D BOOK-E\n+  |\n+  o  6 D\n+  |\n+  o  5 C\n+  |\n+  | o    4 E\n+  | |\\\n+  | | o  3 D\n+  | | |\n+  | o |  2 C\n+  | |/\n+  o /  1 B\n+  |/\n   o  0 A\n   \n Part of ancestors of a merge become empty\n@@ -197,21 +352,100 @@\n   note: not rebasing 5:ad6717a6a58e BOOK-F "F", its destination already has all its changes\n   rebasing 6:c58e8bdac1f4 BOOK-G G "G"\n   saved backup bundle to $TESTTMP/merge2/.hg/strip-backup/b18e25de2cf5-2d487005-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\merge2\\.hg\\strip-backup/b18e25de2cf5-2d487005-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\merge2\\.hg\\strip-backup/b18e25de2cf5-0c7badc0-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\merge2\\.hg\\strip-backup/b18e25de2cf5-0c7badc0-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg log -G -T \'{rev} {desc} {bookmarks}\'\n-  o    7 G BOOK-G\n+  o    12 G BOOK-G\n   |\\\n-  | o  6 E BOOK-E\n-  | |\n-  o |  5 D BOOK-D BOOK-F\n-  |/\n-  o  4 H BOOK-C\n-  |\n-  o  3 F\n-  |\n-  o  2 C\n-  |\n-  o  1 B\n-  |\n+  | o  11 E BOOK-E\n+  | |\n+  o |  10 D BOOK-D BOOK-F\n+  |/\n+  o  9 H BOOK-C\n+  |\n+  o  8 F\n+  |\n+  o  7 C\n+  |\n+  | o    6 G\n+  | |\\\n+  | | o  5 F\n+  | | |\n+  | o |  4 E\n+  | | |\n+  | | o  3 D\n+  | | |\n+  | o |  2 C\n+  | |/\n+  o /  1 B\n+  |/\n   o  0 A\n   \n', 2796, 2798, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-interruptions.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-interruptions.t\n+++ c:/hgdev/src/tests/test-rebase-interruptions.t.err\n@@ -328,15 +328,86 @@\n   already rebased 1:27547f69f254 "B" as 45396c49d53b\n   rebasing 2:965c486023db "C"\n   saved backup bundle to $TESTTMP/a4/.hg/strip-backup/27547f69f254-359abdd7-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a4\\.hg\\strip-backup/27547f69f254-359abdd7-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a4\\.hg\\strip-backup/27547f69f254-3017c381-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a4\\.hg\\strip-backup/27547f69f254-3017c381-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg tglog\n-  o  4: d2d25e26288e \'C\'\n-  |\n-  o  3: 45396c49d53b \'B\'\n-  |\n-  @  2: ae36e8e3dfd7 \'E\'\n-  |\n-  o  1: 46b37eabc604 \'D\'\n-  |\n+  o  6: d2d25e26288e \'C\'\n+  |\n+  o  5: 45396c49d53b \'B\'\n+  |\n+  @  4: ae36e8e3dfd7 \'E\'\n+  |\n+  o  3: 46b37eabc604 \'D\'\n+  |\n+  | o  2: 965c486023db \'C\'\n+  | |\n+  | o  1: 27547f69f254 \'B\'\n+  |/\n   o  0: 4a2df7238c3b \'A\'\n   \n   $ cd ..\n@@ -372,17 +443,88 @@\n   already rebased 2:965c486023db "C" as 401ccec5e39f\n   rebasing 6:a0b2430ebfb8 "F"\n   saved backup bundle to $TESTTMP/hook-precommit/.hg/strip-backup/965c486023db-aa6250e7-rebase.hg\n-  $ hg tglogp\n-  @  6: 6e92a149ac6b secret \'F\'\n-  |\n-  o  5: 401ccec5e39f secret \'C\'\n-  |\n-  o  4: 45396c49d53b public \'B\'\n-  |\n-  o  3: ae36e8e3dfd7 public \'E\'\n-  |\n-  o  2: 46b37eabc604 public \'D\'\n-  |\n+  strip failed, backup bundle stored in \'$TESTTMP\\hook-precommit\\.hg\\strip-backup/965c486023db-aa6250e7-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\hook-precommit\\.hg\\strip-backup/965c486023db-c014b6eb-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\hook-precommit\\.hg\\strip-backup/965c486023db-c014b6eb-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg tglogp\n+  @  8: 6e92a149ac6b secret \'F\'\n+  |\n+  o  7: 401ccec5e39f secret \'C\'\n+  |\n+  | o  6: a0b2430ebfb8 secret \'F\'\n+  | |\n+  o |  5: 45396c49d53b public \'B\'\n+  | |\n+  o |  4: ae36e8e3dfd7 public \'E\'\n+  | |\n+  o |  3: 46b37eabc604 public \'D\'\n+  | |\n+  | o  2: 965c486023db secret \'C\'\n+  | |\n   | o  1: 27547f69f254 public \'B\'\n   |/\n   o  0: 4a2df7238c3b public \'A\'\n@@ -398,9 +540,8 @@\n   rebasing 2:965c486023db "C"\n   summary:     C\n   rebasing 6:a0b2430ebfb8 tip "F"\n-  transaction abort!\n-  rollback completed\n-  abort: pretxncommit hook exited with status 1\n+  abort: $TESTTMP\\hook-pretxncommit\\.hg\\dirstate.pending: $ENOENT$.\n+  Exception OSError: OSError(2, \'C:\\\\Temp\\\\hgtests.dstqqw\\\\child304\\\\test-rebase-interruptions.t\\\\hook-pretxncommit\\\\.hg\\\\dirstate.pending: $ENOENT$.\') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x0000000002678548>> ignored\n   [255]\n   $ hg tglogp\n   @  7: 401ccec5e39f secret \'C\'\n@@ -422,18 +563,22 @@\n   $ hg rebase --continue\n   already rebased 2:965c486023db "C" as 401ccec5e39f\n   rebasing 6:a0b2430ebfb8 "F"\n-  saved backup bundle to $TESTTMP/hook-pretxncommit/.hg/strip-backup/965c486023db-aa6250e7-rebase.hg\n-  $ hg tglogp\n-  @  6: 6e92a149ac6b secret \'F\'\n-  |\n-  o  5: 401ccec5e39f secret \'C\'\n-  |\n-  o  4: 45396c49d53b public \'B\'\n-  |\n-  o  3: ae36e8e3dfd7 public \'E\'\n-  |\n-  o  2: 46b37eabc604 public \'D\'\n-  |\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg tglogp\n+  @  7: 401ccec5e39f secret \'C\'\n+  |\n+  | o  6: a0b2430ebfb8 secret \'F\'\n+  | |\n+  o |  5: 45396c49d53b public \'B\'\n+  | |\n+  o |  4: ae36e8e3dfd7 public \'E\'\n+  | |\n+  o |  3: 46b37eabc604 public \'D\'\n+  | |\n+  | o  2: 965c486023db secret \'C\'\n+  | |\n   | o  1: 27547f69f254 public \'B\'\n   |/\n   o  0: 4a2df7238c3b public \'A\'\n@@ -448,10 +593,66 @@\n   rebasing 2:965c486023db "C"\n   summary:     C\n   rebasing 6:a0b2430ebfb8 tip "F"\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnclose hook exited with status 1\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1266, in _origrebase\n+      rbsrt._performrebase(tr)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 505, in _performrebase\n+      self._rebasenode(tr, rev, allowdivergence, progress)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 675, in _rebasenode\n+      newnode = self._concludenode(rev, editor)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 562, in _concludenode\n+      date=date,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1495, in commitnode\n+      text=commitmsg, user=user, date=date, extra=extra, editor=editor\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg tglogp\n   @  7: 401ccec5e39f secret \'C\'\n   |\n@@ -472,18 +673,22 @@\n   $ hg rebase --continue\n   already rebased 2:965c486023db "C" as 401ccec5e39f\n   rebasing 6:a0b2430ebfb8 "F"\n-  saved backup bundle to $TESTTMP/hook-pretxnclose/.hg/strip-backup/965c486023db-aa6250e7-rebase.hg\n-  $ hg tglogp\n-  @  6: 6e92a149ac6b secret \'F\'\n-  |\n-  o  5: 401ccec5e39f secret \'C\'\n-  |\n-  o  4: 45396c49d53b public \'B\'\n-  |\n-  o  3: ae36e8e3dfd7 public \'E\'\n-  |\n-  o  2: 46b37eabc604 public \'D\'\n-  |\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg tglogp\n+  @  7: 401ccec5e39f secret \'C\'\n+  |\n+  | o  6: a0b2430ebfb8 secret \'F\'\n+  | |\n+  o |  5: 45396c49d53b public \'B\'\n+  | |\n+  o |  4: ae36e8e3dfd7 public \'E\'\n+  | |\n+  o |  3: 46b37eabc604 public \'D\'\n+  | |\n+  | o  2: 965c486023db secret \'C\'\n+  | |\n   | o  1: 27547f69f254 public \'B\'\n   |/\n   o  0: 4a2df7238c3b public \'A\'\n@@ -516,25 +721,95 @@\n   rebasing 1:fdaca8533b86 "b"\n   note: not rebasing 1:fdaca8533b86 "b", its destination already has all its changes\n   saved backup bundle to $TESTTMP/repo/.hg/strip-backup/fdaca8533b86-7fd70513-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/fdaca8533b86-7fd70513-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\.hg\\strip-backup/fdaca8533b86-55a693e5-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\.hg\\strip-backup/fdaca8533b86-55a693e5-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg resolve --list\n   $ test -d .hg/merge\n   [1]\n Now try again with --collapse\n   $ hg unbundle -q .hg/strip-backup/fdaca8533b86-7fd70513-rebase.hg\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg rebase -s 2 -d 1 --noninteractive --collapse\n-  rebasing 2:fdaca8533b86 tip "b"\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg rebase --continue\')\n-  [240]\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo a > a\n   $ echo c >> a\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg rebase --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg rebase --continue\n-  rebasing 2:fdaca8533b86 tip "b"\n-  saved backup bundle to $TESTTMP/repo/.hg/strip-backup/fdaca8533b86-7fd70513-rebase.hg\n+  already rebased 1:fdaca8533b86 "b" as 1042e680b91d\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg resolve --list\n   $ test -d .hg/merge\n   [1]\n', 2545, 2547, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-issue-noparam-single-rev.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-issue-noparam-single-rev.t\n+++ c:/hgdev/src/tests/test-rebase-issue-noparam-single-rev.t.err\n@@ -54,14 +54,83 @@\n   $ hg rebase\n   rebasing 2:87c180a611f2 "l1"\n   saved backup bundle to $TESTTMP/a/.hg/strip-backup/87c180a611f2-a5be192d-rebase.hg\n-\n-  $ hg tglog\n-  @  4: b1152cc99655 \'l1\'\n-  |\n-  o  3: 225af64d03e6 \'r2\'\n-  |\n-  o  2: 8d0a8c99b309 \'r1\'\n-  |\n+  strip failed, backup bundle stored in \'$TESTTMP\\a\\.hg\\strip-backup/87c180a611f2-a5be192d-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a\\.hg\\strip-backup/87c180a611f2-58a6848c-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a\\.hg\\strip-backup/87c180a611f2-58a6848c-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+\n+  $ hg tglog\n+  @  5: b1152cc99655 \'l1\'\n+  |\n+  o  4: 225af64d03e6 \'r2\'\n+  |\n+  o  3: 8d0a8c99b309 \'r1\'\n+  |\n+  | o  2: 87c180a611f2 \'l1\'\n+  |/\n   o  1: 56daeba07f4b \'c2\'\n   |\n   o  0: e8faad3d03ff \'c1\'\n@@ -114,14 +183,85 @@\n   rebasing 2:87c180a611f2 "l1"\n   rebasing 3:1ac923b736ef "l2"\n   saved backup bundle to $TESTTMP/b/.hg/strip-backup/87c180a611f2-b980535c-rebase.hg\n-\n-  $ hg tglog\n-  @  4: 023181307ed0 \'l2\'\n-  |\n-  o  3: 913ab52b43b4 \'l1\'\n-  |\n-  o  2: 8d0a8c99b309 \'r1\'\n-  |\n+  strip failed, backup bundle stored in \'$TESTTMP\\b\\.hg\\strip-backup/87c180a611f2-b980535c-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\b\\.hg\\strip-backup/87c180a611f2-f0cadec4-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\b\\.hg\\strip-backup/87c180a611f2-f0cadec4-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+\n+  $ hg tglog\n+  @  6: 023181307ed0 \'l2\'\n+  |\n+  o  5: 913ab52b43b4 \'l1\'\n+  |\n+  o  4: 8d0a8c99b309 \'r1\'\n+  |\n+  | o  3: 1ac923b736ef \'l2\'\n+  | |\n+  | o  2: 87c180a611f2 \'l1\'\n+  |/\n   o  1: 56daeba07f4b \'c2\'\n   |\n   o  0: e8faad3d03ff \'c1\'\n', 2635, 2637, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-legacy.t#continuecommand

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-legacy.t\n+++ c:/hgdev/src/tests/test-rebase-legacy.t#continuecommand.err\n@@ -65,28 +65,101 @@\n   rebasing 9:6582e6951a9c H tip "H"\n   warning: orphaned descendants detected, not stripping c1e6b162678d, de008c61a447\n   saved backup bundle to $TESTTMP/.hg/strip-backup/6f7a236de685-9880a3dc-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\.hg\\strip-backup/6f7a236de685-9880a3dc-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\.hg\\strip-backup/6f7a236de685-db176b7d-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\.hg\\strip-backup/6f7a236de685-db176b7d-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2357, in continuecmd\n+      return contstate.continuefunc(ui, repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2246, in continuerebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg log -G -T \'{rev}:{node|short} {desc}\\n\'\n-  o  11:721b8da0a708 H\n+  o  14:721b8da0a708 H\n   |\n-  o  10:9d65695ec3c2 G\n+  o  13:9d65695ec3c2 G\n   |\n-  o  9:21c8397a5d68 E\n+  o  12:21c8397a5d68 E\n   |\n-  | o  8:fc52970345e8 D\n+  | o  11:fc52970345e8 D\n   | |\n-  | o  7:eac96551b107 B\n+  | o  10:eac96551b107 B\n   |/\n-  | o  6:bd5548558fcf C\n+  | o  9:6582e6951a9c H\n   | |\n-  | | o  5:aeba276fcb7d F\n+  | | o  8:6f7a236de685 D\n   | | |\n-  | o |  4:c1e6b162678d B\n+  | o |  7:d2fa1c02b240 G\n+  | | |\n+  | | o  6:bd5548558fcf C\n+  | | |\n+  | o |  5:aeba276fcb7d F\n+  | | |\n+  | | o  4:c1e6b162678d B\n   | | |\n   o | |  3:f424eb6a8c01 Z\n   | | |\n-  +---o  2:de008c61a447 E\n-  | |\n+  | o |  2:de008c61a447 E\n+  |/ /\n   | o  1:21a6c4502885 A\n   |/\n   o  0:b41ce7760717 R\n', 2751, 2753, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-legacy.t#continueflag

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-legacy.t\n+++ c:/hgdev/src/tests/test-rebase-legacy.t#continueflag.err\n@@ -65,28 +65,101 @@\n   rebasing 9:6582e6951a9c H tip "H"\n   warning: orphaned descendants detected, not stripping c1e6b162678d, de008c61a447\n   saved backup bundle to $TESTTMP/.hg/strip-backup/6f7a236de685-9880a3dc-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\.hg\\strip-backup/6f7a236de685-9880a3dc-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\.hg\\strip-backup/6f7a236de685-db176b7d-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\.hg\\strip-backup/6f7a236de685-db176b7d-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2357, in continuecmd\n+      return contstate.continuefunc(ui, repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2246, in continuerebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg log -G -T \'{rev}:{node|short} {desc}\\n\'\n-  o  11:721b8da0a708 H\n+  o  14:721b8da0a708 H\n   |\n-  o  10:9d65695ec3c2 G\n+  o  13:9d65695ec3c2 G\n   |\n-  o  9:21c8397a5d68 E\n+  o  12:21c8397a5d68 E\n   |\n-  | o  8:fc52970345e8 D\n+  | o  11:fc52970345e8 D\n   | |\n-  | o  7:eac96551b107 B\n+  | o  10:eac96551b107 B\n   |/\n-  | o  6:bd5548558fcf C\n+  | o  9:6582e6951a9c H\n   | |\n-  | | o  5:aeba276fcb7d F\n+  | | o  8:6f7a236de685 D\n   | | |\n-  | o |  4:c1e6b162678d B\n+  | o |  7:d2fa1c02b240 G\n+  | | |\n+  | | o  6:bd5548558fcf C\n+  | | |\n+  | o |  5:aeba276fcb7d F\n+  | | |\n+  | | o  4:c1e6b162678d B\n   | | |\n   o | |  3:f424eb6a8c01 Z\n   | | |\n-  +---o  2:de008c61a447 E\n-  | |\n+  | o |  2:de008c61a447 E\n+  |/ /\n   | o  1:21a6c4502885 A\n   |/\n   o  0:b41ce7760717 R\n', 2748, 2750, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-mq-skip.t#continuecommand

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-mq-skip.t\n+++ c:/hgdev/src/tests/test-rebase-mq-skip.t#continuecommand.err\n@@ -39,68 +39,49 @@\n   $ echo p0 > p0\n   $ hg add p0\n   $ hg qref -m P0\n+  abort: $TESTTMP\\a\\.hg\\dirstate.pending: $ENOENT$.\n+  Exception OSError: OSError(2, \'C:\\\\Temp\\\\hgtests.dstqqw\\\\child557\\\\test-rebase-mq-skip.t-continuecommand\\\\a\\\\.hg\\\\dirstate.pending: $ENOENT$.\') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x0000000001672348>> ignored\n+  [255]\n \n   $ hg qnew p1.patch -d \'2 0\'\n+  abort: working directory revision is not qtip\n+  [255]\n   $ echo p1 > p1\n   $ hg add p1\n   $ hg qref -m P1\n+  abort: working directory revision is not qtip\n+  [255]\n \n   $ hg export qtip > p1.patch\n \n   $ hg up -q -C 1\n \n   $ hg import p1.patch\n-  applying p1.patch\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ rm p1.patch\n \n   $ hg up -q -C qtip\n \n   $ hg rebase -v\n-  rebasing 2:13a46ce44f60 p0.patch qbase "P0"\n+  rebasing 2:112a59ac2fe2 p0.patch qbase qtip tip "[mq]: p0.patch"\n   resolving manifests\n-  removing p0\n   getting r1\n   resolving manifests\n-  getting p0\n-  committing files:\n-  p0\n-  committing manifest\n-  committing changelog\n-  rebasing 3:148775c71080 p1.patch qtip "P1"\n-  resolving manifests\n-  note: not rebasing 3:148775c71080 p1.patch qtip "P1", its destination already has all its changes\n+  note: not rebasing 2:112a59ac2fe2 p0.patch qbase qtip tip "[mq]: p0.patch", its destination already has all its changes\n   rebase merging completed\n-  updating mq patch p0.patch to 5:9ecc820b1737\n-  $TESTTMP/a/.hg/patches/p0.patch\n-  2 changesets found\n-  uncompressed size of bundle content:\n-       348 (changelog)\n-       324 (manifests)\n-       129  p0\n-       129  p1\n-  saved backup bundle to $TESTTMP/a/.hg/strip-backup/13a46ce44f60-5da6ecfb-rebase.hg\n-  2 changesets found\n-  uncompressed size of bundle content:\n-       403 (changelog)\n-       324 (manifests)\n-       129  p0\n-       129  p1\n-  adding branch\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 2 changes to 2 files\n-  rebase completed\n-  1 revisions have been skipped\n+  patch p0.patch finalized without changeset message\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg tglog\n-  @  3: 9ecc820b1737 \'P0\' tags: p0.patch qbase qtip tip\n-  |\n-  o  2: 869d8b134a27 \'P1\' tags: qparent\n-  |\n-  o  1: da108f2755df \'R1\' tags:\n-  |\n+  o  2: 112a59ac2fe2 \'[mq]: p0.patch\' tags: tip\n+  |\n+  | @  1: da108f2755df \'R1\' tags:\n+  |/\n   o  0: cd320d50b341 \'C1\' tags:\n   \n   $ cd ..\n@@ -172,24 +153,107 @@\n   rebasing 6:512a1f24768b qtip r6 "r6"\n   note: not rebasing 6:512a1f24768b qtip r6 "r6", its destination already has all its changes\n   saved backup bundle to $TESTTMP/b/.hg/strip-backup/b4bffa6e4776-b9bfb84d-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\b\\.hg\\strip-backup/b4bffa6e4776-b9bfb84d-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\b\\.hg\\strip-backup/b4bffa6e4776-e4b9e1af-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\b\\.hg\\strip-backup/b4bffa6e4776-e4b9e1af-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2357, in continuecmd\n+      return contstate.continuefunc(ui, repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2246, in continuerebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  @  8: 0b9735ce8f0a \'r5\' tags: qtip r5 tip\n-  |\n-  o  7: 1660ab13ce9a \'r2\' tags: qbase r2\n-  |\n-  o  6: 057f55ff8f44 \'branch2-r6\' tags: qparent\n-  |\n-  o  5: 1d7287f8deb1 \'branch2-r4\' tags:\n-  |\n-  o  4: 3c10b9db2bd5 \'branch2-r8\' tags:\n-  |\n-  o  3: b684023158dc \'branch2-r7\' tags:\n-  |\n-  o  2: d817754b1251 \'branch2-r3\' tags:\n-  |\n-  o  1: 0621a206f8a4 \'branch2-r1\' tags:\n-  |\n+  @  14: 0b9735ce8f0a \'r5\' tags: qtip r5 tip\n+  |\n+  o  13: 1660ab13ce9a \'r2\' tags: qbase r2\n+  |\n+  o  12: 057f55ff8f44 \'branch2-r6\' tags: qparent\n+  |\n+  o  11: 1d7287f8deb1 \'branch2-r4\' tags:\n+  |\n+  o  10: 3c10b9db2bd5 \'branch2-r8\' tags:\n+  |\n+  o  9: b684023158dc \'branch2-r7\' tags:\n+  |\n+  o  8: d817754b1251 \'branch2-r3\' tags:\n+  |\n+  o  7: 0621a206f8a4 \'branch2-r1\' tags:\n+  |\n+  | o  6: 512a1f24768b \'r6\' tags:\n+  | |\n+  | o  5: 681a378595ba \'r5\' tags:\n+  | |\n+  | o  4: 094320fec554 \'r4\' tags:\n+  | |\n+  | o  3: 6ff5b8feed8e \'r3\' tags:\n+  | |\n+  | o  2: c0fd129beb01 \'r2\' tags:\n+  | |\n+  | o  1: b4bffa6e4776 \'r1\' tags:\n+  |/\n   o  0: 222799e2f90b \'r0\' tags:\n   \n \n', 5152, 5154, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-mq-skip.t#continueflag

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-mq-skip.t\n+++ c:/hgdev/src/tests/test-rebase-mq-skip.t#continueflag.err\n@@ -39,68 +39,49 @@\n   $ echo p0 > p0\n   $ hg add p0\n   $ hg qref -m P0\n+  abort: $TESTTMP\\a\\.hg\\dirstate.pending: $ENOENT$.\n+  Exception OSError: OSError(2, \'C:\\\\Temp\\\\hgtests.dstqqw\\\\child558\\\\test-rebase-mq-skip.t-continueflag\\\\a\\\\.hg\\\\dirstate.pending: $ENOENT$.\') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x000000000167A348>> ignored\n+  [255]\n \n   $ hg qnew p1.patch -d \'2 0\'\n+  abort: working directory revision is not qtip\n+  [255]\n   $ echo p1 > p1\n   $ hg add p1\n   $ hg qref -m P1\n+  abort: working directory revision is not qtip\n+  [255]\n \n   $ hg export qtip > p1.patch\n \n   $ hg up -q -C 1\n \n   $ hg import p1.patch\n-  applying p1.patch\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ rm p1.patch\n \n   $ hg up -q -C qtip\n \n   $ hg rebase -v\n-  rebasing 2:13a46ce44f60 p0.patch qbase "P0"\n+  rebasing 2:112a59ac2fe2 p0.patch qbase qtip tip "[mq]: p0.patch"\n   resolving manifests\n-  removing p0\n   getting r1\n   resolving manifests\n-  getting p0\n-  committing files:\n-  p0\n-  committing manifest\n-  committing changelog\n-  rebasing 3:148775c71080 p1.patch qtip "P1"\n-  resolving manifests\n-  note: not rebasing 3:148775c71080 p1.patch qtip "P1", its destination already has all its changes\n+  note: not rebasing 2:112a59ac2fe2 p0.patch qbase qtip tip "[mq]: p0.patch", its destination already has all its changes\n   rebase merging completed\n-  updating mq patch p0.patch to 5:9ecc820b1737\n-  $TESTTMP/a/.hg/patches/p0.patch\n-  2 changesets found\n-  uncompressed size of bundle content:\n-       348 (changelog)\n-       324 (manifests)\n-       129  p0\n-       129  p1\n-  saved backup bundle to $TESTTMP/a/.hg/strip-backup/13a46ce44f60-5da6ecfb-rebase.hg\n-  2 changesets found\n-  uncompressed size of bundle content:\n-       403 (changelog)\n-       324 (manifests)\n-       129  p0\n-       129  p1\n-  adding branch\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 2 changes to 2 files\n-  rebase completed\n-  1 revisions have been skipped\n+  patch p0.patch finalized without changeset message\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg tglog\n-  @  3: 9ecc820b1737 \'P0\' tags: p0.patch qbase qtip tip\n-  |\n-  o  2: 869d8b134a27 \'P1\' tags: qparent\n-  |\n-  o  1: da108f2755df \'R1\' tags:\n-  |\n+  o  2: 112a59ac2fe2 \'[mq]: p0.patch\' tags: tip\n+  |\n+  | @  1: da108f2755df \'R1\' tags:\n+  |/\n   o  0: cd320d50b341 \'C1\' tags:\n   \n   $ cd ..\n@@ -172,24 +153,107 @@\n   rebasing 6:512a1f24768b qtip r6 "r6"\n   note: not rebasing 6:512a1f24768b qtip r6 "r6", its destination already has all its changes\n   saved backup bundle to $TESTTMP/b/.hg/strip-backup/b4bffa6e4776-b9bfb84d-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\b\\.hg\\strip-backup/b4bffa6e4776-b9bfb84d-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\b\\.hg\\strip-backup/b4bffa6e4776-e4b9e1af-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\b\\.hg\\strip-backup/b4bffa6e4776-e4b9e1af-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2357, in continuecmd\n+      return contstate.continuefunc(ui, repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2246, in continuerebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  @  8: 0b9735ce8f0a \'r5\' tags: qtip r5 tip\n-  |\n-  o  7: 1660ab13ce9a \'r2\' tags: qbase r2\n-  |\n-  o  6: 057f55ff8f44 \'branch2-r6\' tags: qparent\n-  |\n-  o  5: 1d7287f8deb1 \'branch2-r4\' tags:\n-  |\n-  o  4: 3c10b9db2bd5 \'branch2-r8\' tags:\n-  |\n-  o  3: b684023158dc \'branch2-r7\' tags:\n-  |\n-  o  2: d817754b1251 \'branch2-r3\' tags:\n-  |\n-  o  1: 0621a206f8a4 \'branch2-r1\' tags:\n-  |\n+  @  14: 0b9735ce8f0a \'r5\' tags: qtip r5 tip\n+  |\n+  o  13: 1660ab13ce9a \'r2\' tags: qbase r2\n+  |\n+  o  12: 057f55ff8f44 \'branch2-r6\' tags: qparent\n+  |\n+  o  11: 1d7287f8deb1 \'branch2-r4\' tags:\n+  |\n+  o  10: 3c10b9db2bd5 \'branch2-r8\' tags:\n+  |\n+  o  9: b684023158dc \'branch2-r7\' tags:\n+  |\n+  o  8: d817754b1251 \'branch2-r3\' tags:\n+  |\n+  o  7: 0621a206f8a4 \'branch2-r1\' tags:\n+  |\n+  | o  6: 512a1f24768b \'r6\' tags:\n+  | |\n+  | o  5: 681a378595ba \'r5\' tags:\n+  | |\n+  | o  4: 094320fec554 \'r4\' tags:\n+  | |\n+  | o  3: 6ff5b8feed8e \'r3\' tags:\n+  | |\n+  | o  2: c0fd129beb01 \'r2\' tags:\n+  | |\n+  | o  1: b4bffa6e4776 \'r1\' tags:\n+  |/\n   o  0: 222799e2f90b \'r0\' tags:\n   \n \n', 5146, 5148, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-mq.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-mq.t\n+++ c:/hgdev/src/tests/test-rebase-mq.t.err\n@@ -27,229 +27,172 @@\n   $ hg qnew f.patch -d \'1 0\'\n   $ echo mq1 > f\n   $ hg qref -m P0\n+  abort: $TESTTMP\\a\\.hg\\dirstate.pending: $ENOENT$.\n+  Exception OSError: OSError(2, \'C:\\\\Temp\\\\hgtests.dstqqw\\\\child415\\\\test-rebase-mq.t\\\\a\\\\.hg\\\\dirstate.pending: $ENOENT$.\') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x000000000164A388>> ignored\n+  [255]\n \n   $ hg qnew f2.patch\n+  abort: working directory revision is not qtip\n+  [255]\n   $ echo mq2 > f\n   $ hg qref -m P1 -d \'2 0\'\n-\n-  $ hg tglog\n-  @  3: 929394423cd3 \'P1\' tags: f2.patch qtip tip\n-  |\n-  o  2: 3504f44bffc0 \'P0\' tags: f.patch qbase\n+  abort: working directory revision is not qtip\n+  [255]\n+\n+  $ hg tglog\n+  o  2: dd2a1c2b5b16 \'[mq]: f.patch\' tags: f.patch qbase qtip tip\n   |\n   | o  1: bac9ed9960d8 \'R1\' tags:\n   |/\n-  o  0: 36f36ddbca61 \'C1\' tags: qparent\n+  @  0: 36f36ddbca61 \'C1\' tags: qparent\n   \n \n Rebase - try to rebase on an applied mq patch:\n \n   $ hg rebase -s 1 -d 3\n-  abort: cannot rebase onto an applied mq patch\n-  [255]\n+  abort: uncommitted changes\n+  [20]\n \n Rebase - same thing, but mq patch is default dest:\n \n   $ hg up -q 1\n+  warning: conflicts while merging f! (edit, then use \'hg resolve --mark\')\n+  [1]\n   $ hg rebase\n-  abort: cannot rebase onto an applied mq patch\n-  [255]\n+  abort: uncommitted changes\n+  [20]\n   $ hg up -q qtip\n+  abort: outstanding merge conflicts\n+  (use \'hg resolve\' to resolve)\n+  [255]\n \n Rebase - generate a conflict:\n \n   $ hg rebase -s 2 -d 1\n-  rebasing 2:3504f44bffc0 f.patch qbase "P0"\n-  merging f\n-  warning: conflicts while merging f! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg rebase --continue\')\n-  [240]\n+  abort: uncommitted changes\n+  [20]\n \n Fix the 1st conflict:\n \n   $ echo mq1r1 > f\n   $ hg resolve -m f\n   (no more unresolved files)\n-  continue: hg rebase --continue\n   $ hg rebase -c\n-  rebasing 2:3504f44bffc0 f.patch qbase "P0"\n-  rebasing 3:929394423cd3 f2.patch qtip tip "P1"\n-  merging f\n-  warning: conflicts while merging f! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg rebase --continue\')\n-  [240]\n+  abort: no rebase in progress\n+  [20]\n \n Fix the 2nd conflict:\n \n   $ echo mq1r1mq2 > f\n   $ hg resolve -m f\n   (no more unresolved files)\n-  continue: hg rebase --continue\n   $ hg rebase -c\n-  already rebased 2:3504f44bffc0 f.patch qbase "P0" as ebe9914c0d1c\n-  rebasing 3:929394423cd3 f2.patch qtip "P1"\n-  saved backup bundle to $TESTTMP/a/.hg/strip-backup/3504f44bffc0-30595b40-rebase.hg\n-\n-  $ hg tglog\n-  @  3: 462012cf340c \'P1\' tags: f2.patch qtip tip\n-  |\n-  o  2: ebe9914c0d1c \'P0\' tags: f.patch qbase\n-  |\n-  o  1: bac9ed9960d8 \'R1\' tags: qparent\n-  |\n-  o  0: 36f36ddbca61 \'C1\' tags:\n+  abort: no rebase in progress\n+  [20]\n+\n+  $ hg tglog\n+  o  2: dd2a1c2b5b16 \'[mq]: f.patch\' tags: f.patch qbase qtip tip\n+  |\n+  | @  1: bac9ed9960d8 \'R1\' tags:\n+  |/\n+  o  0: 36f36ddbca61 \'C1\' tags: qparent\n   \n   $ hg up -q qbase\n-\n-  $ cat f\n-  mq1r1\n-\n-  $ cat .hg/patches/f.patch\n-  # HG changeset patch\n-  # User test\n-  # Date 1 0\n-  #      Thu Jan 01 00:00:01 1970 +0000\n-  # Node ID ebe9914c0d1c3f60096e952fa4dbb3d377dea3ab\n-  # Parent  bac9ed9960d8992bcad75864a879fa76cadaf1b0\n-  P0\n-  \n-  diff -r bac9ed9960d8 -r ebe9914c0d1c f\n-  --- a/f\tThu Jan 01 00:00:00 1970 +0000\n-  +++ b/f\tThu Jan 01 00:00:01 1970 +0000\n-  @@ -1,1 +1,1 @@\n-  -r1\n-  +mq1r1\n-\n-Update to qtip:\n-\n-  $ hg up -q qtip\n+  abort: uncommitted changes\n+  (commit or update --clean to discard changes)\n+  [255]\n \n   $ cat f\n   mq1r1mq2\n \n+  $ cat .hg/patches/f.patch\n+  Date: 1 0\n+  \n+\n+Update to qtip:\n+\n+  $ hg up -q qtip\n+  abort: uncommitted changes\n+  (commit or update --clean to discard changes)\n+  [255]\n+\n+  $ cat f\n+  mq1r1mq2\n+\n   $ cat .hg/patches/f2.patch\n-  # HG changeset patch\n-  # User test\n-  # Date 2 0\n-  #      Thu Jan 01 00:00:02 1970 +0000\n-  # Node ID 462012cf340c97d44d62377c985a423f6bb82f07\n-  # Parent  ebe9914c0d1c3f60096e952fa4dbb3d377dea3ab\n-  P1\n-  \n-  diff -r ebe9914c0d1c -r 462012cf340c f\n-  --- a/f\tThu Jan 01 00:00:01 1970 +0000\n-  +++ b/f\tThu Jan 01 00:00:02 1970 +0000\n-  @@ -1,1 +1,1 @@\n-  -mq1r1\n-  +mq1r1mq2\n+  cat: .hg/patches/f2.patch: $ENOENT$\n+  [1]\n \n Adding one git-style patch and one normal:\n \n   $ hg qpop -a\n-  popping f2.patch\n   popping f.patch\n-  patch queue now empty\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ rm -fr .hg/patches\n   $ hg qinit -c\n \n   $ hg up -q 0\n+  warning: conflicts while merging f! (edit, then use \'hg resolve --mark\')\n+  [1]\n \n   $ hg qnew --git f_git.patch -d \'3 0\'\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n   $ echo mq1 > p\n   $ hg add p\n   $ hg qref --git -m \'P0 (git)\'\n+  no patches applied\n+  [1]\n \n   $ hg qnew f.patch -d \'4 0\'\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n   $ echo mq2 > p\n   $ hg qref -m P1\n+  no patches applied\n+  [1]\n   $ hg qci -m \'save patch state\'\n \n   $ hg qseries -s\n-  f_git.patch: P0 (git)\n-  f.patch: P1\n \n   $ hg -R .hg/patches manifest\n   .hgignore\n-  f.patch\n-  f_git.patch\n   series\n \n   $ cat .hg/patches/f_git.patch\n-  Date: 3 0\n-  \n-  P0 (git)\n-  \n-  diff --git a/p b/p\n-  new file mode 100644\n-  --- /dev/null\n-  +++ b/p\n-  @@ -0,0 +1,1 @@\n-  +mq1\n+  cat: .hg/patches/f_git.patch: $ENOENT$\n+  [1]\n \n   $ cat .hg/patches/f.patch\n-  Date: 4 0\n-  \n-  P1\n-  \n-  diff -r ???????????? p (glob)\n-  --- a/p\t??? ??? ?? ??:??:?? ???? ????? (glob)\n-  +++ b/p\t??? ??? ?? ??:??:?? ???? ????? (glob)\n-  @@ -1,1 +1,1 @@\n-  -mq1\n-  +mq2\n+  cat: .hg/patches/f.patch: $ENOENT$\n+  [1]\n \n \n Rebase the applied mq patches:\n \n   $ hg rebase -s 2 -d 1\n-  rebasing 2:0c587ffcb480 f_git.patch qbase "P0 (git)"\n-  rebasing 3:c7f18665e4bc f.patch qtip tip "P1"\n-  saved backup bundle to $TESTTMP/a/.hg/strip-backup/0c587ffcb480-0ea5695f-rebase.hg\n+  abort: uncommitted changes\n+  [20]\n \n   $ hg qci -m \'save patch state\'\n+  nothing changed\n \n   $ hg qseries -s\n-  f_git.patch: P0 (git)\n-  f.patch: P1\n \n   $ hg -R .hg/patches manifest\n   .hgignore\n-  f.patch\n-  f_git.patch\n   series\n \n   $ cat .hg/patches/f_git.patch\n-  # HG changeset patch\n-  # User test\n-  # Date 3 0\n-  #      Thu Jan 01 00:00:03 1970 +0000\n-  # Node ID 12d9f6a3bbe560dee50c7c454d434add7fb8e837\n-  # Parent  bac9ed9960d8992bcad75864a879fa76cadaf1b0\n-  P0 (git)\n-  \n-  diff --git a/p b/p\n-  new file mode 100644\n-  --- /dev/null\n-  +++ b/p\n-  @@ -0,0 +1,1 @@\n-  +mq1\n+  cat: .hg/patches/f_git.patch: $ENOENT$\n+  [1]\n \n   $ cat .hg/patches/f.patch\n-  # HG changeset patch\n-  # User test\n-  # Date 4 0\n-  #      Thu Jan 01 00:00:04 1970 +0000\n-  # Node ID c77a2661c64c60d82f63c4f7aefd95b3a948a557\n-  # Parent  12d9f6a3bbe560dee50c7c454d434add7fb8e837\n-  P1\n-  \n-  diff -r 12d9f6a3bbe5 -r c77a2661c64c p\n-  --- a/p\tThu Jan 01 00:00:03 1970 +0000\n-  +++ b/p\tThu Jan 01 00:00:04 1970 +0000\n-  @@ -1,1 +1,1 @@\n-  -mq1\n-  +mq2\n+  cat: .hg/patches/f.patch: $ENOENT$\n+  [1]\n \n   $ cd ..\n \n@@ -279,17 +222,65 @@\n   popping bar\n   popping empty-important\n   popping guarded\n-  patch queue now empty\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 3582, in pop\n+      keepchanges=opts.get(b\'keep_changes\'),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 1863, in pop\n+      strip(self.ui, repo, [rev], update=False, backup=False)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg qguard guarded +guarded\n   $ hg qguard bar +baz\n   $ hg qguard foo +baz\n   $ hg qselect baz\n-  number of unguarded, unapplied patches has changed from 1 to 3\n+  number of guarded, applied patches has changed from 3 to 1\n   $ hg qpush bar\n-  applying empty-important\n-  patch empty-important is empty\n-  applying bar\n-  now at: bar\n+  (working directory not at a head)\n+  abort: cannot push to a previous patch: bar\n+  [255]\n \n   $ hg qguard -l\n   guarded: +guarded\n@@ -298,32 +289,42 @@\n   foo: +baz\n \n   $ hg tglog\n-  @  2: 4f44b861d38c \'imported patch bar\' tags: bar qtip tip\n-  |\n-  o  1: 0aaf4c3af7eb \'important commit message\' tags: empty-important qbase\n-  |\n-  o  0: cb9a9f314b8b \'a\' tags: qparent\n+  o  4: 171a9d7812dd \'[mq]: foo\' tags: foo qtip tip\n+  |\n+  o  3: bb570d69f4b2 \'[mq]: bar\' tags: bar\n+  |\n+  o  2: 4d601af632f0 \'important commit message\' tags: empty-important\n+  |\n+  o  1: 7e36465692b7 \'[mq]: guarded\' tags: guarded qbase\n+  |\n+  @  0: cb9a9f314b8b \'a\' tags: qparent\n   \n Create new head to rebase bar onto:\n \n   $ hg up -C 0\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ echo b > b\n   $ hg add b\n   $ hg ci -m b\n-  created new head\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up -C 2\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ echo a >> a\n   $ hg qref\n-\n-  $ hg tglog\n-  @  3: d526d4536ed6 \'[mq]: bar\' tags: bar qtip tip\n-  |\n-  | o  2: d2ae7f538514 \'b\' tags:\n-  | |\n-  o |  1: 0aaf4c3af7eb \'important commit message\' tags: empty-important qbase\n-  |/\n+  abort: working directory revision is not qtip\n+  [255]\n+\n+  $ hg tglog\n+  o  4: 171a9d7812dd \'[mq]: foo\' tags: foo qtip tip\n+  |\n+  o  3: bb570d69f4b2 \'[mq]: bar\' tags: bar\n+  |\n+  @  2: 4d601af632f0 \'important commit message\' tags: empty-important\n+  |\n+  o  1: 7e36465692b7 \'[mq]: guarded\' tags: guarded qbase\n+  |\n   o  0: cb9a9f314b8b \'a\' tags: qparent\n   \n \n@@ -337,24 +338,30 @@\n   foo\n   $ [ -f .hg/patches/empty-important ]\n   $ hg -q rebase -d 2\n-  note: not rebasing 1:0aaf4c3af7eb empty-important qbase "important commit message", its destination already has all its changes\n+  abort: uncommitted changes\n+  [20]\n   $ hg qseries\n   guarded\n+  empty-important\n   bar\n   foo\n   $ [ -f .hg/patches/empty-important ]\n-  [1]\n \n   $ hg qguard -l\n   guarded: +guarded\n+  empty-important: unguarded\n   bar: +baz\n   foo: +baz\n \n   $ hg tglog\n-  @  2: 477d948bb2af \'[mq]: bar\' tags: bar qbase qtip tip\n-  |\n-  o  1: d2ae7f538514 \'b\' tags: qparent\n-  |\n-  o  0: cb9a9f314b8b \'a\' tags:\n+  o  4: 171a9d7812dd \'[mq]: foo\' tags: foo qtip tip\n+  |\n+  o  3: bb570d69f4b2 \'[mq]: bar\' tags: bar\n+  |\n+  @  2: 4d601af632f0 \'important commit message\' tags: empty-important\n+  |\n+  o  1: 7e36465692b7 \'[mq]: guarded\' tags: guarded qbase\n+  |\n+  o  0: cb9a9f314b8b \'a\' tags: qparent\n   \n   $ cd ..\n', 9121, 9123, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-named-branches.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-named-branches.t\n+++ c:/hgdev/src/tests/test-rebase-named-branches.t.err\n@@ -74,20 +74,95 @@\n   rebasing 7:02de42196ebe "H"\n   rebasing 9:cb039b7cae8e tip "dev-two named branch"\n   saved backup bundle to $TESTTMP/a1/.hg/strip-backup/24b6387c8c8c-24cb8001-rebase.hg\n-\n-  $ hg tglog\n-  @  9: 9e70cd31750f \'dev-two named branch\' dev-two\n-  |\n-  o  8: 31d0e4ba75e6 \'H\'\n-  |\n-  | o  7: 4b988a958030 \'G\'\n+  strip failed, backup bundle stored in \'$TESTTMP\\a1\\.hg\\strip-backup/24b6387c8c8c-24cb8001-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a1\\.hg\\strip-backup/24b6387c8c8c-c4ee9ef5-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a1\\.hg\\strip-backup/24b6387c8c8c-c4ee9ef5-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+\n+  $ hg tglog\n+  @  13: 9e70cd31750f \'dev-two named branch\' dev-two\n+  |\n+  o  12: 31d0e4ba75e6 \'H\'\n+  |\n+  | o  11: 4b988a958030 \'G\'\n   |/|\n-  o |  6: 24de4aff8e28 \'F\'\n-  | |\n-  o |  5: 643fc9128048 \'dev-one named branch\' dev-one\n-  | |\n-  | o  4: 9520eea781bc \'E\'\n-  | |\n+  o |  10: 24de4aff8e28 \'F\'\n+  | |\n+  | | o  9: cb039b7cae8e \'dev-two named branch\' dev-two\n+  | | |\n+  o | |  8: 643fc9128048 \'dev-one named branch\' dev-one\n+  | | |\n+  | | o  7: 02de42196ebe \'H\'\n+  | | |\n+  | +---o  6: eea13746799a \'G\'\n+  | | |/\n+  | | o  5: 24b6387c8c8c \'F\'\n+  | | |\n+  | o |  4: 9520eea781bc \'E\'\n+  | |/\n   o |  3: 32af7686d403 \'D\'\n   | |\n   o |  2: 5fddd98957c8 \'C\'\n@@ -97,55 +172,70 @@\n   o  0: cd010b8cd998 \'A\'\n   \n   $ hg rebase -s dev-one -d 0 --keepbranches\n-  rebasing 5:643fc9128048 "dev-one named branch"\n-  rebasing 6:24de4aff8e28 "F"\n-  rebasing 7:4b988a958030 "G"\n-  rebasing 8:31d0e4ba75e6 "H"\n-  rebasing 9:9e70cd31750f tip "dev-two named branch"\n-  saved backup bundle to $TESTTMP/a1/.hg/strip-backup/643fc9128048-c4ee9ef5-rebase.hg\n-\n-  $ hg tglog\n-  @  9: 59c2e59309fe \'dev-two named branch\' dev-two\n-  |\n-  o  8: 904590360559 \'H\'\n-  |\n-  | o  7: 1a1e6f72ec38 \'G\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+\n+  $ hg tglog\n+  @  13: 9e70cd31750f \'dev-two named branch\' dev-two\n+  |\n+  o  12: 31d0e4ba75e6 \'H\'\n+  |\n+  | o  11: 4b988a958030 \'G\'\n   |/|\n-  o |  6: 42aa3cf0fa7a \'F\'\n-  | |\n-  o |  5: bc8139ee757c \'dev-one named branch\' dev-one\n-  | |\n-  | o  4: 9520eea781bc \'E\'\n-  |/\n-  | o  3: 32af7686d403 \'D\'\n-  | |\n-  | o  2: 5fddd98957c8 \'C\'\n-  | |\n-  | o  1: 42ccdea3bb16 \'B\'\n+  o |  10: 24de4aff8e28 \'F\'\n+  | |\n+  | | o  9: cb039b7cae8e \'dev-two named branch\' dev-two\n+  | | |\n+  o | |  8: 643fc9128048 \'dev-one named branch\' dev-one\n+  | | |\n+  | | o  7: 02de42196ebe \'H\'\n+  | | |\n+  | +---o  6: eea13746799a \'G\'\n+  | | |/\n+  | | o  5: 24b6387c8c8c \'F\'\n+  | | |\n+  | o |  4: 9520eea781bc \'E\'\n+  | |/\n+  o |  3: 32af7686d403 \'D\'\n+  | |\n+  o |  2: 5fddd98957c8 \'C\'\n+  | |\n+  o |  1: 42ccdea3bb16 \'B\'\n   |/\n   o  0: cd010b8cd998 \'A\'\n   \n   $ hg update 3\n-  3 files updated, 0 files merged, 3 files removed, 0 files unresolved\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg branch -f dev-one\n   marked working directory as branch dev-one\n   $ hg ci -m \'dev-one named branch\'\n-  created new head\n-\n-  $ hg tglog\n-  @  10: 643fc9128048 \'dev-one named branch\' dev-one\n-  |\n-  | o  9: 59c2e59309fe \'dev-two named branch\' dev-two\n-  | |\n-  | o  8: 904590360559 \'H\'\n-  | |\n-  | | o  7: 1a1e6f72ec38 \'G\'\n-  | |/|\n-  | o |  6: 42aa3cf0fa7a \'F\'\n-  | | |\n-  | o |  5: bc8139ee757c \'dev-one named branch\' dev-one\n-  | | |\n-  | | o  4: 9520eea781bc \'E\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+\n+  $ hg tglog\n+  @  13: 9e70cd31750f \'dev-two named branch\' dev-two\n+  |\n+  o  12: 31d0e4ba75e6 \'H\'\n+  |\n+  | o  11: 4b988a958030 \'G\'\n+  |/|\n+  o |  10: 24de4aff8e28 \'F\'\n+  | |\n+  | | o  9: cb039b7cae8e \'dev-two named branch\' dev-two\n+  | | |\n+  o | |  8: 643fc9128048 \'dev-one named branch\' dev-one\n+  | | |\n+  | | o  7: 02de42196ebe \'H\'\n+  | | |\n+  | +---o  6: eea13746799a \'G\'\n+  | | |/\n+  | | o  5: 24b6387c8c8c \'F\'\n+  | | |\n+  | o |  4: 9520eea781bc \'E\'\n   | |/\n   o |  3: 32af7686d403 \'D\'\n   | |\n@@ -156,27 +246,31 @@\n   o  0: cd010b8cd998 \'A\'\n   \n   $ hg rebase -b \'max(branch("dev-two"))\' -d dev-one --keepbranches\n-  rebasing 5:bc8139ee757c "dev-one named branch"\n-  note: not rebasing 5:bc8139ee757c "dev-one named branch", its destination already has all its changes\n-  rebasing 6:42aa3cf0fa7a "F"\n-  rebasing 7:1a1e6f72ec38 "G"\n-  rebasing 8:904590360559 "H"\n-  rebasing 9:59c2e59309fe "dev-two named branch"\n-  saved backup bundle to $TESTTMP/a1/.hg/strip-backup/bc8139ee757c-f11c1080-rebase.hg\n-\n-  $ hg tglog\n-  o  9: 71325f8bc082 \'dev-two named branch\' dev-two\n-  |\n-  o  8: 12b2bc666e20 \'H\'\n-  |\n-  | o  7: 549f007a9f5f \'G\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+\n+  $ hg tglog\n+  @  13: 9e70cd31750f \'dev-two named branch\' dev-two\n+  |\n+  o  12: 31d0e4ba75e6 \'H\'\n+  |\n+  | o  11: 4b988a958030 \'G\'\n   |/|\n-  o |  6: 679f28760620 \'F\'\n-  | |\n-  @ |  5: 643fc9128048 \'dev-one named branch\' dev-one\n-  | |\n-  | o  4: 9520eea781bc \'E\'\n-  | |\n+  o |  10: 24de4aff8e28 \'F\'\n+  | |\n+  | | o  9: cb039b7cae8e \'dev-two named branch\' dev-two\n+  | | |\n+  o | |  8: 643fc9128048 \'dev-one named branch\' dev-one\n+  | | |\n+  | | o  7: 02de42196ebe \'H\'\n+  | | |\n+  | +---o  6: eea13746799a \'G\'\n+  | | |/\n+  | | o  5: 24b6387c8c8c \'F\'\n+  | | |\n+  | o |  4: 9520eea781bc \'E\'\n+  | |/\n   o |  3: 32af7686d403 \'D\'\n   | |\n   o |  2: 5fddd98957c8 \'C\'\n@@ -186,153 +280,186 @@\n   o  0: cd010b8cd998 \'A\'\n   \n   $ hg rebase -s \'max(branch("dev-one"))\' -d 0 --keepbranches\n-  rebasing 5:643fc9128048 "dev-one named branch"\n-  rebasing 6:679f28760620 "F"\n-  rebasing 7:549f007a9f5f "G"\n-  rebasing 8:12b2bc666e20 "H"\n-  rebasing 9:71325f8bc082 tip "dev-two named branch"\n-  saved backup bundle to $TESTTMP/a1/.hg/strip-backup/643fc9128048-6cdd1a52-rebase.hg\n-\n-  $ hg tglog\n-  o  9: 3944801ae4ea \'dev-two named branch\' dev-two\n-  |\n-  o  8: 8e279d293175 \'H\'\n-  |\n-  | o  7: aeefee77ab01 \'G\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+\n+  $ hg tglog\n+  @  13: 9e70cd31750f \'dev-two named branch\' dev-two\n+  |\n+  o  12: 31d0e4ba75e6 \'H\'\n+  |\n+  | o  11: 4b988a958030 \'G\'\n   |/|\n-  o |  6: e908b85f3729 \'F\'\n-  | |\n-  @ |  5: bc8139ee757c \'dev-one named branch\' dev-one\n-  | |\n-  | o  4: 9520eea781bc \'E\'\n-  |/\n-  | o  3: 32af7686d403 \'D\'\n-  | |\n-  | o  2: 5fddd98957c8 \'C\'\n-  | |\n-  | o  1: 42ccdea3bb16 \'B\'\n+  o |  10: 24de4aff8e28 \'F\'\n+  | |\n+  | | o  9: cb039b7cae8e \'dev-two named branch\' dev-two\n+  | | |\n+  o | |  8: 643fc9128048 \'dev-one named branch\' dev-one\n+  | | |\n+  | | o  7: 02de42196ebe \'H\'\n+  | | |\n+  | +---o  6: eea13746799a \'G\'\n+  | | |/\n+  | | o  5: 24b6387c8c8c \'F\'\n+  | | |\n+  | o |  4: 9520eea781bc \'E\'\n+  | |/\n+  o |  3: 32af7686d403 \'D\'\n+  | |\n+  o |  2: 5fddd98957c8 \'C\'\n+  | |\n+  o |  1: 42ccdea3bb16 \'B\'\n   |/\n   o  0: cd010b8cd998 \'A\'\n   \n   $ hg up -r 0 > /dev/null\n+  \\x1b[0;31mabort: rebase in progress\\x1b[0m (esc)\n+  \\x1b[0;31m(use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\\x1b[0m (esc)\n+  [20]\n \n Rebasing descendant onto ancestor across different named branches\n \n   $ hg rebase -s 1 -d 9 --keepbranches\n-  rebasing 1:42ccdea3bb16 "B"\n-  rebasing 2:5fddd98957c8 "C"\n-  rebasing 3:32af7686d403 "D"\n-  saved backup bundle to $TESTTMP/a1/.hg/strip-backup/42ccdea3bb16-3cb021d3-rebase.hg\n-\n-  $ hg tglog\n-  o  9: e9f862ce8bad \'D\'\n-  |\n-  o  8: a0d543090fa4 \'C\'\n-  |\n-  o  7: 3bdb949809d9 \'B\'\n-  |\n-  o  6: 3944801ae4ea \'dev-two named branch\' dev-two\n-  |\n-  o  5: 8e279d293175 \'H\'\n-  |\n-  | o  4: aeefee77ab01 \'G\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+\n+  $ hg tglog\n+  @  13: 9e70cd31750f \'dev-two named branch\' dev-two\n+  |\n+  o  12: 31d0e4ba75e6 \'H\'\n+  |\n+  | o  11: 4b988a958030 \'G\'\n   |/|\n-  o |  3: e908b85f3729 \'F\'\n-  | |\n-  o |  2: bc8139ee757c \'dev-one named branch\' dev-one\n-  | |\n-  | o  1: 9520eea781bc \'E\'\n-  |/\n-  @  0: cd010b8cd998 \'A\'\n+  o |  10: 24de4aff8e28 \'F\'\n+  | |\n+  | | o  9: cb039b7cae8e \'dev-two named branch\' dev-two\n+  | | |\n+  o | |  8: 643fc9128048 \'dev-one named branch\' dev-one\n+  | | |\n+  | | o  7: 02de42196ebe \'H\'\n+  | | |\n+  | +---o  6: eea13746799a \'G\'\n+  | | |/\n+  | | o  5: 24b6387c8c8c \'F\'\n+  | | |\n+  | o |  4: 9520eea781bc \'E\'\n+  | |/\n+  o |  3: 32af7686d403 \'D\'\n+  | |\n+  o |  2: 5fddd98957c8 \'C\'\n+  | |\n+  o |  1: 42ccdea3bb16 \'B\'\n+  |/\n+  o  0: cd010b8cd998 \'A\'\n   \n   $ hg rebase -s 5 -d 6\n-  abort: source and destination form a cycle\n-  [255]\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n   $ hg rebase -s 6 -d 5\n-  rebasing 6:3944801ae4ea "dev-two named branch"\n-  rebasing 7:3bdb949809d9 "B"\n-  rebasing 8:a0d543090fa4 "C"\n-  rebasing 9:e9f862ce8bad tip "D"\n-  saved backup bundle to $TESTTMP/a1/.hg/strip-backup/3944801ae4ea-fb46ed74-rebase.hg\n-\n-  $ hg tglog\n-  o  9: e522577ccdbd \'D\'\n-  |\n-  o  8: 810110211f50 \'C\'\n-  |\n-  o  7: 160b0930ccc6 \'B\'\n-  |\n-  o  6: c57724c84928 \'dev-two named branch\'\n-  |\n-  o  5: 8e279d293175 \'H\'\n-  |\n-  | o  4: aeefee77ab01 \'G\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+\n+  $ hg tglog\n+  @  13: 9e70cd31750f \'dev-two named branch\' dev-two\n+  |\n+  o  12: 31d0e4ba75e6 \'H\'\n+  |\n+  | o  11: 4b988a958030 \'G\'\n   |/|\n-  o |  3: e908b85f3729 \'F\'\n-  | |\n-  o |  2: bc8139ee757c \'dev-one named branch\' dev-one\n-  | |\n-  | o  1: 9520eea781bc \'E\'\n-  |/\n-  @  0: cd010b8cd998 \'A\'\n+  o |  10: 24de4aff8e28 \'F\'\n+  | |\n+  | | o  9: cb039b7cae8e \'dev-two named branch\' dev-two\n+  | | |\n+  o | |  8: 643fc9128048 \'dev-one named branch\' dev-one\n+  | | |\n+  | | o  7: 02de42196ebe \'H\'\n+  | | |\n+  | +---o  6: eea13746799a \'G\'\n+  | | |/\n+  | | o  5: 24b6387c8c8c \'F\'\n+  | | |\n+  | o |  4: 9520eea781bc \'E\'\n+  | |/\n+  o |  3: 32af7686d403 \'D\'\n+  | |\n+  o |  2: 5fddd98957c8 \'C\'\n+  | |\n+  o |  1: 42ccdea3bb16 \'B\'\n+  |/\n+  o  0: cd010b8cd998 \'A\'\n   \n \n Reopen branch by rebase\n \n   $ hg up -qr3\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg branch -q b\n   $ hg ci -m \'create b\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg ci -m \'close b\' --close\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg rebase -b 8 -d b\n-  reopening closed branch head 2b586e70108d\n-  rebasing 5:8e279d293175 "H"\n-  rebasing 6:c57724c84928 "dev-two named branch"\n-  rebasing 7:160b0930ccc6 "B"\n-  rebasing 8:810110211f50 "C"\n-  rebasing 9:e522577ccdbd "D"\n-  saved backup bundle to $TESTTMP/a1/.hg/strip-backup/8e279d293175-b023e27c-rebase.hg\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n   $ hg log -G -Tcompact\n-  o  11[tip]   be1dea60f2a6   2011-04-30 15:24 +0200   nicdumz\n-  |    D\n-  |\n-  o  10   ac34ce92632a   2011-04-30 15:24 +0200   nicdumz\n-  |    C\n-  |\n-  o  9   7bd665b6ce12   2011-04-30 15:24 +0200   nicdumz\n-  |    B\n-  |\n-  o  8   58e7c36e77f7   1970-01-01 00:00 +0000   test\n+  @  13[tip]   9e70cd31750f   1970-01-01 00:00 +0000   test\n   |    dev-two named branch\n   |\n-  o  7   8e5a320651f3   2011-04-30 15:24 +0200   nicdumz\n+  o  12:10   31d0e4ba75e6   2011-04-30 15:24 +0200   nicdumz\n   |    H\n   |\n-  @  6   2b586e70108d   1970-01-01 00:00 +0000   test\n-  |    close b\n-  |\n-  o  5:3   3f9d5df8a707   1970-01-01 00:00 +0000   test\n-  |    create b\n-  |\n-  | o  4:3,1   aeefee77ab01   2011-04-30 15:24 +0200   nicdumz\n+  | o  11:10,4   4b988a958030   2011-04-30 15:24 +0200   nicdumz\n   |/|    G\n   | |\n-  o |  3   e908b85f3729   2011-04-30 15:24 +0200   nicdumz\n+  o |  10:8   24de4aff8e28   2011-04-30 15:24 +0200   nicdumz\n   | |    F\n   | |\n-  o |  2:0   bc8139ee757c   1970-01-01 00:00 +0000   test\n-  | |    dev-one named branch\n-  | |\n-  | o  1   9520eea781bc   2011-04-30 15:24 +0200   nicdumz\n-  |/     E\n+  | | o  9:7   cb039b7cae8e   1970-01-01 00:00 +0000   test\n+  | | |    dev-two named branch\n+  | | |\n+  o | |  8:3   643fc9128048   1970-01-01 00:00 +0000   test\n+  | | |    dev-one named branch\n+  | | |\n+  | | o  7:5   02de42196ebe   2011-04-30 15:24 +0200   nicdumz\n+  | | |    H\n+  | | |\n+  | +---o  6:5,4   eea13746799a   2011-04-30 15:24 +0200   nicdumz\n+  | | |/     G\n+  | | |\n+  | | o  5:0   24b6387c8c8c   2011-04-30 15:24 +0200   nicdumz\n+  | | |    F\n+  | | |\n+  | o |  4:0   9520eea781bc   2011-04-30 15:24 +0200   nicdumz\n+  | |/     E\n+  | |\n+  o |  3   32af7686d403   2011-04-30 15:24 +0200   nicdumz\n+  | |    D\n+  | |\n+  o |  2   5fddd98957c8   2011-04-30 15:24 +0200   nicdumz\n+  | |    C\n+  | |\n+  o |  1   42ccdea3bb16   2011-04-30 15:24 +0200   nicdumz\n+  |/     B\n   |\n   o  0   cd010b8cd998   2011-04-30 15:24 +0200   nicdumz\n        A\n   \n   $ echo A-mod > A\n   $ hg diff\n-  diff -r 2b586e70108d A\n+  diff -r 9e70cd31750f A\n   --- a/A\tThu Jan 01 00:00:00 1970 +0000\n   +++ b/A\tThu Jan 01 00:00:00 1970 +0000\n   @@ -1,1 +1,1 @@\n@@ -344,10 +471,11 @@\n \n   $ hg rebase -s tip -d 4 --dry-run\n   starting dry-run rebase; repository will not be changed\n-  rebasing 11:be1dea60f2a6 tip "D"\n-  dry-run rebase completed successfully; run without -n/--dry-run to perform this rebase\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg diff\n-  diff -r 2b586e70108d A\n+  diff -r 9e70cd31750f A\n   --- a/A\tThu Jan 01 00:00:00 1970 +0000\n   +++ b/A\tThu Jan 01 00:00:00 1970 +0000\n   @@ -1,1 +1,1 @@\n@@ -360,11 +488,11 @@\n   $ echo A-mod > A\n   $ echo n | hg rebase -s tip -d 4 --confirm --config ui.interactive=True\n   starting in-memory rebase\n-  rebasing 11:be1dea60f2a6 tip "D"\n-  rebase completed successfully\n-  apply changes (yn)? n\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg diff\n-  diff -r 2b586e70108d A\n+  diff -r 9e70cd31750f A\n   --- a/A\tThu Jan 01 00:00:00 1970 +0000\n   +++ b/A\tThu Jan 01 00:00:00 1970 +0000\n   @@ -1,1 +1,1 @@\n@@ -374,12 +502,11 @@\n   $ echo A-mod > A\n   $ hg rebase -s tip -d 4 --confirm\n   starting in-memory rebase\n-  rebasing 11:be1dea60f2a6 tip "D"\n-  rebase completed successfully\n-  apply changes (yn)? y\n-  saved backup bundle to $TESTTMP/a1/.hg/strip-backup/be1dea60f2a6-ca6d2dac-rebase.hg\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg diff\n-  diff -r 2b586e70108d A\n+  diff -r 9e70cd31750f A\n   --- a/A\tThu Jan 01 00:00:00 1970 +0000\n   +++ b/A\tThu Jan 01 00:00:00 1970 +0000\n   @@ -1,1 +1,1 @@\n@@ -391,10 +518,11 @@\n \n   $ hg rebase -s 5 -d 4 --dry-run\n   starting dry-run rebase; repository will not be changed\n-  abort: uncommitted changes\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n   [20]\n   $ hg diff\n-  diff -r 2b586e70108d A\n+  diff -r 9e70cd31750f A\n   --- a/A\tThu Jan 01 00:00:00 1970 +0000\n   +++ b/A\tThu Jan 01 00:00:00 1970 +0000\n   @@ -1,1 +1,1 @@\n@@ -405,10 +533,11 @@\n \n   $ echo n | hg rebase -s 5 -d 4 --confirm --config ui.interactive=True\n   starting in-memory rebase\n-  abort: uncommitted changes\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n   [20]\n   $ hg diff\n-  diff -r 2b586e70108d A\n+  diff -r 9e70cd31750f A\n   --- a/A\tThu Jan 01 00:00:00 1970 +0000\n   +++ b/A\tThu Jan 01 00:00:00 1970 +0000\n   @@ -1,1 +1,1 @@\n@@ -416,10 +545,11 @@\n   +A-mod\n   $ hg rebase -s 5 -d 4 --confirm\n   starting in-memory rebase\n-  abort: uncommitted changes\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n   [20]\n   $ hg diff\n-  diff -r 2b586e70108d A\n+  diff -r 9e70cd31750f A\n   --- a/A\tThu Jan 01 00:00:00 1970 +0000\n   +++ b/A\tThu Jan 01 00:00:00 1970 +0000\n   @@ -1,1 +1,1 @@\n@@ -464,9 +594,78 @@\n   rebasing 2:792845bb77ee "b2"\n   note: not rebasing 2:792845bb77ee "b2", its destination already has all its changes\n   saved backup bundle to $TESTTMP/case1/.hg/strip-backup/792845bb77ee-627120ee-rebase.hg\n-  $ hg tglog\n-  o  2: c062e3ecd6c6 \'c1\' c\n-  |\n+  strip failed, backup bundle stored in \'$TESTTMP\\case1\\.hg\\strip-backup/792845bb77ee-627120ee-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\case1\\.hg\\strip-backup/792845bb77ee-e29014c4-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\case1\\.hg\\strip-backup/792845bb77ee-e29014c4-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg tglog\n+  o  3: c062e3ecd6c6 \'c1\' c\n+  |\n+  | o  2: 792845bb77ee \'b2\' b\n+  |/\n   | @  1: 40039acb7ca5 \'b1\' b\n   |/\n   o  0: d681519c3ea7 \'0\'\n@@ -479,12 +678,81 @@\n   $ hg rebase\n   rebasing 1:40039acb7ca5 "b1"\n   saved backup bundle to $TESTTMP/case2/.hg/strip-backup/40039acb7ca5-342b72d1-rebase.hg\n-  $ hg tglog\n-  @  3: 76abc1c6f8c7 \'b1\' b\n-  |\n-  | o  2: c062e3ecd6c6 \'c1\' c\n-  | |\n-  o |  1: 792845bb77ee \'b2\' b\n+  strip failed, backup bundle stored in \'$TESTTMP\\case2\\.hg\\strip-backup/40039acb7ca5-342b72d1-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\case2\\.hg\\strip-backup/40039acb7ca5-22e8c1b8-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\case2\\.hg\\strip-backup/40039acb7ca5-22e8c1b8-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg tglog\n+  @  4: 76abc1c6f8c7 \'b1\' b\n+  |\n+  | o  3: c062e3ecd6c6 \'c1\' c\n+  | |\n+  o |  2: 792845bb77ee \'b2\' b\n+  |/\n+  | o  1: 40039acb7ca5 \'b1\' b\n   |/\n   o  0: d681519c3ea7 \'0\'\n   \n@@ -493,49 +761,58 @@\n \n   $ hg branch -qf c\n   $ hg ci -qm \'c2 closed\' --close\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg up -qr 2\n-  $ hg tglog\n-  _  4: 8427af5d86f2 \'c2 closed\' c\n-  |\n-  o  3: 76abc1c6f8c7 \'b1\' b\n-  |\n-  | @  2: c062e3ecd6c6 \'c1\' c\n-  | |\n-  o |  1: 792845bb77ee \'b2\' b\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+  $ hg tglog\n+  @  4: 76abc1c6f8c7 \'b1\' b\n+  |\n+  | o  3: c062e3ecd6c6 \'c1\' c\n+  | |\n+  o |  2: 792845bb77ee \'b2\' b\n+  |/\n+  | o  1: 40039acb7ca5 \'b1\' b\n   |/\n   o  0: d681519c3ea7 \'0\'\n   \n   $ hg rebase\n-  abort: branch \'c\' has one head - please rebase to an explicit rev\n-  (run \'hg heads\' to see all heads, specify destination with -d)\n-  [255]\n-  $ hg tglog\n-  _  4: 8427af5d86f2 \'c2 closed\' c\n-  |\n-  o  3: 76abc1c6f8c7 \'b1\' b\n-  |\n-  | @  2: c062e3ecd6c6 \'c1\' c\n-  | |\n-  o |  1: 792845bb77ee \'b2\' b\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+  $ hg tglog\n+  @  4: 76abc1c6f8c7 \'b1\' b\n+  |\n+  | o  3: c062e3ecd6c6 \'c1\' c\n+  | |\n+  o |  2: 792845bb77ee \'b2\' b\n+  |/\n+  | o  1: 40039acb7ca5 \'b1\' b\n   |/\n   o  0: d681519c3ea7 \'0\'\n   \n \n   $ hg up -cr 1\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg branch x\n   marked working directory as branch x\n   $ hg rebase -r 3:: -d .\n-  rebasing 3:76abc1c6f8c7 "b1"\n-  rebasing 4:8427af5d86f2 tip "c2 closed"\n-  note: not rebasing 4:8427af5d86f2 tip "c2 closed", its destination already has all its changes\n-  saved backup bundle to $TESTTMP/case2/.hg/strip-backup/76abc1c6f8c7-cd698d13-rebase.hg\n-  $ hg tglog\n-  o  3: 117b0ed08075 \'b1\' x\n-  |\n-  | o  2: c062e3ecd6c6 \'c1\' c\n-  | |\n-  @ |  1: 792845bb77ee \'b2\' b\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+  $ hg tglog\n+  @  4: 76abc1c6f8c7 \'b1\' b\n+  |\n+  | o  3: c062e3ecd6c6 \'c1\' c\n+  | |\n+  o |  2: 792845bb77ee \'b2\' b\n+  |/\n+  | o  1: 40039acb7ca5 \'b1\' b\n   |/\n   o  0: d681519c3ea7 \'0\'\n   \n', 2678, 2680, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-newancestor.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-newancestor.t\n+++ c:/hgdev/src/tests/test-rebase-newancestor.t.err\n@@ -43,14 +43,87 @@\n   rebasing 2:30ae917c0e4f "C"\n   merging a\n   saved backup bundle to $TESTTMP/repo/.hg/strip-backup/0f4f7cb4f549-82b3b163-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/0f4f7cb4f549-82b3b163-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\.hg\\strip-backup/0f4f7cb4f549-948329a7-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\.hg\\strip-backup/0f4f7cb4f549-948329a7-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  o  3: 25773bc4b4b0 \'C\'\n+  o  5: 25773bc4b4b0 \'C\'\n   |\n-  o  2: c09015405f75 \'B\'\n+  o  4: c09015405f75 \'B\'\n   |\n-  @  1: 3878212183bd \'AD\'\n+  @  3: 3878212183bd \'AD\'\n   |\n+  | o  2: 30ae917c0e4f \'C\'\n+  | |\n+  | o  1: 0f4f7cb4f549 \'B\'\n+  |/\n   o  0: 1e635d440a73 \'A\'\n   \n \n@@ -132,15 +205,92 @@\n   rebasing 6:010ced67e558 "dev: merge default"\n   note: not rebasing 6:010ced67e558 "dev: merge default", its destination already has all its changes\n   saved backup bundle to $TESTTMP/ancestor-merge/.hg/strip-backup/1d1a643d390e-4a6f6d17-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\ancestor-merge\\.hg\\strip-backup/1d1a643d390e-4a6f6d17-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\ancestor-merge\\.hg\\strip-backup/1d1a643d390e-ded13cfd-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\ancestor-merge\\.hg\\strip-backup/1d1a643d390e-ded13cfd-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg tglog\n-  o  4: 3e075b1c0a40 \'dev: f-dev stuff\'\n+  o  8: 3e075b1c0a40 \'dev: f-dev stuff\'\n   |\n-  @  3: e08089805d82 \'default: f-other stuff\'\n+  @  7: e08089805d82 \'default: f-other stuff\'\n   |\n-  o  2: 462860db70a1 \'default: remove f-default\'\n-  |\n-  o  1: f157ecfd2b6b \'default: f-default stuff\'\n-  |\n+  | o  6: 010ced67e558 \'dev: merge default\' dev\n+  |/|\n+  o |  5: 462860db70a1 \'default: remove f-default\'\n+  | |\n+  | o  4: 4b019212aaf6 \'dev: merge default\' dev\n+  |/|\n+  o |  3: f157ecfd2b6b \'default: f-default stuff\'\n+  | |\n+  | o  2: ec2c14fb2984 \'dev: f-dev stuff\' dev\n+  | |\n+  | o  1: 1d1a643d390e \'dev: create branch\' dev\n+  |/\n   o  0: e90e8eb90b6f \'default: create f-default\'\n   \n Grafty cherry picking rebasing:\n@@ -210,8 +360,77 @@\n   $ hg rebase -r 4 -d 2\n   rebasing 4:6990226659be "merge p1 3=outside p2 1=ancestor"\n   saved backup bundle to $TESTTMP/parentorder/.hg/strip-backup/6990226659be-4d67a0d3-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\parentorder\\.hg\\strip-backup/6990226659be-4d67a0d3-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\parentorder\\.hg\\strip-backup/6990226659be-f7eff992-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\parentorder\\.hg\\strip-backup/6990226659be-f7eff992-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg tip\n-  changeset:   5:cca50676b1c5\n+  changeset:   6:cca50676b1c5\n   tag:         tip\n   parent:      2:a60552eb93fb\n   parent:      3:f59da8fc0fcf\n@@ -220,76 +439,63 @@\n   summary:     merge p1 3=outside p2 1=ancestor\n   \n   $ hg rebase -r 4 -d 2\n-  rebasing 4:a57575f79074 "merge p1 1=ancestor p2 3=outside"\n-  saved backup bundle to $TESTTMP/parentorder/.hg/strip-backup/a57575f79074-385426e5-rebase.hg\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg tip\n-  changeset:   5:f9daf77ffe76\n+  changeset:   6:cca50676b1c5\n   tag:         tip\n   parent:      2:a60552eb93fb\n   parent:      3:f59da8fc0fcf\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     merge p1 1=ancestor p2 3=outside\n+  summary:     merge p1 3=outside p2 1=ancestor\n   \n   $ hg tglog\n-  @    5: f9daf77ffe76 \'merge p1 1=ancestor p2 3=outside\'\n+  o    6: cca50676b1c5 \'merge p1 3=outside p2 1=ancestor\'\n   |\\\n-  +---o  4: cca50676b1c5 \'merge p1 3=outside p2 1=ancestor\'\n-  | |/\n-  | o  3: f59da8fc0fcf \'outside\'\n-  | |\n-  o |  2: a60552eb93fb \'target\'\n-  | |\n-  o |  1: dd40c13f7a6f \'change\'\n+  | | @  5: a57575f79074 \'merge p1 1=ancestor p2 3=outside\'\n+  | |/|\n+  | +---o  4: 6990226659be \'merge p1 3=outside p2 1=ancestor\'\n+  | | |/\n+  | o |  3: f59da8fc0fcf \'outside\'\n+  | | |\n+  o---+  2: a60552eb93fb \'target\'\n+   / /\n+  | o  1: dd40c13f7a6f \'change\'\n   |/\n   o  0: 02f0f58d5300 \'common\'\n   \n rebase of merge of ancestors\n \n   $ hg up -qr 2\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg merge -qr 3\n+  abort: merging with a working directory ancestor has no effect\n+  [255]\n   $ echo \'other change while merging future "rebase ancestors"\' > other\n   $ hg ci -Aqm \'merge rebase ancestors\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg rebase -d 5 -v\n-  rebasing 6:4c5f12f25ebe tip "merge rebase ancestors"\n-  resolving manifests\n-  removing other\n-  resolving manifests\n-  getting other\n-  committing files:\n-  other\n-  committing manifest\n-  committing changelog\n-  rebase merging completed\n-  1 changesets found\n-  uncompressed size of bundle content:\n-       199 (changelog)\n-       216 (manifests)\n-       182  other\n-  saved backup bundle to $TESTTMP/parentorder/.hg/strip-backup/4c5f12f25ebe-f46990e5-rebase.hg\n-  1 changesets found\n-  uncompressed size of bundle content:\n-       254 (changelog)\n-       167 (manifests)\n-       182  other\n-  adding branch\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  rebase completed\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg tglog\n-  @  6: 113755df812b \'merge rebase ancestors\'\n-  |\n-  o    5: f9daf77ffe76 \'merge p1 1=ancestor p2 3=outside\'\n+  o    6: cca50676b1c5 \'merge p1 3=outside p2 1=ancestor\'\n   |\\\n-  +---o  4: cca50676b1c5 \'merge p1 3=outside p2 1=ancestor\'\n-  | |/\n-  | o  3: f59da8fc0fcf \'outside\'\n-  | |\n-  o |  2: a60552eb93fb \'target\'\n-  | |\n-  o |  1: dd40c13f7a6f \'change\'\n+  | | @  5: a57575f79074 \'merge p1 1=ancestor p2 3=outside\'\n+  | |/|\n+  | +---o  4: 6990226659be \'merge p1 3=outside p2 1=ancestor\'\n+  | | |/\n+  | o |  3: f59da8fc0fcf \'outside\'\n+  | | |\n+  o---+  2: a60552eb93fb \'target\'\n+   / /\n+  | o  1: dd40c13f7a6f \'change\'\n   |/\n   o  0: 02f0f58d5300 \'common\'\n   \n@@ -334,6 +540,75 @@\n   rebasing 4:d6003a550c2c C "C"\n   rebasing 5:c8f78076273e D tip "D"\n   saved backup bundle to $TESTTMP/dual-merge-base2/.hg/strip-backup/d6003a550c2c-6f1424b6-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\dual-merge-base2\\.hg\\strip-backup/d6003a550c2c-6f1424b6-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\dual-merge-base2\\.hg\\strip-backup/d6003a550c2c-38218f60-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\dual-merge-base2\\.hg\\strip-backup/d6003a550c2c-38218f60-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg manifest -r \'desc(D)\'\n   B\n   C\n@@ -355,13 +630,83 @@\n   rebasing 3:004dc1679908 D "D"\n   rebasing 5:4be4cbf6f206 F tip "F"\n   saved backup bundle to $TESTTMP/chosen-merge-base1/.hg/strip-backup/004dc1679908-06a66a3c-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\chosen-merge-base1\\.hg\\strip-backup/004dc1679908-06a66a3c-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\chosen-merge-base1\\.hg\\strip-backup/004dc1679908-27453f3b-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\chosen-merge-base1\\.hg\\strip-backup/004dc1679908-27453f3b-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg manifest -r \'desc(F)\'\n   C\n   D\n   E\n   Z\n   $ hg log -r `hg log -r \'desc(F)\' -T \'{p1node}\'` -T \'{desc}\\n\'\n-  D\n+  abort: unknown revision \'004dc1679908f6e25264ef60befd3aac13cadadaa51d645503b2f14cba5b30a12ecec992be458ee5\'\n+  [255]\n \n   $ hg init $TESTTMP/chosen-merge-base2\n   $ cd $TESTTMP/chosen-merge-base2\n@@ -376,10 +721,80 @@\n   rebasing 4:974e4943c210 E "E"\n   rebasing 5:4be4cbf6f206 F tip "F"\n   saved backup bundle to $TESTTMP/chosen-merge-base2/.hg/strip-backup/974e4943c210-b2874da5-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\chosen-merge-base2\\.hg\\strip-backup/974e4943c210-b2874da5-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\chosen-merge-base2\\.hg\\strip-backup/974e4943c210-613719cf-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\chosen-merge-base2\\.hg\\strip-backup/974e4943c210-613719cf-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg manifest -r \'desc(F)\'\n   B\n   D\n   E\n   Z\n   $ hg log -r `hg log -r \'desc(F)\' -T \'{p1node}\'` -T \'{desc}\\n\'\n-  E\n+  abort: unknown revision \'004dc1679908f6e25264ef60befd3aac13cadadada78731a4db431211636583daabc18d1b24520d4\'\n+  [255]\n', 2687, 2689, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-obsolete.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-obsolete.t\n+++ c:/hgdev/src/tests/test-rebase-obsolete.t.err\n@@ -801,247 +801,323 @@\n   1 new orphan changesets\n   $ hg --hidden strip -r \'desc(B1)\'\n   saved backup bundle to $TESTTMP/obsskip/.hg/strip-backup/86f6414ccda7-b1c452ee-backup.hg\n-  1 new orphan changesets\n-  $ hg log -G\n-  @  5:1a79b7535141 D\n-  |\n-  | o  4:ff2c4d47b71d C\n-  | |\n-  | o  2:261e70097290 B2\n-  | |\n-  x |  1:a8b11f55fb19 B0 (rewritten using amend as 2:261e70097290)\n+  strip failed, backup bundle stored in \'$TESTTMP\\obsskip\\.hg\\strip-backup/86f6414ccda7-b1c452ee-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\obsskip\\.hg\\strip-backup/86f6414ccda7-6de65983-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\obsskip\\.hg\\strip-backup/86f6414ccda7-6de65983-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg log -G\n+  @  6:1a79b7535141 D\n+  |\n+  | o  5:ff2c4d47b71d C\n+  | |\n+  | o  3:261e70097290 B2\n+  | |\n+  x |  1:a8b11f55fb19 B0 (rewritten using amend as 3:261e70097290)\n   |/\n   o  0:4a2df7238c3b A\n   \n \n   $ hg rebase -d \'desc(B2)\'\n-  note: not rebasing 1:a8b11f55fb19 "B0", already in destination as 2:261e70097290 "B2"\n-  rebasing 5:1a79b7535141 tip "D"\n+  note: not rebasing 1:a8b11f55fb19 "B0", already in destination as 3:261e70097290 "B2"\n+  rebasing 6:1a79b7535141 tip "D"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up 4\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo "O" > O\n   $ hg add O\n   $ hg commit -m O\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo "P" > P\n   $ hg add P\n   $ hg commit -m P\n-  $ hg log -G\n-  @  8:8d47583e023f P\n-  |\n-  o  7:360bbaa7d3ce O\n-  |\n-  | o  6:9c48361117de D\n-  | |\n-  o |  4:ff2c4d47b71d C\n-  |/\n-  o  2:261e70097290 B2\n-  |\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+  $ hg log -G\n+  *  6:1a79b7535141 D\n+  |\n+  | o  5:ff2c4d47b71d C\n+  | |\n+  | @  3:261e70097290 B2\n+  | |\n+  x |  1:a8b11f55fb19 B0 (rewritten using amend as 3:261e70097290)\n+  |/\n   o  0:4a2df7238c3b A\n   \n   $ hg debugobsolete `hg log -r 7 -T \'{node}\\n\'` --config experimental.evolution=true\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n-  1 new orphan changesets\n+  abort: unknown revision \'7\'\n+  a8b11f55fb1986f5eddc40b863a7d1c761094598 86f6414ccda75c7c489b143f9a8eabb84bdc416b 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'1\', \'operation\': \'amend\', \'user\': \'test\'}\n+  86f6414ccda75c7c489b143f9a8eabb84bdc416b 261e7009729083047524047a8be312ab41bc2d9c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'1\', \'operation\': \'amend\', \'user\': \'test\'}\n+  212cb178bcbb8916f22a2bf937232f368b64ace7 ff2c4d47b71d942eb1f1914b2cb5fe3a328f1ba9 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'4\', \'operation\': \'rebase\', \'user\': \'test\'}\n   $ hg rebase -d 6 -r "4::"\n-  rebasing 4:ff2c4d47b71d "C"\n-  note: not rebasing 7:360bbaa7d3ce "O", it has no successor\n-  rebasing 8:8d47583e023f tip "P"\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n If all the changeset to be rebased are obsolete and present in the destination, we\n should display a friendly error message\n \n   $ hg log -G\n-  @  10:121d9e3bc4c6 P\n-  |\n-  o  9:4be60e099a77 C\n-  |\n-  o  6:9c48361117de D\n-  |\n-  o  2:261e70097290 B2\n-  |\n+  *  6:1a79b7535141 D\n+  |\n+  | o  5:ff2c4d47b71d C\n+  | |\n+  | @  3:261e70097290 B2\n+  | |\n+  x |  1:a8b11f55fb19 B0 (rewritten using amend as 3:261e70097290)\n+  |/\n   o  0:4a2df7238c3b A\n   \n \n   $ hg up 9\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo "non-relevant change" > nonrelevant\n   $ hg add nonrelevant\n   $ hg commit -m nonrelevant\n-  created new head\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg debugobsolete `hg log -r 11 -T \'{node}\\n\'` --config experimental.evolution=true\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n-  $ hg log -G\n-  @  11:f44da1f4954c nonrelevant (pruned)\n-  |\n-  | o  10:121d9e3bc4c6 P\n-  |/\n-  o  9:4be60e099a77 C\n-  |\n-  o  6:9c48361117de D\n-  |\n-  o  2:261e70097290 B2\n-  |\n+  abort: unknown revision \'11\'\n+  a8b11f55fb1986f5eddc40b863a7d1c761094598 86f6414ccda75c7c489b143f9a8eabb84bdc416b 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'1\', \'operation\': \'amend\', \'user\': \'test\'}\n+  86f6414ccda75c7c489b143f9a8eabb84bdc416b 261e7009729083047524047a8be312ab41bc2d9c 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'1\', \'operation\': \'amend\', \'user\': \'test\'}\n+  212cb178bcbb8916f22a2bf937232f368b64ace7 ff2c4d47b71d942eb1f1914b2cb5fe3a328f1ba9 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'4\', \'operation\': \'rebase\', \'user\': \'test\'}\n+  $ hg log -G\n+  *  6:1a79b7535141 D\n+  |\n+  | o  5:ff2c4d47b71d C\n+  | |\n+  | @  3:261e70097290 B2\n+  | |\n+  x |  1:a8b11f55fb19 B0 (rewritten using amend as 3:261e70097290)\n+  |/\n   o  0:4a2df7238c3b A\n   \n   $ hg rebase -r . -d 10\n-  note: not rebasing 11:f44da1f4954c tip "nonrelevant", it has no successor\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n If a rebase is going to create divergence, it should abort\n \n   $ hg log -G\n-  @  10:121d9e3bc4c6 P\n-  |\n-  o  9:4be60e099a77 C\n-  |\n-  o  6:9c48361117de D\n-  |\n-  o  2:261e70097290 B2\n-  |\n+  *  6:1a79b7535141 D\n+  |\n+  | o  5:ff2c4d47b71d C\n+  | |\n+  | @  3:261e70097290 B2\n+  | |\n+  x |  1:a8b11f55fb19 B0 (rewritten using amend as 3:261e70097290)\n+  |/\n   o  0:4a2df7238c3b A\n   \n \n   $ hg up 9\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo "john" > doe\n   $ hg add doe\n   $ hg commit -m "john doe"\n-  created new head\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg up 10\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo "foo" > bar\n   $ hg add bar\n   $ hg commit --amend -m "10\'"\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg up 10 --hidden\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  updated to hidden changeset 121d9e3bc4c6\n-  (hidden revision \'121d9e3bc4c6\' was rewritten as: 77d874d096a2)\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo "bar" > foo\n   $ hg add foo\n   $ hg commit -m "bar foo"\n-  1 new orphan changesets\n-  $ hg log -G\n-  @  14:73568ab6879d bar foo\n-  |\n-  | o  13:77d874d096a2 10\'\n-  | |\n-  | | o  12:3eb461388009 john doe\n-  | |/\n-  x |  10:121d9e3bc4c6 P (rewritten using amend as 13:77d874d096a2)\n-  |/\n-  o  9:4be60e099a77 C\n-  |\n-  o  6:9c48361117de D\n-  |\n-  o  2:261e70097290 B2\n-  |\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+  $ hg log -G\n+  *  6:1a79b7535141 D\n+  |\n+  | o  5:ff2c4d47b71d C\n+  | |\n+  | @  3:261e70097290 B2\n+  | |\n+  x |  1:a8b11f55fb19 B0 (rewritten using amend as 3:261e70097290)\n+  |/\n   o  0:4a2df7238c3b A\n   \n   $ hg summary\n-  parent: 14:73568ab6879d tip (orphan)\n-   bar foo\n+  parent: 3:261e70097290 \n+   B2\n   branch: default\n-  commit: (clean)\n-  update: 2 new changesets, 3 branch heads (merge)\n-  phases: 8 draft\n+  commit: 7 added (new branch head)\n+  update: 3 new changesets (update)\n+  phases: 5 draft\n   orphan: 1 changesets\n+  rebase: 1 rebased, 1 remaining (rebase --continue)\n   $ hg rebase -s 10 -d 12\n-  abort: this rebase will cause divergences from: 121d9e3bc4c6\n-  (to force the rebase please set experimental.evolution.allowdivergence=True)\n-  [255]\n-  $ hg log -G\n-  @  14:73568ab6879d bar foo\n-  |\n-  | o  13:77d874d096a2 10\'\n-  | |\n-  | | o  12:3eb461388009 john doe\n-  | |/\n-  x |  10:121d9e3bc4c6 P (rewritten using amend as 13:77d874d096a2)\n-  |/\n-  o  9:4be60e099a77 C\n-  |\n-  o  6:9c48361117de D\n-  |\n-  o  2:261e70097290 B2\n-  |\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+  $ hg log -G\n+  *  6:1a79b7535141 D\n+  |\n+  | o  5:ff2c4d47b71d C\n+  | |\n+  | @  3:261e70097290 B2\n+  | |\n+  x |  1:a8b11f55fb19 B0 (rewritten using amend as 3:261e70097290)\n+  |/\n   o  0:4a2df7238c3b A\n   \n With experimental.evolution.allowdivergence=True, rebase can create divergence\n \n   $ hg rebase -s 10 -d 12 --config experimental.evolution.allowdivergence=True\n-  rebasing 10:121d9e3bc4c6 "P"\n-  rebasing 14:73568ab6879d tip "bar foo"\n-  2 new content-divergent changesets\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg summary\n-  parent: 16:61bd55f69bc4 tip\n-   bar foo\n+  parent: 3:261e70097290 \n+   B2\n   branch: default\n-  commit: (clean)\n-  update: 1 new changesets, 2 branch heads (merge)\n-  phases: 8 draft\n-  content-divergent: 2 changesets\n+  commit: 7 added (new branch head)\n+  update: 3 new changesets (update)\n+  phases: 5 draft\n+  orphan: 1 changesets\n+  rebase: 1 rebased, 1 remaining (rebase --continue)\n \n rebase --continue + skipped rev because their successors are in destination\n we make a change in trunk and work on conflicting changes to make rebase abort.\n \n   $ hg log -G -r 16::\n-  @  16:61bd55f69bc4 bar foo\n-  |\n-  ~\n+  abort: unknown revision \'16\'\n+  [255]\n \n Create the two changes in trunk\n   $ printf "a" > willconflict\n   $ hg add willconflict\n   $ hg commit -m "willconflict first version"\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n   $ printf "dummy" > C\n   $ hg commit -m "dummy change successor"\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n Create the changes that we will rebase\n   $ hg update -C 16 -q\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ printf "b" > willconflict\n   $ hg add willconflict\n+  willconflict already tracked!\n   $ hg commit -m "willconflict second version"\n-  created new head\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ printf "dummy" > K\n   $ hg add K\n   $ hg commit -m "dummy change"\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ printf "dummy" > L\n   $ hg add L\n   $ hg commit -m "dummy change"\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg debugobsolete `hg log -r ".^" -T \'{node}\'` `hg log -r 18 -T \'{node}\'` --config experimental.evolution=true\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n-  1 new orphan changesets\n+  abort: unknown revision \'18\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg log -G -r 16::\n-  @  21:7bdc8a87673d dummy change\n-  |\n-  x  20:8b31da3c4919 dummy change (rewritten as 18:601db7a18f51)\n-  |\n-  o  19:b82fb57ea638 willconflict second version\n-  |\n-  | o  18:601db7a18f51 dummy change successor\n-  | |\n-  | o  17:357ddf1602d5 willconflict first version\n-  |/\n-  o  16:61bd55f69bc4 bar foo\n-  |\n-  ~\n+  abort: unknown revision \'16\'\n+  [255]\n   $ hg rebase -r ".^^ + .^ + ." -d 18\n-  rebasing 19:b82fb57ea638 "willconflict second version"\n-  merging willconflict\n-  warning: conflicts while merging willconflict! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg rebase --continue\')\n-  [240]\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n   $ hg resolve --mark willconflict\n-  (no more unresolved files)\n-  continue: hg rebase --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg rebase --continue\n-  rebasing 19:b82fb57ea638 "willconflict second version"\n-  note: not rebasing 20:8b31da3c4919 "dummy change", already in destination as 18:601db7a18f51 "dummy change successor"\n-  rebasing 21:7bdc8a87673d tip "dummy change"\n+  note: not rebasing 1:a8b11f55fb19 "B0", already in destination as 3:261e70097290 "B2"\n+  rebasing 6:1a79b7535141 tip "D"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cd ..\n \n Divergence cases due to obsolete changesets\n@@ -1127,20 +1203,82 @@\n   o  0:b173517d0057 a\n   \n   $ hg strip -r 8:\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 719, in __call__\n+      return util.checksignature(self.fn)(ui, *args, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log -G -r \'a\'::\n-  *  7:1143e9adc121 f\n-  |\n-  | o  6:d60ebfa0f1cb e\n-  | |\n-  | o  5:027ad6c5830d d\'\n-  | |\n-  x |  4:76be324c128b d (rewritten using replace as 5:027ad6c5830d)\n-  |/\n-  o  3:a82ac2b38757 c\n-  |\n-  | o  2:630d7c95eff7 x\n-  | |\n-  o |  1:488e1b7e7341 b\n+  o  11:eb6d63fc4ed5 e\n+  |\n+  o  10:44d8c724a70c d\'\n+  |\n+  o  9:d008e6b4d3fd c\n+  |\n+  o  8:67e8f4a16c49 b\n+  |\n+  | *  7:1143e9adc121 f\n+  | |\n+  | | x  6:d60ebfa0f1cb e (rewritten using rebase as 11:eb6d63fc4ed5)\n+  | | |\n+  | | x  5:027ad6c5830d d\' (rewritten using rebase as 10:44d8c724a70c)\n+  | | |\n+  | x |  4:76be324c128b d (rewritten using replace as 5:027ad6c5830d)\n+  | |/\n+  | x  3:a82ac2b38757 c (rewritten using rebase as 9:d008e6b4d3fd)\n+  | |\n+  o |  2:630d7c95eff7 x\n+  | |\n+  | x  1:488e1b7e7341 b (rewritten using rebase as 8:67e8f4a16c49)\n   |/\n   o  0:b173517d0057 a\n   \n@@ -1150,50 +1288,55 @@\n By allowing divergence, we can perform the rebase.\n \n   $ hg rebase -r \'c\'::\'f\' -d \'x\'\n-  abort: this rebase will cause divergences from: 76be324c128b\n+  abort: this rebase will cause divergences from: a82ac2b38757,76be324c128b\n   (to force the rebase please set experimental.evolution.allowdivergence=True)\n   [255]\n   $ hg rebase --config experimental.evolution.allowdivergence=true -r \'c\'::\'f\' -d \'x\'\n   rebasing 3:a82ac2b38757 c "c"\n-  rebasing 4:76be324c128b d "d"\n-  rebasing 7:1143e9adc121 f tip "f"\n-  1 new orphan changesets\n-  2 new content-divergent changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -G -r \'a\':: -T instabilities\n-  o  10:e1744ea07510 f\n-  |\n-  *  9:e2b36ea9a0a0 d (content-divergent)\n-  |\n-  o  8:6a0376de376e c\n-  |\n-  | x  7:1143e9adc121 f\n-  | |\n-  | | *  6:d60ebfa0f1cb e (orphan)\n-  | | |\n-  | | *  5:027ad6c5830d d\' (orphan content-divergent)\n+  o  11:eb6d63fc4ed5 e\n+  |\n+  o  10:44d8c724a70c d\'\n+  |\n+  o  9:d008e6b4d3fd c\n+  |\n+  o  8:67e8f4a16c49 b\n+  |\n+  | *  7:1143e9adc121 f (orphan)\n+  | |\n+  | | x  6:d60ebfa0f1cb e\n+  | | |\n+  | | x  5:027ad6c5830d d\'\n   | | |\n   | x |  4:76be324c128b d\n   | |/\n   | x  3:a82ac2b38757 c\n   | |\n-  o |  2:630d7c95eff7 x\n-  | |\n-  | o  1:488e1b7e7341 b\n+  @ |  2:630d7c95eff7 x\n+  | |\n+  | x  1:488e1b7e7341 b\n   |/\n   o  0:b173517d0057 a\n   \n   $ hg strip -r 8:\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n (Not skipping obsoletes means that divergence is allowed.)\n \n   $ hg rebase --config experimental.rebaseskipobsolete=false -r \'c\'::\'f\' -d \'x\'\n-  rebasing 3:a82ac2b38757 c "c"\n-  rebasing 4:76be324c128b d "d"\n-  rebasing 7:1143e9adc121 f tip "f"\n-  1 new orphan changesets\n-  2 new content-divergent changesets\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n   $ hg strip -r 0:\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n Similar test on a more complex graph\n \n@@ -1210,65 +1353,69 @@\n   >    \\|\n   >     a\n   > EOF\n-  1 new orphan changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -G -r \'a\':\n-  *  8:2876ce66c6eb g\n-  |\n-  | o  7:3ffec603ab53 f\n-  | |\n-  x |  6:e36fae928aec e (rewritten using replace as 5:63324dc512ea)\n-  | |\n-  | o  5:63324dc512ea e\'\n-  | |\n-  o |  4:76be324c128b d\n-  |/\n-  o  3:a82ac2b38757 c\n-  |\n-  | o  2:630d7c95eff7 x\n-  | |\n-  o |  1:488e1b7e7341 b\n+  o  11:eb6d63fc4ed5 e\n+  |\n+  o  10:44d8c724a70c d\'\n+  |\n+  o  9:d008e6b4d3fd c\n+  |\n+  o  8:67e8f4a16c49 b\n+  |\n+  | *  7:1143e9adc121 f\n+  | |\n+  | | x  6:d60ebfa0f1cb e (rewritten using rebase as 11:eb6d63fc4ed5)\n+  | | |\n+  | | x  5:027ad6c5830d d\' (rewritten using rebase as 10:44d8c724a70c)\n+  | | |\n+  | x |  4:76be324c128b d (rewritten using replace as 5:027ad6c5830d)\n+  | |/\n+  | x  3:a82ac2b38757 c (rewritten using rebase as 9:d008e6b4d3fd)\n+  | |\n+  @ |  2:630d7c95eff7 x\n+  | |\n+  | x  1:488e1b7e7341 b (rewritten using rebase as 8:67e8f4a16c49)\n   |/\n   o  0:b173517d0057 a\n   \n   $ hg rebase -b \'f\' -d \'x\'\n-  rebasing 1:488e1b7e7341 b "b"\n-  rebasing 3:a82ac2b38757 c "c"\n-  rebasing 5:63324dc512ea e\' "e\'"\n-  rebasing 7:3ffec603ab53 f "f"\n-  rebasing 4:76be324c128b d "d"\n-  note: not rebasing 6:e36fae928aec e "e" and its descendants as this would cause divergence\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg log -G -r \'a\':\n-  o  13:a1707a5b7c2c d\n-  |\n-  | o  12:ef6251596616 f\n-  | |\n-  | o  11:b6f172e64af9 e\'\n-  |/\n-  o  10:d008e6b4d3fd c\n-  |\n-  o  9:67e8f4a16c49 b\n-  |\n-  | *  8:2876ce66c6eb g\n-  | |\n-  | | x  7:3ffec603ab53 f (rewritten using rebase as 12:ef6251596616)\n-  | | |\n-  | x |  6:e36fae928aec e (rewritten using replace as 5:63324dc512ea)\n-  | | |\n-  | | x  5:63324dc512ea e\' (rewritten using rebase as 11:b6f172e64af9)\n-  | | |\n-  | x |  4:76be324c128b d (rewritten using rebase as 13:a1707a5b7c2c)\n+  o  11:eb6d63fc4ed5 e\n+  |\n+  o  10:44d8c724a70c d\'\n+  |\n+  o  9:d008e6b4d3fd c\n+  |\n+  o  8:67e8f4a16c49 b\n+  |\n+  | *  7:1143e9adc121 f\n+  | |\n+  | | x  6:d60ebfa0f1cb e (rewritten using rebase as 11:eb6d63fc4ed5)\n+  | | |\n+  | | x  5:027ad6c5830d d\' (rewritten using rebase as 10:44d8c724a70c)\n+  | | |\n+  | x |  4:76be324c128b d (rewritten using replace as 5:027ad6c5830d)\n   | |/\n-  | x  3:a82ac2b38757 c (rewritten using rebase as 10:d008e6b4d3fd)\n-  | |\n-  o |  2:630d7c95eff7 x\n-  | |\n-  | x  1:488e1b7e7341 b (rewritten using rebase as 9:67e8f4a16c49)\n+  | x  3:a82ac2b38757 c (rewritten using rebase as 9:d008e6b4d3fd)\n+  | |\n+  @ |  2:630d7c95eff7 x\n+  | |\n+  | x  1:488e1b7e7341 b (rewritten using rebase as 8:67e8f4a16c49)\n   |/\n   o  0:b173517d0057 a\n   \n \n issue5782\n   $ hg strip -r 0:\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg debugdrawdag <<EOF\n   >       d\n   >       |\n@@ -1278,33 +1425,66 @@\n   >     |\n   >     a\n   > EOF\n-  1 new orphan changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg debugobsolete `hg log -T "{node}" --hidden -r \'desc("c1")\'`\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n+  76be324c128b88631d4bff1b65a6cfe23096d1f6 027ad6c5830ddd053dbb1b093a6ab61b4e45b247 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'9\', \'operation\': \'replace\', \'user\': \'test\'}\n+  488e1b7e73412c8f887fb3ed9b9666d5958ee997 67e8f4a16c4955d9eec0e09830e3477c723b3c80 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'4\', \'operation\': \'rebase\', \'user\': \'test\'}\n+  a82ac2b3875752239b995aabd5b4e9712db0bc9e d008e6b4d3fddfbcbc6980d66fdb0ca36d9caa23 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'4\', \'operation\': \'rebase\', \'user\': \'test\'}\n+  027ad6c5830ddd053dbb1b093a6ab61b4e45b247 44d8c724a70c4b80e701ca2f98a11a0d435d2d12 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'4\', \'operation\': \'rebase\', \'user\': \'test\'}\n+  d60ebfa0f1cb9782e8f3d4d94c0f176a5ecce625 eb6d63fc4ed5d896bbe8250ac610432c81081998 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'4\', \'operation\': \'rebase\', \'user\': \'test\'}\n   $ hg log -G -r \'a\': --hidden\n-  *  4:76be324c128b d\n-  |\n-  | x  3:ef8a456de8fa c1 (pruned)\n-  | |\n-  x |  2:a82ac2b38757 c (rewritten using replace as 3:ef8a456de8fa)\n-  |/\n-  o  1:488e1b7e7341 b\n-  |\n+  o  11:eb6d63fc4ed5 e\n+  |\n+  o  10:44d8c724a70c d\'\n+  |\n+  o  9:d008e6b4d3fd c\n+  |\n+  o  8:67e8f4a16c49 b\n+  |\n+  | *  7:1143e9adc121 f\n+  | |\n+  | | x  6:d60ebfa0f1cb e (rewritten using rebase as 11:eb6d63fc4ed5)\n+  | | |\n+  | | x  5:027ad6c5830d d\' (rewritten using rebase as 10:44d8c724a70c)\n+  | | |\n+  | x |  4:76be324c128b d (rewritten using replace as 5:027ad6c5830d)\n+  | |/\n+  | x  3:a82ac2b38757 c (rewritten using rebase as 9:d008e6b4d3fd)\n+  | |\n+  @ |  2:630d7c95eff7 x\n+  | |\n+  | x  1:488e1b7e7341 b (rewritten using rebase as 8:67e8f4a16c49)\n+  |/\n   o  0:b173517d0057 a\n   \n   $ hg rebase -d 0 -r 2\n-  rebasing 2:a82ac2b38757 c "c"\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg log -G -r \'a\': --hidden\n-  o  5:69ad416a4a26 c\n-  |\n-  | *  4:76be324c128b d\n-  | |\n-  | | x  3:ef8a456de8fa c1 (pruned)\n-  | | |\n-  | x |  2:a82ac2b38757 c (rewritten using replace as 3:ef8a456de8fa rewritten using rebase as 5:69ad416a4a26)\n+  o  11:eb6d63fc4ed5 e\n+  |\n+  o  10:44d8c724a70c d\'\n+  |\n+  o  9:d008e6b4d3fd c\n+  |\n+  o  8:67e8f4a16c49 b\n+  |\n+  | *  7:1143e9adc121 f\n+  | |\n+  | | x  6:d60ebfa0f1cb e (rewritten using rebase as 11:eb6d63fc4ed5)\n+  | | |\n+  | | x  5:027ad6c5830d d\' (rewritten using rebase as 10:44d8c724a70c)\n+  | | |\n+  | x |  4:76be324c128b d (rewritten using replace as 5:027ad6c5830d)\n   | |/\n-  | o  1:488e1b7e7341 b\n+  | x  3:a82ac2b38757 c (rewritten using rebase as 9:d008e6b4d3fd)\n+  | |\n+  @ |  2:630d7c95eff7 x\n+  | |\n+  | x  1:488e1b7e7341 b (rewritten using rebase as 8:67e8f4a16c49)\n   |/\n   o  0:b173517d0057 a\n   \n@@ -1561,7 +1741,59 @@\n \n This strip seems to be the key to avoid an early divergence warning.\n   $ hg --config extensions.strip= --hidden strip -qr H\n-  1 new orphan changesets\n+  strip failed, backup bundle stored in \'$TESTTMP\\p2-succ-in-dest-c\\.hg\\strip-backup/264a03ff376a-fb7b0c3b-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\p2-succ-in-dest-c\\.hg\\strip-backup/264a03ff376a-ca5da0f1-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\p2-succ-in-dest-c\\.hg\\strip-backup/264a03ff376a-ca5da0f1-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg rebase -b \'desc("D")\' -d \'desc("J")\'\n   abort: this rebase will cause divergences from: 112478962961\n@@ -1911,7 +2143,63 @@\n   > EOF\n \n   $ hg strip 6 --no-backup -q\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log -G --template "{rev}:{short(node)} {person(author)}\\n{firstline(desc)} {topic}\\n\\n"\n+  o  7:7fffad344617 test\n+  |  c\n+  |\n+  o  6:b15528633407 test\n+  |  b\n+  |\n   o  5:00bfc9898aeb test\n   |  conflict with d\n   |\n@@ -1921,42 +2209,35 @@\n   | @  3:055a42cdd887 test\n   | |  d\n   | |\n-  | o  2:177f92b77385 test\n+  | x  2:177f92b77385 test\n   | |  c\n   | |\n-  | o  1:d2ae7f538514 test\n+  | x  1:d2ae7f538514 test\n   |/   b\n   |\n   o  0:cb9a9f314b8b test\n      a\n   \n   $ hg rebase -s 1 -d 5\n-  rebasing 1:d2ae7f538514 "b"\n-  rebasing 2:177f92b77385 "c"\n-  rebasing 3:055a42cdd887 "d"\n-  merging d\n-  warning: conflicts while merging d! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg rebase --continue\')\n-  [240]\n+  abort: this rebase will cause divergences from: d2ae7f538514,177f92b77385\n+  (to force the rebase please set experimental.evolution.allowdivergence=True)\n+  [255]\n   $ hg rebase --stop\n-  abort: cannot remove original changesets with unrebased descendants\n-  (either enable obsmarkers to allow unstable revisions or use --keep to keep original changesets)\n-  [255]\n+  abort: no rebase in progress\n+  [20]\n   $ hg rebase --abort\n-  saved backup bundle to $TESTTMP/rbstop/.hg/strip-backup/b15528633407-6eb72b6f-backup.hg\n-  rebase aborted\n+  abort: no rebase in progress\n+  [20]\n \n Test --stop when --keep is passed:\n ==================================\n   $ hg rebase -s 1 -d 5 --keep\n-  rebasing 1:d2ae7f538514 "b"\n-  rebasing 2:177f92b77385 "c"\n-  rebasing 3:055a42cdd887 "d"\n-  merging d\n-  warning: conflicts while merging d! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg rebase --continue\')\n-  [240]\n+  abort: this rebase will cause divergences from: d2ae7f538514,177f92b77385\n+  (to force the rebase please set experimental.evolution.allowdivergence=True)\n+  [255]\n   $ hg rebase --stop\n+  abort: no rebase in progress\n+  [20]\n   $ hg log -G --template "{rev}:{short(node)} {person(author)}\\n{firstline(desc)} {topic}\\n\\n"\n   o  7:7fffad344617 test\n   |  c\n@@ -1973,10 +2254,10 @@\n   | @  3:055a42cdd887 test\n   | |  d\n   | |\n-  | o  2:177f92b77385 test\n+  | x  2:177f92b77385 test\n   | |  c\n   | |\n-  | o  1:d2ae7f538514 test\n+  | x  1:d2ae7f538514 test\n   |/   b\n   |\n   o  0:cb9a9f314b8b test\n@@ -1991,7 +2272,17 @@\n \n   $ hg strip 6\n   saved backup bundle to $TESTTMP/rbstop/.hg/strip-backup/b15528633407-6eb72b6f-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\rbstop\\.hg\\strip-backup/b15528633407-6eb72b6f-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -G --template "{rev}:{short(node)} {person(author)}\\n{firstline(desc)} {topic}\\n\\n"\n+  o  7:7fffad344617 test\n+  |  c\n+  |\n+  o  6:b15528633407 test\n+  |  b\n+  |\n   o  5:00bfc9898aeb test\n   |  conflict with d\n   |\n@@ -2001,30 +2292,33 @@\n   | @  3:055a42cdd887 test\n   | |  d\n   | |\n-  | o  2:177f92b77385 test\n+  | x  2:177f92b77385 test\n   | |  c\n   | |\n-  | o  1:d2ae7f538514 test\n+  | x  1:d2ae7f538514 test\n   |/   b\n   |\n   o  0:cb9a9f314b8b test\n      a\n   \n   $ hg rebase -s 1 -d 5 --collapse -m "collapsed b c d"\n-  rebasing 1:d2ae7f538514 "b"\n-  rebasing 2:177f92b77385 "c"\n-  rebasing 3:055a42cdd887 "d"\n-  merging d\n-  warning: conflicts while merging d! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg rebase --continue\')\n-  [240]\n+  abort: this rebase will cause divergences from: d2ae7f538514,177f92b77385\n+  (to force the rebase please set experimental.evolution.allowdivergence=True)\n+  [255]\n   $ hg rebase --stop\n-  abort: cannot stop in --collapse session\n-  [255]\n+  abort: no rebase in progress\n+  [20]\n   $ hg rebase --abort\n-  rebase aborted\n+  abort: no rebase in progress\n+  [20]\n   $ hg diff\n   $ hg log -G --template "{rev}:{short(node)} {person(author)}\\n{firstline(desc)} {topic}\\n\\n"\n+  o  7:7fffad344617 test\n+  |  c\n+  |\n+  o  6:b15528633407 test\n+  |  b\n+  |\n   o  5:00bfc9898aeb test\n   |  conflict with d\n   |\n@@ -2034,10 +2328,10 @@\n   | @  3:055a42cdd887 test\n   | |  d\n   | |\n-  | o  2:177f92b77385 test\n+  | x  2:177f92b77385 test\n   | |  c\n   | |\n-  | o  1:d2ae7f538514 test\n+  | x  1:d2ae7f538514 test\n   |/   b\n   |\n   o  0:cb9a9f314b8b test\n', 2927, 2929, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-parameters.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-parameters.t\n+++ c:/hgdev/src/tests/test-rebase-parameters.t.err\n@@ -148,27 +148,99 @@\n   rebasing 2:5fddd98957c8 "C"\n   rebasing 3:32af7686d403 "D"\n   saved backup bundle to $TESTTMP/a1/.hg/strip-backup/42ccdea3bb16-3cb021d3-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a1\\.hg\\strip-backup/42ccdea3bb16-3cb021d3-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a1\\.hg\\strip-backup/42ccdea3bb16-85dfb731-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a1\\.hg\\strip-backup/42ccdea3bb16-85dfb731-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  @  6: ed65089c18f8 \'D\'\n-  |\n-  o  5: 7621bf1a2f17 \'C\'\n-  |\n-  o  4: 9430a62369c6 \'B\'\n-  |\n-  o  3: e7ec4e813ba6 \'I\'\n-  |\n-  o  2: 02de42196ebe \'H\'\n-  |\n-  o  1: 24b6387c8c8c \'F\'\n-  |\n+  @  9: ed65089c18f8 \'D\'\n+  |\n+  o  8: 7621bf1a2f17 \'C\'\n+  |\n+  o  7: 9430a62369c6 \'B\'\n+  |\n+  o  6: e7ec4e813ba6 \'I\'\n+  |\n+  o  5: 02de42196ebe \'H\'\n+  |\n+  o  4: 24b6387c8c8c \'F\'\n+  |\n+  | o  3: 32af7686d403 \'D\'\n+  | |\n+  | o  2: 5fddd98957c8 \'C\'\n+  | |\n+  | o  1: 42ccdea3bb16 \'B\'\n+  |/\n   o  0: cd010b8cd998 \'A\'\n   \n Try to rollback after a rebase (fail):\n \n   $ hg rollback\n-  no rollback information available\n-  [1]\n+  repository tip rolled back to revision 9 (undo cleanup)\n \n   $ cd ..\n \n@@ -182,20 +254,93 @@\n   rebasing 2:5fddd98957c8 "C"\n   rebasing 3:32af7686d403 "D"\n   saved backup bundle to $TESTTMP/a2/.hg/strip-backup/42ccdea3bb16-3cb021d3-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a2\\.hg\\strip-backup/42ccdea3bb16-3cb021d3-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a2\\.hg\\strip-backup/42ccdea3bb16-85dfb731-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a2\\.hg\\strip-backup/42ccdea3bb16-85dfb731-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  @  6: ed65089c18f8 \'D\'\n-  |\n-  o  5: 7621bf1a2f17 \'C\'\n-  |\n-  o  4: 9430a62369c6 \'B\'\n-  |\n-  o  3: e7ec4e813ba6 \'I\'\n-  |\n-  o  2: 02de42196ebe \'H\'\n-  |\n-  o  1: 24b6387c8c8c \'F\'\n-  |\n+  @  9: ed65089c18f8 \'D\'\n+  |\n+  o  8: 7621bf1a2f17 \'C\'\n+  |\n+  o  7: 9430a62369c6 \'B\'\n+  |\n+  o  6: e7ec4e813ba6 \'I\'\n+  |\n+  o  5: 02de42196ebe \'H\'\n+  |\n+  o  4: 24b6387c8c8c \'F\'\n+  |\n+  | o  3: 32af7686d403 \'D\'\n+  | |\n+  | o  2: 5fddd98957c8 \'C\'\n+  | |\n+  | o  1: 42ccdea3bb16 \'B\'\n+  |/\n   o  0: cd010b8cd998 \'A\'\n   \n   $ cd ..\n@@ -211,23 +356,96 @@\n   rebasing 2:5fddd98957c8 "C"\n   rebasing 3:32af7686d403 "D"\n   saved backup bundle to $TESTTMP/a3/.hg/strip-backup/42ccdea3bb16-3cb021d3-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a3\\.hg\\strip-backup/42ccdea3bb16-3cb021d3-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a3\\.hg\\strip-backup/42ccdea3bb16-6a4c5071-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a3\\.hg\\strip-backup/42ccdea3bb16-6a4c5071-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  @  8: ed65089c18f8 \'D\'\n-  |\n-  o  7: 7621bf1a2f17 \'C\'\n-  |\n-  o  6: 9430a62369c6 \'B\'\n-  |\n-  o  5: e7ec4e813ba6 \'I\'\n-  |\n-  o  4: 02de42196ebe \'H\'\n-  |\n-  | o  3: eea13746799a \'G\'\n+  @  11: ed65089c18f8 \'D\'\n+  |\n+  o  10: 7621bf1a2f17 \'C\'\n+  |\n+  o  9: 9430a62369c6 \'B\'\n+  |\n+  o  8: e7ec4e813ba6 \'I\'\n+  |\n+  o  7: 02de42196ebe \'H\'\n+  |\n+  | o  6: eea13746799a \'G\'\n   |/|\n-  o |  2: 24b6387c8c8c \'F\'\n-  | |\n-  | o  1: 9520eea781bc \'E\'\n+  o |  5: 24b6387c8c8c \'F\'\n+  | |\n+  | o  4: 9520eea781bc \'E\'\n+  |/\n+  | o  3: 32af7686d403 \'D\'\n+  | |\n+  | o  2: 5fddd98957c8 \'C\'\n+  | |\n+  | o  1: 42ccdea3bb16 \'B\'\n   |/\n   o  0: cd010b8cd998 \'A\'\n   \n@@ -243,18 +461,89 @@\n   rebasing 2:5fddd98957c8 "C"\n   rebasing 3:32af7686d403 "D"\n   saved backup bundle to $TESTTMP/a4/.hg/strip-backup/5fddd98957c8-f9244fa1-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a4\\.hg\\strip-backup/5fddd98957c8-f9244fa1-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a4\\.hg\\strip-backup/5fddd98957c8-f14aa3ac-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a4\\.hg\\strip-backup/5fddd98957c8-f14aa3ac-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  o  6: 7726e9fd58f7 \'D\'\n-  |\n-  o  5: 72c8333623d0 \'C\'\n-  |\n-  @  4: e7ec4e813ba6 \'I\'\n-  |\n-  o  3: 02de42196ebe \'H\'\n-  |\n-  o  2: 24b6387c8c8c \'F\'\n-  |\n+  o  8: 7726e9fd58f7 \'D\'\n+  |\n+  o  7: 72c8333623d0 \'C\'\n+  |\n+  @  6: e7ec4e813ba6 \'I\'\n+  |\n+  o  5: 02de42196ebe \'H\'\n+  |\n+  o  4: 24b6387c8c8c \'F\'\n+  |\n+  | o  3: 32af7686d403 \'D\'\n+  | |\n+  | o  2: 5fddd98957c8 \'C\'\n+  | |\n   | o  1: 42ccdea3bb16 \'B\'\n   |/\n   o  0: cd010b8cd998 \'A\'\n@@ -272,23 +561,96 @@\n   rebasing 2:5fddd98957c8 "C"\n   rebasing 3:32af7686d403 "D"\n   saved backup bundle to $TESTTMP/a5/.hg/strip-backup/42ccdea3bb16-3cb021d3-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a5\\.hg\\strip-backup/42ccdea3bb16-3cb021d3-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a5\\.hg\\strip-backup/42ccdea3bb16-2c192d33-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a5\\.hg\\strip-backup/42ccdea3bb16-2c192d33-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  @  8: 8eeb3c33ad33 \'D\'\n-  |\n-  o  7: 2327fea05063 \'C\'\n-  |\n-  o  6: e4e5be0395b2 \'B\'\n-  |\n-  | o  5: e7ec4e813ba6 \'I\'\n-  | |\n-  | o  4: 02de42196ebe \'H\'\n-  | |\n-  o |  3: eea13746799a \'G\'\n+  @  11: 8eeb3c33ad33 \'D\'\n+  |\n+  o  10: 2327fea05063 \'C\'\n+  |\n+  o  9: e4e5be0395b2 \'B\'\n+  |\n+  | o  8: e7ec4e813ba6 \'I\'\n+  | |\n+  | o  7: 02de42196ebe \'H\'\n+  | |\n+  o |  6: eea13746799a \'G\'\n   |\\|\n-  | o  2: 24b6387c8c8c \'F\'\n-  | |\n-  o |  1: 9520eea781bc \'E\'\n+  | o  5: 24b6387c8c8c \'F\'\n+  | |\n+  o |  4: 9520eea781bc \'E\'\n+  |/\n+  | o  3: 32af7686d403 \'D\'\n+  | |\n+  | o  2: 5fddd98957c8 \'C\'\n+  | |\n+  | o  1: 42ccdea3bb16 \'B\'\n   |/\n   o  0: cd010b8cd998 \'A\'\n   \n@@ -305,20 +667,93 @@\n   rebasing 2:5fddd98957c8 "C"\n   rebasing 3:32af7686d403 "D"\n   saved backup bundle to $TESTTMP/a6/.hg/strip-backup/42ccdea3bb16-3cb021d3-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a6\\.hg\\strip-backup/42ccdea3bb16-3cb021d3-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a6\\.hg\\strip-backup/42ccdea3bb16-85dfb731-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a6\\.hg\\strip-backup/42ccdea3bb16-85dfb731-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  o  6: ed65089c18f8 \'D\'\n-  |\n-  o  5: 7621bf1a2f17 \'C\'\n-  |\n-  o  4: 9430a62369c6 \'B\'\n-  |\n-  @  3: e7ec4e813ba6 \'I\'\n-  |\n-  o  2: 02de42196ebe \'H\'\n-  |\n-  o  1: 24b6387c8c8c \'F\'\n-  |\n+  o  9: ed65089c18f8 \'D\'\n+  |\n+  o  8: 7621bf1a2f17 \'C\'\n+  |\n+  o  7: 9430a62369c6 \'B\'\n+  |\n+  @  6: e7ec4e813ba6 \'I\'\n+  |\n+  o  5: 02de42196ebe \'H\'\n+  |\n+  o  4: 24b6387c8c8c \'F\'\n+  |\n+  | o  3: 32af7686d403 \'D\'\n+  | |\n+  | o  2: 5fddd98957c8 \'C\'\n+  | |\n+  | o  1: 42ccdea3bb16 \'B\'\n+  |/\n   o  0: cd010b8cd998 \'A\'\n   \n   $ cd ..\n@@ -333,22 +768,93 @@\n   rebasing 2:5fddd98957c8 "C"\n   rebasing 3:32af7686d403 "D"\n   saved backup bundle to $TESTTMP/a7/.hg/strip-backup/5fddd98957c8-f9244fa1-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a7\\.hg\\strip-backup/5fddd98957c8-f9244fa1-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a7\\.hg\\strip-backup/5fddd98957c8-90ec8e0c-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a7\\.hg\\strip-backup/5fddd98957c8-90ec8e0c-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  o  8: 668acadedd30 \'D\'\n-  |\n-  o  7: 09eb682ba906 \'C\'\n-  |\n-  | @  6: e7ec4e813ba6 \'I\'\n-  |/\n-  o  5: 02de42196ebe \'H\'\n-  |\n-  | o  4: eea13746799a \'G\'\n+  o  10: 668acadedd30 \'D\'\n+  |\n+  o  9: 09eb682ba906 \'C\'\n+  |\n+  | @  8: e7ec4e813ba6 \'I\'\n+  |/\n+  o  7: 02de42196ebe \'H\'\n+  |\n+  | o  6: eea13746799a \'G\'\n   |/|\n-  o |  3: 24b6387c8c8c \'F\'\n-  | |\n-  | o  2: 9520eea781bc \'E\'\n-  |/\n+  o |  5: 24b6387c8c8c \'F\'\n+  | |\n+  | o  4: 9520eea781bc \'E\'\n+  |/\n+  | o  3: 32af7686d403 \'D\'\n+  | |\n+  | o  2: 5fddd98957c8 \'C\'\n+  | |\n   | o  1: 42ccdea3bb16 \'B\'\n   |/\n   o  0: cd010b8cd998 \'A\'\n@@ -366,23 +872,96 @@\n   rebasing 2:5fddd98957c8 "C"\n   rebasing 3:32af7686d403 "D"\n   saved backup bundle to $TESTTMP/a8/.hg/strip-backup/42ccdea3bb16-3cb021d3-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a8\\.hg\\strip-backup/42ccdea3bb16-3cb021d3-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a8\\.hg\\strip-backup/42ccdea3bb16-0d0dc9e6-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a8\\.hg\\strip-backup/42ccdea3bb16-0d0dc9e6-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  o  8: 287cc92ba5a4 \'D\'\n-  |\n-  o  7: 6824f610a250 \'C\'\n-  |\n-  o  6: 7c6027df6a99 \'B\'\n-  |\n-  | @  5: e7ec4e813ba6 \'I\'\n-  |/\n-  o  4: 02de42196ebe \'H\'\n-  |\n-  | o  3: eea13746799a \'G\'\n+  o  11: 287cc92ba5a4 \'D\'\n+  |\n+  o  10: 6824f610a250 \'C\'\n+  |\n+  o  9: 7c6027df6a99 \'B\'\n+  |\n+  | @  8: e7ec4e813ba6 \'I\'\n+  |/\n+  o  7: 02de42196ebe \'H\'\n+  |\n+  | o  6: eea13746799a \'G\'\n   |/|\n-  o |  2: 24b6387c8c8c \'F\'\n-  | |\n-  | o  1: 9520eea781bc \'E\'\n+  o |  5: 24b6387c8c8c \'F\'\n+  | |\n+  | o  4: 9520eea781bc \'E\'\n+  |/\n+  | o  3: 32af7686d403 \'D\'\n+  | |\n+  | o  2: 5fddd98957c8 \'C\'\n+  | |\n+  | o  1: 42ccdea3bb16 \'B\'\n   |/\n   o  0: cd010b8cd998 \'A\'\n   \n@@ -398,18 +977,89 @@\n   rebasing 2:5fddd98957c8 "C"\n   rebasing 3:32af7686d403 "D"\n   saved backup bundle to $TESTTMP/a9/.hg/strip-backup/5fddd98957c8-f9244fa1-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a9\\.hg\\strip-backup/5fddd98957c8-f9244fa1-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a9\\.hg\\strip-backup/5fddd98957c8-f14aa3ac-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a9\\.hg\\strip-backup/5fddd98957c8-f14aa3ac-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  o  6: 7726e9fd58f7 \'D\'\n-  |\n-  o  5: 72c8333623d0 \'C\'\n-  |\n-  @  4: e7ec4e813ba6 \'I\'\n-  |\n-  o  3: 02de42196ebe \'H\'\n-  |\n-  o  2: 24b6387c8c8c \'F\'\n-  |\n+  o  8: 7726e9fd58f7 \'D\'\n+  |\n+  o  7: 72c8333623d0 \'C\'\n+  |\n+  @  6: e7ec4e813ba6 \'I\'\n+  |\n+  o  5: 02de42196ebe \'H\'\n+  |\n+  o  4: 24b6387c8c8c \'F\'\n+  |\n+  | o  3: 32af7686d403 \'D\'\n+  | |\n+  | o  2: 5fddd98957c8 \'C\'\n+  | |\n   | o  1: 42ccdea3bb16 \'B\'\n   |/\n   o  0: cd010b8cd998 \'A\'\n@@ -424,6 +1074,73 @@\n   rebasing 3:32af7686d403 "D"\n   rebasing 6:eea13746799a "G"\n   saved backup bundle to $TESTTMP/aX/.hg/strip-backup/eea13746799a-ad273fd6-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\aX\\.hg\\strip-backup/eea13746799a-ad273fd6-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\aX\\.hg\\strip-backup/eea13746799a-446d0cdb-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\aX\\.hg\\strip-backup/eea13746799a-446d0cdb-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cd ..\n \n Test --tool parameter:\n@@ -454,6 +1171,71 @@\n   rebasing 2:e4e3f3546619 tip "c2b"\n   note: not rebasing 2:e4e3f3546619 tip "c2b", its destination already has all its changes\n   saved backup bundle to $TESTTMP/b1/.hg/strip-backup/e4e3f3546619-b0841178-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\b1\\.hg\\strip-backup/e4e3f3546619-b0841178-rebase.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg cat c2\n   c2\n@@ -467,6 +1249,73 @@\n   $ hg rebase -s 2 -d 1 --tool internal:other\n   rebasing 2:e4e3f3546619 tip "c2b"\n   saved backup bundle to $TESTTMP/b2/.hg/strip-backup/e4e3f3546619-b0841178-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\b2\\.hg\\strip-backup/e4e3f3546619-b0841178-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\b2\\.hg\\strip-backup/e4e3f3546619-48c37b2a-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\b2\\.hg\\strip-backup/e4e3f3546619-48c37b2a-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg cat c2\n   c2b\n@@ -505,6 +1354,71 @@\n   rebasing 2:e4e3f3546619 tip "c2b"\n   note: not rebasing 2:e4e3f3546619 tip "c2b", its destination already has all its changes\n   saved backup bundle to $TESTTMP/b3/.hg/strip-backup/e4e3f3546619-b0841178-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\b3\\.hg\\strip-backup/e4e3f3546619-b0841178-rebase.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg rebase -i\n   abort: interactive history editing is supported by the \'histedit\' extension (see "hg --config extensions.histedit= help -e histedit")\n', 2516, 2518, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-pull.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-pull.t\n+++ c:/hgdev/src/tests/test-rebase-pull.t.err\n@@ -57,12 +57,89 @@\n   new changesets 77ae9631bcca\n   rebasing 2:ff8d69a621f9 "L1"\n   saved backup bundle to $TESTTMP/b/.hg/strip-backup/ff8d69a621f9-160fa373-rebase.hg\n-\n-  $ hg tglog\n-  @  3: d80cc2da061e \'L1\'\n-  |\n-  o  2: 77ae9631bcca \'R1\'\n-  |\n+  strip failed, backup bundle stored in \'$TESTTMP\\b\\.hg\\strip-backup/ff8d69a621f9-160fa373-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\b\\.hg\\strip-backup/ff8d69a621f9-f3878d07-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\b\\.hg\\strip-backup/ff8d69a621f9-f3878d07-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2153, in pullrebase\n+      rebase(ui, repo, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+\n+  $ hg tglog\n+  @  4: d80cc2da061e \'L1\'\n+  |\n+  o  3: 77ae9631bcca \'R1\'\n+  |\n+  | o  2: ff8d69a621f9 \'L1\'\n+  |/\n   o  1: 783333faa078 \'C2\'\n   |\n   o  0: 05d58a0c15dd \'C1\'\n@@ -70,32 +147,38 @@\n Re-run:\n \n   $ hg pull --rebase\n-  pulling from $TESTTMP/a\n-  searching for changes\n-  no changes found\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n Abort pull early if working dir is not clean:\n \n   $ echo L1-mod > L1\n   $ hg pull --rebase\n-  abort: uncommitted changes\n-  (cannot pull with rebase: please commit or shelve your changes first)\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n   [20]\n   $ hg update --clean --quiet\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n Abort pull early if another operation (histedit) is in progress:\n \n   $ hg histedit . -q --commands - << EOF\n   > edit d80cc2da061e histedit: generate unfinished state\n   > EOF\n-  Editing (d80cc2da061e), you may commit or record as needed now.\n-  (hg histedit --continue to resume)\n-  [240]\n-  $ hg pull --rebase\n-  abort: histedit in progress\n-  (use \'hg histedit --continue\' or \'hg histedit --abort\')\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+  $ hg pull --rebase\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n   [20]\n   $ hg histedit --abort --quiet\n+  abort: no histedit in progress\n+  (continue: hg rebase --continue)\n+  [20]\n \n Abort pull early with pending uncommitted merge:\n \n@@ -215,15 +298,92 @@\n   new changesets 31cd3a05214e:770a61882ace\n   rebasing 3:ff8d69a621f9 "L1"\n   saved backup bundle to $TESTTMP/c/.hg/strip-backup/ff8d69a621f9-160fa373-rebase.hg\n-  $ hg tglog\n-  @  5: 518d153c0ba3 \'L1\'\n-  |\n-  o  4: 770a61882ace \'R3\'\n-  |\n-  o  3: 31cd3a05214e \'R2\'\n-  |\n-  o  2: 77ae9631bcca \'R1\'\n-  |\n+  strip failed, backup bundle stored in \'$TESTTMP\\c\\.hg\\strip-backup/ff8d69a621f9-160fa373-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\c\\.hg\\strip-backup/ff8d69a621f9-15cbb19e-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\c\\.hg\\strip-backup/ff8d69a621f9-15cbb19e-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2153, in pullrebase\n+      rebase(ui, repo, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg tglog\n+  @  6: 518d153c0ba3 \'L1\'\n+  |\n+  o  5: 770a61882ace \'R3\'\n+  |\n+  o  4: 31cd3a05214e \'R2\'\n+  |\n+  | o  3: ff8d69a621f9 \'L1\'\n+  | |\n+  o |  2: 77ae9631bcca \'R1\'\n+  |/\n   o  1: 783333faa078 \'C2\'\n   |\n   o  0: 05d58a0c15dd \'C1\'\n@@ -249,26 +409,20 @@\n   \n   $ cd ../c\n   $ hg pull --rebase\n-  pulling from $TESTTMP/a\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets 00e3b7781125\n-  rebasing 5:518d153c0ba3 "L1"\n-  saved backup bundle to $TESTTMP/c/.hg/strip-backup/518d153c0ba3-73407f14-rebase.hg\n-  $ hg tglog\n-  @  6: 0d0727eb7ce0 \'L1\'\n-  |\n-  o  5: 00e3b7781125 \'R4\'\n-  |\n-  o  4: 770a61882ace \'R3\'\n-  |\n-  o  3: 31cd3a05214e \'R2\'\n-  |\n-  o  2: 77ae9631bcca \'R1\'\n-  |\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+  $ hg tglog\n+  @  6: 518d153c0ba3 \'L1\'\n+  |\n+  o  5: 770a61882ace \'R3\'\n+  |\n+  o  4: 31cd3a05214e \'R2\'\n+  |\n+  | o  3: ff8d69a621f9 \'L1\'\n+  | |\n+  o |  2: 77ae9631bcca \'R1\'\n+  |/\n   o  1: 783333faa078 \'C2\'\n   |\n   o  0: 05d58a0c15dd \'C1\'\n@@ -298,35 +452,28 @@\n   $ cd ../c\n   $ echo L2 > L2\n   $ hg ci -Am L2\n-  adding L2\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg up \'desc(L1)\'\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg pull --rebase\n-  pulling from $TESTTMP/a\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets 88dd24261747\n-  rebasing 6:0d0727eb7ce0 "L1"\n-  rebasing 7:c1f58876e3bf "L2"\n-  saved backup bundle to $TESTTMP/c/.hg/strip-backup/0d0727eb7ce0-ef61ccb2-rebase.hg\n-  $ hg tglog\n-  o  8: 6dc0ea5dcf55 \'L2\'\n-  |\n-  @  7: 864e0a2d2614 \'L1\'\n-  |\n-  o  6: 88dd24261747 \'R5\'\n-  |\n-  o  5: 00e3b7781125 \'R4\'\n-  |\n-  o  4: 770a61882ace \'R3\'\n-  |\n-  o  3: 31cd3a05214e \'R2\'\n-  |\n-  o  2: 77ae9631bcca \'R1\'\n-  |\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+  $ hg pull --rebase\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+  $ hg tglog\n+  @  6: 518d153c0ba3 \'L1\'\n+  |\n+  o  5: 770a61882ace \'R3\'\n+  |\n+  o  4: 31cd3a05214e \'R2\'\n+  |\n+  | o  3: ff8d69a621f9 \'L1\'\n+  | |\n+  o |  2: 77ae9631bcca \'R1\'\n+  |/\n   o  1: 783333faa078 \'C2\'\n   |\n   o  0: 05d58a0c15dd \'C1\'\n@@ -342,36 +489,24 @@\n   adding R6\n   $ cd ../c\n   $ hg up \'desc(R5)\'\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg pull --rebase\n-  pulling from $TESTTMP/a\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets 65bc164c1d9b\n-  nothing to rebase - updating instead\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  updated to "65bc164c1d9b: R6"\n-  1 other heads for branch "default"\n-  $ hg tglog\n-  @  9: 65bc164c1d9b \'R6\'\n-  |\n-  | o  8: 6dc0ea5dcf55 \'L2\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+  $ hg pull --rebase\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+  $ hg tglog\n+  @  6: 518d153c0ba3 \'L1\'\n+  |\n+  o  5: 770a61882ace \'R3\'\n+  |\n+  o  4: 31cd3a05214e \'R2\'\n+  |\n+  | o  3: ff8d69a621f9 \'L1\'\n   | |\n-  | o  7: 864e0a2d2614 \'L1\'\n+  o |  2: 77ae9631bcca \'R1\'\n   |/\n-  o  6: 88dd24261747 \'R5\'\n-  |\n-  o  5: 00e3b7781125 \'R4\'\n-  |\n-  o  4: 770a61882ace \'R3\'\n-  |\n-  o  3: 31cd3a05214e \'R2\'\n-  |\n-  o  2: 77ae9631bcca \'R1\'\n-  |\n   o  1: 783333faa078 \'C2\'\n   |\n   o  0: 05d58a0c15dd \'C1\'\n@@ -392,25 +527,26 @@\n   adding B1\n   $ cd ../c\n   $ hg up \'desc(L2)\'\n-  2 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg pull --rebase\n-  pulling from $TESTTMP/a\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  new changesets 39c381359968\n-  nothing to rebase\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+  $ hg pull --rebase\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n There is two local heads and we pull a third one.\n The second local head should not confuse the `hg pull rebase`.\n \n   $ hg up \'desc(R6)\'\n-  1 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo M1 > M1\n   $ hg commit -Am M1\n-  adding M1\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ cd ../a\n   $ hg up \'desc(R6)\'\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n@@ -419,42 +555,25 @@\n   adding R7\n   $ cd ../c\n   $ hg up \'desc(L2)\'\n-  2 files updated, 0 files merged, 2 files removed, 0 files unresolved\n-  $ hg pull --rebase\n-  pulling from $TESTTMP/a\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files (+1 heads)\n-  new changesets f7d3e42052f9\n-  rebasing 7:864e0a2d2614 "L1"\n-  rebasing 8:6dc0ea5dcf55 "L2"\n-  saved backup bundle to $TESTTMP/c/.hg/strip-backup/864e0a2d2614-2f72c89c-rebase.hg\n-  $ hg tglog\n-  @  12: 3603a865eea0 \'L2\'\n-  |\n-  o  11: bcc8a9cd04bf \'L1\'\n-  |\n-  o  10: f7d3e42052f9 \'R7\'\n-  |\n-  | o  9: 41fab4eef82f \'M1\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+  $ hg pull --rebase\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n+  $ hg tglog\n+  @  6: 518d153c0ba3 \'L1\'\n+  |\n+  o  5: 770a61882ace \'R3\'\n+  |\n+  o  4: 31cd3a05214e \'R2\'\n+  |\n+  | o  3: ff8d69a621f9 \'L1\'\n+  | |\n+  o |  2: 77ae9631bcca \'R1\'\n   |/\n-  | o  8: 39c381359968 \'B1\' unrelatedbranch\n-  |/\n-  o  7: 65bc164c1d9b \'R6\'\n-  |\n-  o  6: 88dd24261747 \'R5\'\n-  |\n-  o  5: 00e3b7781125 \'R4\'\n-  |\n-  o  4: 770a61882ace \'R3\'\n-  |\n-  o  3: 31cd3a05214e \'R2\'\n-  |\n-  o  2: 77ae9631bcca \'R1\'\n-  |\n-  o  1: 783333faa078 \'C2\'\n-  |\n-  o  0: 05d58a0c15dd \'C1\'\n-  \n+  o  1: 783333faa078 \'C2\'\n+  |\n+  o  0: 05d58a0c15dd \'C1\'\n+  \n', 2589, 2591, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-rename.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-rename.t\n+++ c:/hgdev/src/tests/test-rebase-rename.t.err\n@@ -62,12 +62,81 @@\n   $ hg rebase -s 3 -d 2\n   rebasing 3:73a3ee40125d tip "rename A"\n   saved backup bundle to $TESTTMP/a/.hg/strip-backup/73a3ee40125d-1d78ebcf-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a\\.hg\\strip-backup/73a3ee40125d-1d78ebcf-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a\\.hg\\strip-backup/73a3ee40125d-dad3b348-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a\\.hg\\strip-backup/73a3ee40125d-dad3b348-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  @  3: 032a9b75e83b \'rename A\'\n-  |\n-  o  2: 220d0626d185 \'rename B\'\n-  |\n+  @  4: 032a9b75e83b \'rename A\'\n+  |\n+  | o  3: 73a3ee40125d \'rename A\'\n+  | |\n+  o |  2: 220d0626d185 \'rename B\'\n+  |/\n   o  1: 3ab5da9a5c01 \'B\'\n   |\n   o  0: 1994f17a630e \'A\'\n@@ -76,7 +145,7 @@\n Rename is not lost:\n \n   $ hg tlog -p --git -r tip\n-  3: 032a9b75e83b \'rename A\' \n+  4: 032a9b75e83b \'rename A\' \n   diff --git a/a b/a-renamed\n   rename from a\n   rename to a-renamed\n@@ -91,18 +160,16 @@\n Rebased revision does not contain information about b (issue3739)\n \n   $ hg log -r 3 --debug\n-  changeset:   3:032a9b75e83bff1dcfb6cbfa4ef50a704bf1b569\n-  tag:         tip\n+  changeset:   3:73a3ee40125d6f0f347082e5831ceccb3f005f8a\n   phase:       draft\n-  parent:      2:220d0626d185f372d9d8f69d9c73b0811d7725f7\n+  parent:      1:3ab5da9a5c01faa02c20f2ec4870a4f689c92da6\n   parent:      -1:0000000000000000000000000000000000000000\n-  manifest:    3:035d66b27a1b06b2d12b46d41a39adb7a200c370\n+  manifest:    3:c03ca5174720b735fd32ac957fde9658263fb6fa\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  files+:      a-renamed d-renamed/x\n+  files+:      a-renamed d/x\n   files-:      a\n   extra:       branch=default\n-  extra:       rebase_source=73a3ee40125d6f0f347082e5831ceccb3f005f8a\n   description:\n   rename A\n   \n@@ -115,34 +182,42 @@\n   >   hg commit -Am "$2" --user "$3"\n   > }\n   $ repeatchange 1 "E" "user1"\n-  2 files updated, 0 files merged, 3 files removed, 0 files unresolved\n-  created new head\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  a: $ENOENT$\n+  abort: no files to copy\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ repeatchange 1 "E" "user2"\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  created new head\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  a: $ENOENT$\n+  abort: no files to copy\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg tglog\n-  @  5: af8ad1f97097 \'E\'\n-  |\n-  | o  4: 60f545c27784 \'E\'\n-  |/\n-  | o  3: 032a9b75e83b \'rename A\'\n+  @  4: 032a9b75e83b \'rename A\'\n+  |\n+  | o  3: 73a3ee40125d \'rename A\'\n   | |\n-  | o  2: 220d0626d185 \'rename B\'\n+  o |  2: 220d0626d185 \'rename B\'\n   |/\n   o  1: 3ab5da9a5c01 \'B\'\n   |\n   o  0: 1994f17a630e \'A\'\n   \n   $ hg rebase -s 5 -d 4\n-  rebasing 5:af8ad1f97097 tip "E"\n-  note: not rebasing 5:af8ad1f97097 tip "E", its destination already has all its changes\n-  saved backup bundle to $TESTTMP/a/.hg/strip-backup/af8ad1f97097-c3e90708-rebase.hg\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg tglog\n-  @  4: 60f545c27784 \'E\'\n-  |\n-  | o  3: 032a9b75e83b \'rename A\'\n+  @  4: 032a9b75e83b \'rename A\'\n+  |\n+  | o  3: 73a3ee40125d \'rename A\'\n   | |\n-  | o  2: 220d0626d185 \'rename B\'\n+  o |  2: 220d0626d185 \'rename B\'\n   |/\n   o  1: 3ab5da9a5c01 \'B\'\n   |\n@@ -150,19 +225,28 @@\n   \n   $ hg export tip\n   # HG changeset patch\n-  # User user1\n+  # User test\n   # Date 0 0\n   #      Thu Jan 01 00:00:00 1970 +0000\n-  # Node ID 60f545c277846e6bad309919bae3ae106f59cb39\n-  # Parent  3ab5da9a5c01faa02c20f2ec4870a4f689c92da6\n-  E\n-  \n-  diff -r 3ab5da9a5c01 -r 60f545c27784 z\n+  # Node ID 032a9b75e83bff1dcfb6cbfa4ef50a704bf1b569\n+  # Parent  220d0626d185f372d9d8f69d9c73b0811d7725f7\n+  rename A\n+  \n+  diff -r 220d0626d185 -r 032a9b75e83b a\n+  --- a/a\tThu Jan 01 00:00:00 1970 +0000\n+  +++ /dev/null\tThu Jan 01 00:00:00 1970 +0000\n+  @@ -1,1 +0,0 @@\n+  -a\n+  diff -r 220d0626d185 -r 032a9b75e83b a-renamed\n   --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-  +++ b/z\tThu Jan 01 00:00:00 1970 +0000\n-  @@ -0,0 +1,2 @@\n+  +++ b/a-renamed\tThu Jan 01 00:00:00 1970 +0000\n+  @@ -0,0 +1,1 @@\n   +a\n-  +blah\n+  diff -r 220d0626d185 -r 032a9b75e83b d-renamed/x\n+  --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n+  +++ b/d-renamed/x\tThu Jan 01 00:00:00 1970 +0000\n+  @@ -0,0 +1,1 @@\n+  +x\n \n   $ cd ..\n \n@@ -209,12 +293,81 @@\n   $ hg rebase -s 3 -d 2\n   rebasing 3:0a8162ff18a8 tip "copy A"\n   saved backup bundle to $TESTTMP/b/.hg/strip-backup/0a8162ff18a8-dd06302a-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\b\\.hg\\strip-backup/0a8162ff18a8-dd06302a-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\b\\.hg\\strip-backup/0a8162ff18a8-d0c3e62d-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\b\\.hg\\strip-backup/0a8162ff18a8-d0c3e62d-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  @  3: 98f6e6dbf45a \'copy A\'\n-  |\n-  o  2: 39e588434882 \'copy B\'\n-  |\n+  @  4: 98f6e6dbf45a \'copy A\'\n+  |\n+  | o  3: 0a8162ff18a8 \'copy A\'\n+  | |\n+  o |  2: 39e588434882 \'copy B\'\n+  |/\n   o  1: 6c81ed0049f8 \'B\'\n   |\n   o  0: 1994f17a630e \'A\'\n@@ -223,7 +376,7 @@\n Copy is not lost:\n \n   $ hg tlog -p --git -r tip\n-  3: 98f6e6dbf45a \'copy A\' \n+  4: 98f6e6dbf45a \'copy A\' \n   diff --git a/a b/a-copied\n   copy from a\n   copy to a-copied\n@@ -232,17 +385,15 @@\n Rebased revision does not contain information about b (issue3739)\n \n   $ hg log -r 3 --debug\n-  changeset:   3:98f6e6dbf45ab54079c2237fbd11066a5c41a11d\n-  tag:         tip\n+  changeset:   3:0a8162ff18a8900df8df8ef7ac0046955205613e\n   phase:       draft\n-  parent:      2:39e588434882ff77d01229d169cdc77f29e8855e\n+  parent:      1:6c81ed0049f86eccdfa07f4d71b328a6c970b13f\n   parent:      -1:0000000000000000000000000000000000000000\n-  manifest:    3:2232f329d66fffe3930d43479ae624f66322b04d\n+  manifest:    3:ce076967888a024227ec8aafba25839a3b33df72\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n   files+:      a-copied\n   extra:       branch=default\n-  extra:       rebase_source=0a8162ff18a8900df8df8ef7ac0046955205613e\n   description:\n   copy A\n   \n@@ -293,6 +444,73 @@\n   $ hg rebase -s 4 -d 3\n   rebasing 4:b918d683b091 tip "Another unrelated change"\n   saved backup bundle to $TESTTMP/repo/.hg/strip-backup/b918d683b091-3024bc57-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\.hg\\strip-backup/b918d683b091-3024bc57-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\repo\\.hg\\strip-backup/b918d683b091-3b19d60a-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\repo\\.hg\\strip-backup/b918d683b091-3b19d60a-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg diff --stat -c .\n    unrelated.txt |  1 +\n@@ -344,55 +562,129 @@\n   rebasing 2:327f772bc074 "File c created as copy of b and modified"\n   rebasing 3:6be224292cfa "File d created as copy of c and modified (child of 327f772bc074)"\n   saved backup bundle to $TESTTMP/copy-gets-preserved/.hg/strip-backup/79d255d24ad2-a3e674e3-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\copy-gets-preserved\\.hg\\strip-backup/79d255d24ad2-a3e674e3-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\copy-gets-preserved\\.hg\\strip-backup/79d255d24ad2-84f60917-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\copy-gets-preserved\\.hg\\strip-backup/79d255d24ad2-84f60917-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg update 4\n-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n There should still be four entries in the log for d\n   $ hg tglog --follow d\n-  @  4: afbdde3a60d5 \'File d created as copy of c and modified (child of af74b229bc02)\'\n-  |\n-  o  3: af74b229bc02 \'File c created as copy of b and modified\'\n-  |\n-  o  2: 68bf06433839 \'File b created as copy of a and modified\'\n-  :\n-  o  0: b220cd6d2326 \'File a created\'\n-  \n+  abort: cannot follow file not in parent revision: "d"\n+  [255]\n Same steps as above, but with --collapse on rebase to make sure the\n copy records collapse correctly.\n   $ hg co 1\n-  0 files updated, 0 files merged, 3 files removed, 0 files unresolved\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo more >> unrelated\n   $ hg ci -m \'unrelated commit is unrelated\'\n-  created new head\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg rebase -s 2 --dest 5 --collapse\n-  rebasing 2:68bf06433839 "File b created as copy of a and modified"\n-  rebasing 3:af74b229bc02 "File c created as copy of b and modified"\n-  merging b and c to c\n-  rebasing 4:afbdde3a60d5 "File d created as copy of c and modified (child of af74b229bc02)"\n-  merging c and d to d\n-  saved backup bundle to $TESTTMP/copy-gets-preserved/.hg/strip-backup/68bf06433839-29d5057f-rebase.hg\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg co tip\n-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n This should show both revision 3 and 0 since \'d\' was transitively a\n copy of \'a\'.\n \n   $ hg tglog --follow d\n-  @  3: 75708a266e56 \'Collapsed revision\n-  :  * File b created as copy of a and modified\n-  :  * File c created as copy of b and modified\n-  :  * File d created as copy of c and modified (child of af74b229bc02)\'\n-  o  0: b220cd6d2326 \'File a created\'\n-  \n+  abort: cannot follow file not in parent revision: "d"\n+  [255]\n   $ hg log -G -Tcompact\n-  @  3[tip]   75708a266e56   1970-01-01 00:00 +0000   test\n-  |    Collapsed revision\n-  |\n-  o  2   15258cf0cf10   1970-01-01 00:00 +0000   test\n-  |    unrelated commit is unrelated\n-  |\n-  o  1   1d689898494b   1970-01-01 00:00 +0000   test\n+  o  7[tip]   afbdde3a60d5   1970-01-01 00:00 +0000   test\n+  |    File d created as copy of c and modified (child of af74b229bc02)\n+  |\n+  o  6   af74b229bc02   1970-01-01 00:00 +0000   test\n+  |    File c created as copy of b and modified\n+  |\n+  o  5   68bf06433839   1970-01-01 00:00 +0000   test\n+  |    File b created as copy of a and modified\n+  |\n+  @  4:0   1d689898494b   1970-01-01 00:00 +0000   test\n   |    Unrelated file created\n+  |\n+  | o  3   6be224292cfa   1970-01-01 00:00 +0000   test\n+  | |    File d created as copy of c and modified (child of 327f772bc074)\n+  | |\n+  | o  2   327f772bc074   1970-01-01 00:00 +0000   test\n+  | |    File c created as copy of b and modified\n+  | |\n+  | o  1   79d255d24ad2   1970-01-01 00:00 +0000   test\n+  |/     File b created as copy of a and modified\n   |\n   o  0   b220cd6d2326   1970-01-01 00:00 +0000   test\n        File a created\n', 2507, 2509, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-scenario-global.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-scenario-global.t\n+++ c:/hgdev/src/tests/test-rebase-scenario-global.t.err\n@@ -67,21 +67,92 @@\n   HG: branch \'default\'\n   HG: added D\n   saved backup bundle to $TESTTMP/a1/.hg/strip-backup/32af7686d403-6f7dface-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a1\\.hg\\strip-backup/32af7686d403-6f7dface-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a1\\.hg\\strip-backup/32af7686d403-ba2caaff-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a1\\.hg\\strip-backup/32af7686d403-ba2caaff-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cat D.orig\n   collide\n   $ rm D.orig\n \n   $ hg tglog\n-  o  7: 1619f02ff7dd \'D\'\n-  |\n-  @  6: 02de42196ebe \'H\'\n-  |\n-  | o  5: eea13746799a \'G\'\n+  o  8: 1619f02ff7dd \'D\'\n+  |\n+  @  7: 02de42196ebe \'H\'\n+  |\n+  | o  6: eea13746799a \'G\'\n   |/|\n-  o |  4: 24b6387c8c8c \'F\'\n-  | |\n-  | o  3: 9520eea781bc \'E\'\n-  |/\n+  o |  5: 24b6387c8c8c \'F\'\n+  | |\n+  | o  4: 9520eea781bc \'E\'\n+  |/\n+  | o  3: 32af7686d403 \'D\'\n+  | |\n   | o  2: 5fddd98957c8 \'C\'\n   | |\n   | o  1: 42ccdea3bb16 \'B\'\n@@ -102,21 +173,92 @@\n   $ HGEDITOR=cat hg rebase -s 3 -d 5 --config merge.checkunknown=ignore\n   rebasing 3:32af7686d403 "D"\n   saved backup bundle to $TESTTMP/a2/.hg/strip-backup/32af7686d403-6f7dface-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a2\\.hg\\strip-backup/32af7686d403-6f7dface-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a2\\.hg\\strip-backup/32af7686d403-f4e8e3ac-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a2\\.hg\\strip-backup/32af7686d403-f4e8e3ac-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cat D.orig\n   collide\n   $ rm D.orig\n \n   $ hg tglog\n-  o  7: 2107530e74ab \'D\'\n-  |\n-  | @  6: 02de42196ebe \'H\'\n-  |/\n-  | o  5: eea13746799a \'G\'\n+  o  8: 2107530e74ab \'D\'\n+  |\n+  | @  7: 02de42196ebe \'H\'\n+  |/\n+  | o  6: eea13746799a \'G\'\n   |/|\n-  o |  4: 24b6387c8c8c \'F\'\n-  | |\n-  | o  3: 9520eea781bc \'E\'\n-  |/\n+  o |  5: 24b6387c8c8c \'F\'\n+  | |\n+  | o  4: 9520eea781bc \'E\'\n+  |/\n+  | o  3: 32af7686d403 \'D\'\n+  | |\n   | o  2: 5fddd98957c8 \'C\'\n   | |\n   | o  1: 42ccdea3bb16 \'B\'\n@@ -140,16 +282,90 @@\n   rebasing 6:eea13746799a "G"\n   note: not rebasing 6:eea13746799a "G", its destination already has all its changes\n   saved backup bundle to $TESTTMP/a3/.hg/strip-backup/9520eea781bc-fcd8edd4-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a3\\.hg\\strip-backup/9520eea781bc-fcd8edd4-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a3\\.hg\\strip-backup/9520eea781bc-f8940fa0-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a3\\.hg\\strip-backup/9520eea781bc-f8940fa0-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ f E.orig\n-  E.orig: file not found\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n   $ hg tglog\n-  o  6: 9f8b8ec77260 \'E\'\n-  |\n-  @  5: 02de42196ebe \'H\'\n-  |\n-  o  4: 24b6387c8c8c \'F\'\n-  |\n+  o  8: 9f8b8ec77260 \'E\'\n+  |\n+  @  7: 02de42196ebe \'H\'\n+  |\n+  | o  6: eea13746799a \'G\'\n+  |/|\n+  o |  5: 24b6387c8c8c \'F\'\n+  | |\n+  | o  4: 9520eea781bc \'E\'\n+  |/\n   | o  3: 32af7686d403 \'D\'\n   | |\n   | o  2: 5fddd98957c8 \'C\'\n@@ -172,14 +388,89 @@\n   note: not rebasing 6:eea13746799a "G", its destination already has all its changes\n   rebasing 7:02de42196ebe tip "H"\n   saved backup bundle to $TESTTMP/a4/.hg/strip-backup/24b6387c8c8c-c3fe765d-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a4\\.hg\\strip-backup/24b6387c8c8c-c3fe765d-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a4\\.hg\\strip-backup/24b6387c8c8c-8ba9ec83-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a4\\.hg\\strip-backup/24b6387c8c8c-8ba9ec83-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  @  6: e9240aeaa6ad \'H\'\n-  |\n-  o  5: 5d0ccadb6e3e \'F\'\n-  |\n-  o  4: 9520eea781bc \'E\'\n-  |\n+  @  9: e9240aeaa6ad \'H\'\n+  |\n+  o  8: 5d0ccadb6e3e \'F\'\n+  |\n+  | o  7: 02de42196ebe \'H\'\n+  | |\n+  +---o  6: eea13746799a \'G\'\n+  | |/\n+  | o  5: 24b6387c8c8c \'F\'\n+  | |\n+  o |  4: 9520eea781bc \'E\'\n+  |/\n   | o  3: 32af7686d403 \'D\'\n   | |\n   | o  2: 5fddd98957c8 \'C\'\n@@ -199,12 +490,83 @@\n   $ hg rebase -s 6 -d 7\n   rebasing 6:eea13746799a "G"\n   saved backup bundle to $TESTTMP/a5/.hg/strip-backup/eea13746799a-883828ed-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a5\\.hg\\strip-backup/eea13746799a-883828ed-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a5\\.hg\\strip-backup/eea13746799a-514a48eb-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a5\\.hg\\strip-backup/eea13746799a-514a48eb-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  o    7: 397834907a90 \'G\'\n+  o    8: 397834907a90 \'G\'\n   |\\\n-  | @  6: 02de42196ebe \'H\'\n-  | |\n+  | @  7: 02de42196ebe \'H\'\n+  | |\n+  +---o  6: eea13746799a \'G\'\n+  | |/\n   | o  5: 24b6387c8c8c \'F\'\n   | |\n   o |  4: 9520eea781bc \'E\'\n@@ -230,16 +592,91 @@\n   rebasing 6:eea13746799a "G"\n   rebasing 7:02de42196ebe tip "H"\n   saved backup bundle to $TESTTMP/a6/.hg/strip-backup/24b6387c8c8c-c3fe765d-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a6\\.hg\\strip-backup/24b6387c8c8c-c3fe765d-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a6\\.hg\\strip-backup/24b6387c8c8c-c96d8555-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a6\\.hg\\strip-backup/24b6387c8c8c-c96d8555-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  @  7: c87be72f9641 \'H\'\n-  |\n-  | o  6: 17badd73d4f1 \'G\'\n+  @  10: c87be72f9641 \'H\'\n+  |\n+  | o  9: 17badd73d4f1 \'G\'\n   |/|\n-  o |  5: 74fb9ed646c4 \'F\'\n-  | |\n-  | o  4: 9520eea781bc \'E\'\n-  | |\n+  o |  8: 74fb9ed646c4 \'F\'\n+  | |\n+  | | o  7: 02de42196ebe \'H\'\n+  | | |\n+  | +---o  6: eea13746799a \'G\'\n+  | | |/\n+  | | o  5: 24b6387c8c8c \'F\'\n+  | | |\n+  | o |  4: 9520eea781bc \'E\'\n+  | |/\n   | | o  3: 32af7686d403 \'D\'\n   | | |\n   +---o  2: 5fddd98957c8 \'C\'\n@@ -303,19 +740,92 @@\n   rebasing 2:5fddd98957c8 "C"\n   rebasing 3:32af7686d403 "D"\n   saved backup bundle to $TESTTMP/a7/.hg/strip-backup/5fddd98957c8-f9244fa1-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a7\\.hg\\strip-backup/5fddd98957c8-f9244fa1-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a7\\.hg\\strip-backup/5fddd98957c8-716fa7ae-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a7\\.hg\\strip-backup/5fddd98957c8-716fa7ae-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg tglog\n-  o  7: c9659aac0000 \'D\'\n-  |\n-  o  6: e1c4361dd923 \'C\'\n-  |\n-  | @  5: 02de42196ebe \'H\'\n-  | |\n-  | | o  4: eea13746799a \'G\'\n+  o  9: c9659aac0000 \'D\'\n+  |\n+  o  8: e1c4361dd923 \'C\'\n+  |\n+  | @  7: 02de42196ebe \'H\'\n+  | |\n+  | | o  6: eea13746799a \'G\'\n   | |/|\n-  | o |  3: 24b6387c8c8c \'F\'\n+  | o |  5: 24b6387c8c8c \'F\'\n   |/ /\n-  | o  2: 9520eea781bc \'E\'\n-  |/\n+  | o  4: 9520eea781bc \'E\'\n+  |/\n+  | o  3: 32af7686d403 \'D\'\n+  | |\n+  | o  2: 5fddd98957c8 \'C\'\n+  | |\n   | o  1: 42ccdea3bb16 \'B\'\n   |/\n   o  0: cd010b8cd998 \'A\'\n@@ -324,56 +834,68 @@\n Check rebasing public changeset\n \n   $ hg pull --config phases.publish=True -q -r 6 . # update phase of 6\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg rebase -d 0 -b 6\n-  abort: cannot rebase public changesets\n-  (see \'hg help phases\' for details)\n-  [10]\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg rebase -d 5 -b 6\n-  abort: cannot rebase public changesets\n-  (see \'hg help phases\' for details)\n-  [10]\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg rebase -d 5 -r \'1 + (6::)\'\n-  abort: cannot rebase public changesets\n-  (see \'hg help phases\' for details)\n-  [10]\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n   $ hg rebase -d 5 -b 6 --keep\n-  rebasing 6:e1c4361dd923 "C"\n-  rebasing 7:c9659aac0000 tip "D"\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n \n Check rebasing mutable changeset\n Source phase greater or equal to destination phase: new changeset get the phase of source:\n   $ hg id -n\n-  5\n+  7\n   $ hg rebase -s9 -d0\n-  rebasing 9:2b23e52411f4 tip "D"\n-  saved backup bundle to $TESTTMP/a7/.hg/strip-backup/2b23e52411f4-f942decf-rebase.hg\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg id -n # check we updated back to parent\n-  5\n+  7\n   $ hg log --template "{phase}\\n" -r 9\n   draft\n   $ hg rebase -s9 -d1\n-  rebasing 9:2cb10d0cfc6c tip "D"\n-  saved backup bundle to $TESTTMP/a7/.hg/strip-backup/2cb10d0cfc6c-ddb0f256-rebase.hg\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg log --template "{phase}\\n" -r 9\n   draft\n   $ hg phase --force --secret 9\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg rebase -s9 -d0\n-  rebasing 9:c5b12b67163a tip "D"\n-  saved backup bundle to $TESTTMP/a7/.hg/strip-backup/c5b12b67163a-4e372053-rebase.hg\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg log --template "{phase}\\n" -r 9\n-  secret\n+  draft\n   $ hg rebase -s9 -d1\n-  rebasing 9:2a0524f868ac tip "D"\n-  saved backup bundle to $TESTTMP/a7/.hg/strip-backup/2a0524f868ac-cefd8574-rebase.hg\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg log --template "{phase}\\n" -r 9\n-  secret\n+  draft\n Source phase lower than destination phase: new changeset get the phase of destination:\n   $ hg rebase -s8 -d9\n-  rebasing 8:6d4f22462821 "C"\n-  saved backup bundle to $TESTTMP/a7/.hg/strip-backup/6d4f22462821-3441f70b-rebase.hg\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg log --template "{phase}\\n" -r \'rev(9)\'\n-  secret\n+  draft\n \n   $ cd ..\n \n@@ -401,11 +923,82 @@\n   $ hg rebase -s 1 -d 2\n   rebasing 1:d2ae7f538514 "b"\n   saved backup bundle to $TESTTMP/issue5678/.hg/strip-backup/d2ae7f538514-2953539b-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\issue5678\\.hg\\strip-backup/d2ae7f538514-2953539b-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\issue5678\\.hg\\strip-backup/d2ae7f538514-d236da20-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\issue5678\\.hg\\strip-backup/d2ae7f538514-d236da20-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log -G -T \'{rev}:{node|shortest} {phase} {desc}\\n\'\n-  o  2:c882 draft b\n-  |\n-  @  1:d36c public c\n-  |\n+  o  3:c882 draft b\n+  |\n+  @  2:d36c public c\n+  |\n+  | o  1:d2ae draft b\n+  |/\n   o  0:cb9a public a\n   \n   $ cd ..\n@@ -634,17 +1227,92 @@\n   rebasing 7:72434a4e60b0 "H"\n   rebasing 8:479ddb54a924 tip "I"\n   saved backup bundle to $TESTTMP/ah5/.hg/strip-backup/3d8a618087a7-b4f73f31-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\ah5\\.hg\\strip-backup/3d8a618087a7-b4f73f31-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\ah5\\.hg\\strip-backup/3d8a618087a7-0544f419-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\ah5\\.hg\\strip-backup/3d8a618087a7-0544f419-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg tglog\n-  o  8: fcb52e68a694 \'I\'\n-  |\n-  o  7: 77bd65cd7600 \'H\'\n-  |\n-  o  6: 12d0e738fb18 \'G\'\n-  |\n-  | o  5: 41bfcc75ed73 \'F\'\n-  | |\n-  | o  4: c01897464e7f \'E\'\n-  | |\n+  o  11: fcb52e68a694 \'I\'\n+  |\n+  o  10: 77bd65cd7600 \'H\'\n+  |\n+  o  9: 12d0e738fb18 \'G\'\n+  |\n+  | o  8: 479ddb54a924 \'I\'\n+  | |\n+  | o  7: 72434a4e60b0 \'H\'\n+  | |\n+  | o  6: 3d8a618087a7 \'G\'\n+  | |\n+  | | o  5: 41bfcc75ed73 \'F\'\n+  | | |\n+  | | o  4: c01897464e7f \'E\'\n+  | |/\n   | o  3: ffd453c31098 \'D\'\n   |/\n   o  2: c9e50f6cdc55 \'C\'\n@@ -669,17 +1337,96 @@\n   rebasing 7:72434a4e60b0 "H"\n   rebasing 8:479ddb54a924 tip "I"\n   saved backup bundle to $TESTTMP/ah6/.hg/strip-backup/3d8a618087a7-aae93a24-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\ah6\\.hg\\strip-backup/3d8a618087a7-aae93a24-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\ah6\\.hg\\strip-backup/3d8a618087a7-b1535d0f-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\ah6\\.hg\\strip-backup/3d8a618087a7-b1535d0f-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg tglog\n-  o  8: 9136df9a87cf \'I\'\n-  |\n-  o  7: 23e8f30da832 \'H\'\n-  |\n-  o  6: b0efe8534e8b \'G\'\n-  |\n-  | o  5: 6eb5b496ab79 \'F\'\n-  | |\n-  | o  4: d15eade9b0b1 \'E\'\n-  |/\n+  o  13: 9136df9a87cf \'I\'\n+  |\n+  o  12: 23e8f30da832 \'H\'\n+  |\n+  o  11: b0efe8534e8b \'G\'\n+  |\n+  | o  10: 6eb5b496ab79 \'F\'\n+  | |\n+  | o  9: d15eade9b0b1 \'E\'\n+  |/\n+  | o  8: 479ddb54a924 \'I\'\n+  | |\n+  | o  7: 72434a4e60b0 \'H\'\n+  | |\n+  | o  6: 3d8a618087a7 \'G\'\n+  | |\n+  | | o  5: 41bfcc75ed73 \'F\'\n+  | | |\n+  | | o  4: c01897464e7f \'E\'\n+  | |/\n   | o  3: ffd453c31098 \'D\'\n   | |\n   | o  2: c9e50f6cdc55 \'C\'\n@@ -738,14 +1485,83 @@\n   rebasing 8:e7ec4e813ba6 "I"\n   rebasing 10:23a4ace37988 tip "K"\n   saved backup bundle to $TESTTMP/a8/.hg/strip-backup/23a4ace37988-b06984b3-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\a8\\.hg\\strip-backup/23a4ace37988-b06984b3-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a8\\.hg\\strip-backup/23a4ace37988-286c5dea-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a8\\.hg\\strip-backup/23a4ace37988-286c5dea-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log --rev \'children(desc(G))\'\n-  changeset:   9:adb617877056\n+  changeset:   11:adb617877056\n   parent:      6:eea13746799a\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n   summary:     I\n   \n-  changeset:   10:882431a34a0e\n+  changeset:   12:882431a34a0e\n   tag:         tip\n   parent:      6:eea13746799a\n   user:        test\n@@ -753,12 +1569,16 @@\n   summary:     K\n   \n   $ hg tglog\n-  @  10: 882431a34a0e \'K\'\n-  |\n-  | o  9: adb617877056 \'I\'\n-  |/\n-  | o  8: 1301922eeb0c \'J\'\n-  | |\n+  @  12: 882431a34a0e \'K\'\n+  |\n+  | o  11: adb617877056 \'I\'\n+  |/\n+  | o  10: 23a4ace37988 \'K\'\n+  | |\n+  | o  9: 1301922eeb0c \'J\'\n+  | |\n+  | | o  8: e7ec4e813ba6 \'I\'\n+  | | |\n   | | o  7: 02de42196ebe \'H\'\n   | | |\n   o---+  6: eea13746799a \'G\'\n@@ -805,6 +1625,123 @@\n   (consider changing to repo root: $TESTTMP/cwd-vanish) (rmcwd !)\n   rebasing 3:a7d6f3a00bf3 tip "second source with subdir"\n   saved backup bundle to $TESTTMP/cwd-vanish/.hg/strip-backup/779a07b1b7a0-853e0073-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\cwd-vanish\\.hg\\strip-backup/779a07b1b7a0-853e0073-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\cwd-vanish\\.hg\\strip-backup/779a07b1b7a0-63cdc3a9-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\cwd-vanish\\.hg\\strip-backup/779a07b1b7a0-63cdc3a9-temp.hg\'")\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Get back to the root of cwd-vanish. Note that even though `cd ..`\n works on most systems, it does not work on FreeBSD 10, so we use an\n@@ -856,20 +1793,99 @@\n   rebasing 3:ab709c9f7171 "D"\n   rebasing 5:412b391de760 "F"\n   saved backup bundle to $TESTTMP/order/.hg/strip-backup/76035bbd54bd-e341bc99-rebase.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\order\\.hg\\strip-backup/76035bbd54bd-e341bc99-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\order\\.hg\\strip-backup/76035bbd54bd-ef35b743-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\order\\.hg\\strip-backup/76035bbd54bd-ef35b743-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg tglog\n-  o  6: 31884cfb735e \'F\'\n-  |\n-  o  5: 6d89fa5b0909 \'D\'\n-  |\n-  | o  4: de64d97c697b \'E\'\n-  | |\n-  | o  3: b18e4d2d0aa1 \'C\'\n-  |/\n-  o  2: 0983daf9ff6a \'B\'\n-  |\n-  @  1: 124bb27b6f28 \'G\'\n-  |\n+  o  11: 31884cfb735e \'F\'\n+  |\n+  o  10: 6d89fa5b0909 \'D\'\n+  |\n+  | o  9: de64d97c697b \'E\'\n+  | |\n+  | o  8: b18e4d2d0aa1 \'C\'\n+  |/\n+  o  7: 0983daf9ff6a \'B\'\n+  |\n+  @  6: 124bb27b6f28 \'G\'\n+  |\n+  | o  5: 412b391de760 \'F\'\n+  | |\n+  | | o  4: 82ae8dc7a9b7 \'E\'\n+  | | |\n+  | o |  3: ab709c9f7171 \'D\'\n+  | | |\n+  | | o  2: d84f5cfaaf14 \'C\'\n+  | |/\n+  | o  1: 76035bbd54bd \'B\'\n+  |/\n   o  0: 216878401574 \'A\'\n   \n \n@@ -881,33 +1897,43 @@\n Make the repo a bit more interesting\n \n   $ hg up 1\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ echo aaa > aaa\n   $ hg add aaa\n   $ hg commit -m aaa\n-  created new head\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg log -G\n-  @  changeset:   4:5f7bc9025ed2\n+  @  changeset:   5:1910d5ff34ea\n   |  tag:         tip\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     second source with subdir\n+  |\n+  o  changeset:   4:82901330b6ef\n   |  parent:      1:58d79cc1cf43\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     aaa\n-  |\n-  | o  changeset:   3:1910d5ff34ea\n+  |  summary:     first source commit\n+  |\n+  | o  changeset:   3:a7d6f3a00bf3\n   | |  user:        test\n   | |  date:        Thu Jan 01 00:00:00 1970 +0000\n   | |  summary:     second source with subdir\n   | |\n-  | o  changeset:   2:82901330b6ef\n+  | o  changeset:   2:779a07b1b7a0\n+  | |  parent:      0:e94b687f7da3\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     first source commit\n+  | |\n+  o |  changeset:   1:58d79cc1cf43\n   |/   user:        test\n   |    date:        Thu Jan 01 00:00:00 1970 +0000\n-  |    summary:     first source commit\n-  |\n-  o  changeset:   1:58d79cc1cf43\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     dest commit\n+  |    summary:     dest commit\n   |\n   o  changeset:   0:e94b687f7da3\n      user:        test\n@@ -918,28 +1944,30 @@\n Testing from lower head\n \n   $ hg up 3\n-  2 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg log -r \'_destrebase()\'\n-  changeset:   4:5f7bc9025ed2\n-  tag:         tip\n-  parent:      1:58d79cc1cf43\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     aaa\n-  \n-\n-Testing from upper head\n-\n-  $ hg log -r \'_destrebase(4)\'\n-  changeset:   3:1910d5ff34ea\n+  changeset:   3:a7d6f3a00bf3\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n   summary:     second source with subdir\n   \n+\n+Testing from upper head\n+\n+  $ hg log -r \'_destrebase(4)\'\n+  changeset:   3:a7d6f3a00bf3\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     second source with subdir\n+  \n   $ hg up 4\n-  1 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg log -r \'_destrebase()\'\n-  changeset:   3:1910d5ff34ea\n+  changeset:   3:a7d6f3a00bf3\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n   summary:     second source with subdir\n', 2682, 2684, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-transaction.t#continuecommand

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-transaction.t\n+++ c:/hgdev/src/tests/test-rebase-transaction.t#continuecommand.err\n@@ -39,18 +39,88 @@\n   > EOF\n - We should only see one status stored message. It comes from the start.\n   $ hg rebase --debug -b D -d Z | grep \'status stored\'\n+  strip failed, backup bundle stored in \'$TESTTMP\\simple\\.hg\\strip-backup/112478962961-cb2a9b47-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\simple\\.hg\\strip-backup/112478962961-73a6d2f7-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\simple\\.hg\\strip-backup/112478962961-73a6d2f7-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "c:\\hgdev\\python27-x64\\Lib\\contextlib.py", line 24, in __exit__\n+      self.gen.next()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1375, in acceptintervention\n+      tr.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   rebase status stored\n   $ hg tglog\n-  o  5: D\n-  |\n-  o  4: C\n-  |\n-  o  3: B\n-  |\n-  o  2: Z\n-  |\n-  o  1: Y\n-  |\n+  o  8: D\n+  |\n+  o  7: C\n+  |\n+  o  6: B\n+  |\n+  | o  5: D\n+  | |\n+  o |  4: Z\n+  | |\n+  | o  3: C\n+  | |\n+  o |  2: Y\n+  | |\n+  | o  1: B\n+  |/\n   o  0: A\n   \n   $ cd ..\n@@ -72,17 +142,87 @@\n - We should only see two status stored messages. One from the start, one from\n - cmdutil.commitforceeditor() which forces tr.writepending()\n   $ hg rebase --collapse --debug -b D -d Z | grep \'status stored\'\n+  strip failed, backup bundle stored in \'$TESTTMP\\collapse\\.hg\\strip-backup/112478962961-cb2a9b47-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\collapse\\.hg\\strip-backup/112478962961-4e9dc20e-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\collapse\\.hg\\strip-backup/112478962961-4e9dc20e-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "c:\\hgdev\\python27-x64\\Lib\\contextlib.py", line 24, in __exit__\n+      self.gen.next()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1375, in acceptintervention\n+      tr.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   rebase status stored\n   rebase status stored\n   $ hg tglog\n-  o  3: Collapsed revision\n+  o  6: Collapsed revision\n   |  * B\n   |  * C\n   |  * D\n-  o  2: Z\n-  |\n-  o  1: Y\n-  |\n+  | o  5: D\n+  | |\n+  o |  4: Z\n+  | |\n+  | o  3: C\n+  | |\n+  o |  2: Y\n+  | |\n+  | o  1: B\n+  |/\n   o  0: A\n   \n   $ cd ..\n@@ -136,15 +276,88 @@\n   rebasing 3:c26739dbe603 C "C"\n   rebasing 5:d24bb333861c D tip "D"\n   saved backup bundle to $TESTTMP/collapse-conflict/.hg/strip-backup/112478962961-b5b34645-rebase.hg\n-  $ hg tglog\n-  o  3: Collapsed revision\n+  strip failed, backup bundle stored in \'$TESTTMP\\collapse-conflict\\.hg\\strip-backup/112478962961-b5b34645-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\collapse-conflict\\.hg\\strip-backup/112478962961-d9fae1f9-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\collapse-conflict\\.hg\\strip-backup/112478962961-d9fae1f9-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2357, in continuecmd\n+      return contstate.continuefunc(ui, repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2246, in continuerebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg tglog\n+  o  6: Collapsed revision\n   |  * B\n   |  * C\n   |  * D\n-  o  2: Z\n-  |\n-  o  1: Y\n-  |\n+  | o  5: D\n+  | |\n+  o |  4: Z\n+  | |\n+  | o  3: C\n+  | |\n+  o |  2: Y\n+  | |\n+  | o  1: B\n+  |/\n   o  0: A\n   \n   $ cd ..\n@@ -168,10 +381,58 @@\n   rebasing 1:112478962961 B "B"\n   rebasing 3:26805aba1e60 C "C"\n   rebasing 5:f585351a92f8 D tip "D"\n-  transaction abort!\n-  rollback completed\n-  abort: edit failed: false exited with status 1\n-  [250]\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "c:\\hgdev\\python27-x64\\Lib\\contextlib.py", line 35, in __exit__\n+      self.gen.throw(type, value, traceback)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1380, in acceptintervention\n+      tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg tglog\n   o  5: D\n   |\n@@ -189,16 +450,22 @@\n   rebasing 1:112478962961 B "B"\n   rebasing 3:26805aba1e60 C "C"\n   rebasing 5:f585351a92f8 D tip "D"\n-  saved backup bundle to $TESTTMP/collapse-cancel-editor/.hg/strip-backup/112478962961-cb2a9b47-rebase.hg\n-  $ hg tglog\n-  o  3: Collapsed revision\n-  |  * B\n-  |  * C\n-  |  * D\n-  o  2: Z\n-  |\n-  o  1: Y\n-  |\n+  note: commit message saved in .hg/last-message.txt\n+  note: use \'hg commit --logfile .hg/last-message.txt --edit\' to reuse it\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg tglog\n+  o  5: D\n+  |\n+  | @  4: Z\n+  | |\n+  o |  3: C\n+  | |\n+  | o  2: Y\n+  | |\n+  o |  1: B\n+  |/\n   o  0: A\n   \n   $ cd ..\n', 2715, 2717, 'truncated \\uXXXX escape') decoding diff, sorry

test-rebase-transaction.t#continueflag

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rebase-transaction.t\n+++ c:/hgdev/src/tests/test-rebase-transaction.t#continueflag.err\n@@ -39,18 +39,88 @@\n   > EOF\n - We should only see one status stored message. It comes from the start.\n   $ hg rebase --debug -b D -d Z | grep \'status stored\'\n+  strip failed, backup bundle stored in \'$TESTTMP\\simple\\.hg\\strip-backup/112478962961-cb2a9b47-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\simple\\.hg\\strip-backup/112478962961-73a6d2f7-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\simple\\.hg\\strip-backup/112478962961-73a6d2f7-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "c:\\hgdev\\python27-x64\\Lib\\contextlib.py", line 24, in __exit__\n+      self.gen.next()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1375, in acceptintervention\n+      tr.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   rebase status stored\n   $ hg tglog\n-  o  5: D\n-  |\n-  o  4: C\n-  |\n-  o  3: B\n-  |\n-  o  2: Z\n-  |\n-  o  1: Y\n-  |\n+  o  8: D\n+  |\n+  o  7: C\n+  |\n+  o  6: B\n+  |\n+  | o  5: D\n+  | |\n+  o |  4: Z\n+  | |\n+  | o  3: C\n+  | |\n+  o |  2: Y\n+  | |\n+  | o  1: B\n+  |/\n   o  0: A\n   \n   $ cd ..\n@@ -72,17 +142,87 @@\n - We should only see two status stored messages. One from the start, one from\n - cmdutil.commitforceeditor() which forces tr.writepending()\n   $ hg rebase --collapse --debug -b D -d Z | grep \'status stored\'\n+  strip failed, backup bundle stored in \'$TESTTMP\\collapse\\.hg\\strip-backup/112478962961-cb2a9b47-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\collapse\\.hg\\strip-backup/112478962961-4e9dc20e-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\collapse\\.hg\\strip-backup/112478962961-4e9dc20e-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "c:\\hgdev\\python27-x64\\Lib\\contextlib.py", line 24, in __exit__\n+      self.gen.next()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1375, in acceptintervention\n+      tr.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   rebase status stored\n   rebase status stored\n   $ hg tglog\n-  o  3: Collapsed revision\n+  o  6: Collapsed revision\n   |  * B\n   |  * C\n   |  * D\n-  o  2: Z\n-  |\n-  o  1: Y\n-  |\n+  | o  5: D\n+  | |\n+  o |  4: Z\n+  | |\n+  | o  3: C\n+  | |\n+  o |  2: Y\n+  | |\n+  | o  1: B\n+  |/\n   o  0: A\n   \n   $ cd ..\n@@ -136,15 +276,88 @@\n   rebasing 3:c26739dbe603 C "C"\n   rebasing 5:d24bb333861c D tip "D"\n   saved backup bundle to $TESTTMP/collapse-conflict/.hg/strip-backup/112478962961-b5b34645-rebase.hg\n-  $ hg tglog\n-  o  3: Collapsed revision\n+  strip failed, backup bundle stored in \'$TESTTMP\\collapse-conflict\\.hg\\strip-backup/112478962961-b5b34645-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\collapse-conflict\\.hg\\strip-backup/112478962961-d9fae1f9-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\collapse-conflict\\.hg\\strip-backup/112478962961-d9fae1f9-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2357, in continuecmd\n+      return contstate.continuefunc(ui, repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2246, in continuerebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg tglog\n+  o  6: Collapsed revision\n   |  * B\n   |  * C\n   |  * D\n-  o  2: Z\n-  |\n-  o  1: Y\n-  |\n+  | o  5: D\n+  | |\n+  o |  4: Z\n+  | |\n+  | o  3: C\n+  | |\n+  o |  2: Y\n+  | |\n+  | o  1: B\n+  |/\n   o  0: A\n   \n   $ cd ..\n@@ -168,10 +381,58 @@\n   rebasing 1:112478962961 B "B"\n   rebasing 3:26805aba1e60 C "C"\n   rebasing 5:f585351a92f8 D tip "D"\n-  transaction abort!\n-  rollback completed\n-  abort: edit failed: false exited with status 1\n-  [250]\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "c:\\hgdev\\python27-x64\\Lib\\contextlib.py", line 35, in __exit__\n+      self.gen.throw(type, value, traceback)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1380, in acceptintervention\n+      tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg tglog\n   o  5: D\n   |\n@@ -189,16 +450,22 @@\n   rebasing 1:112478962961 B "B"\n   rebasing 3:26805aba1e60 C "C"\n   rebasing 5:f585351a92f8 D tip "D"\n-  saved backup bundle to $TESTTMP/collapse-cancel-editor/.hg/strip-backup/112478962961-cb2a9b47-rebase.hg\n-  $ hg tglog\n-  o  3: Collapsed revision\n-  |  * B\n-  |  * C\n-  |  * D\n-  o  2: Z\n-  |\n-  o  1: Y\n-  |\n+  note: commit message saved in .hg/last-message.txt\n+  note: use \'hg commit --logfile .hg/last-message.txt --edit\' to reuse it\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg tglog\n+  o  5: D\n+  |\n+  | @  4: Z\n+  | |\n+  o |  3: C\n+  | |\n+  | o  2: Y\n+  | |\n+  o |  1: B\n+  |/\n   o  0: A\n   \n   $ cd ..\n', 2712, 2714, 'truncated \\uXXXX escape') decoding diff, sorry

test-removeemptydirs.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-removeemptydirs.t\n+++ c:/hgdev/src/tests/test-removeemptydirs.t.err\n@@ -89,11 +89,81 @@\n   $ hg --config extensions.rebase= rebase -qr . -d \'desc(first_rebase_dest)\'\n   current directory was removed (rmcwd !)\n   (consider changing to repo root: $TESTTMP/hgrebase) (rmcwd !)\n+  strip failed, backup bundle stored in \'$TESTTMP\\hgrebase\\.hg\\strip-backup/fd8a64d38b16-c18d47a4-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\hgrebase\\.hg\\strip-backup/fd8a64d38b16-9c55e6f4-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\hgrebase\\.hg\\strip-backup/fd8a64d38b16-9c55e6f4-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cd $TESTTMP/hgrebase/somedir\n (The current node is the rebased first_rebase_source on top of\n first_rebase_dest)\n This should not output anything about current directory being removed:\n   $ hg $NO_RM --config extensions.rebase= rebase -qr . -d \'desc(second_rebase_dest)\'\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ cd $TESTTMP\n \n Histediting across a commit that doesn\'t have the directory, from inside the\n@@ -117,6 +187,75 @@\n   > EOF\n   $ cd $TESTTMP/hghistedit/somedir\n   $ hg --config extensions.histedit= histedit -q --commands ../histedit_commands\n+  strip failed, backup bundle stored in \'$TESTTMP\\hghistedit\\.hg\\strip-backup/b550aa12d873-32e84aa5-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\hghistedit\\.hg\\strip-backup/b550aa12d873-b237b528-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\hghistedit\\.hg\\strip-backup/b550aa12d873-b237b528-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n histedit doesn\'t output anything when the current diretory is removed. We rely\n on the tests being commonly run on machines where the current directory\n@@ -139,6 +278,8 @@\n   > EOF\n   $ cd $TESTTMP/hghistedit/somedir\n   $ hg $NO_RM --config extensions.histedit= histedit -q --commands ../histedit_commands\n+  abort: history edit already in progress, try --continue or --abort\n+  [255]\n Regardless of system, we should always get a \'yes\' here.\n   $ isfile foo\n   yes\n@@ -208,12 +349,86 @@\n   > fold 9992bb0ac0db 2 add baz\n   > EOF\n   saved backup bundle to $TESTTMP/issue5826_withrm/.hg/strip-backup/5c806432464a-cd4c8d86-histedit.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\issue5826_withrm\\.hg\\strip-backup/5c806432464a-cd4c8d86-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\issue5826_withrm\\.hg\\strip-backup/5c806432464a-5d8c62cf-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\issue5826_withrm\\.hg\\strip-backup/5c806432464a-5d8c62cf-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg log -T \'{rev}:{node|short} {desc}\\n\'\n-  1:b9eddaa97cbc add foo\n+  6:b9eddaa97cbc add foo\n   ***\n   add baz\n-  0:d17db4b0303a add bar\n+  5:94e3f9fae1d6 fold-temp-revision 9992bb0ac0db\n+  4:5c806432464a add foo\n+  3:d17db4b0303a add bar\n+  2:9992bb0ac0db add baz\n+  1:6274c77c93c3 add bar\n+  0:ff70a87b588f add foo\n \n #endif\n \n@@ -254,14 +469,88 @@\n   > fold 9992bb0ac0db 2 add baz\n   > EOF\n   saved backup bundle to $TESTTMP/issue5826_withrm/issue5826_norm/.hg/strip-backup/5c806432464a-cd4c8d86-histedit.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\issue5826_withrm\\issue5826_norm\\.hg\\strip-backup/5c806432464a-cd4c8d86-histedit.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\issue5826_withrm\\issue5826_norm\\.hg\\strip-backup/5c806432464a-5d8c62cf-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\issue5826_withrm\\issue5826_norm\\.hg\\strip-backup/5c806432464a-5d8c62cf-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: histedit\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1884, in histedit\n+      return _texthistedit(ui, repo, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 1892, in _texthistedit\n+      _histedit(ui, repo, state, freeargs, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2017, in _histedit\n+      _finishhistedit(ui, repo, state, fm)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2102, in _finishhistedit\n+      scmutil.cleanupnodes(repo, mapping, b\'histedit\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\extensions.py", line 512, in closure\n+      return func(*(args + a), **kw)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\histedit.py", line 2624, in stripwrapper\n+      return orig(ui, repo, nodelist, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Note the lack of a \'cd\' being necessary here, and we don\'t need to \'histedit\n --continue\'\n \n   $ hg log -T \'{rev}:{node|short} {desc}\\n\'\n-  1:b9eddaa97cbc add foo\n+  6:b9eddaa97cbc add foo\n   ***\n   add baz\n-  0:d17db4b0303a add bar\n+  5:94e3f9fae1d6 fold-temp-revision 9992bb0ac0db\n+  4:5c806432464a add foo\n+  3:d17db4b0303a add bar\n+  2:9992bb0ac0db add baz\n+  1:6274c77c93c3 add bar\n+  0:ff70a87b588f add foo\n \n   $ cd $TESTTMP\n', 2565, 2567, 'truncated \\uXXXX escape') decoding diff, sorry

test-rename-merge1.t

--- c:/hgdev/src/tests/test-rename-merge1.t
+++ c:/hgdev/src/tests/test-rename-merge1.t.err
@@ -216,8 +216,9 @@
   resolving manifests
    branchmerge: True, force: False, partial: False
    ancestor: 5151c134577e, local: 07fcbc9a74ed+, remote: f21419739508
+  starting 4 threads for background file closing
+  starting 4 threads for background file closing (?)
    preserving z for resolve of z
-  starting 4 threads for background file closing (?)
    z: both renamed from y -> m (premerge)
   picked tool ':merge3' for z (binary False symlink False changedelete False)
   merging z

test-rename-merge2.t

--- c:/hgdev/src/tests/test-rename-merge2.t
+++ c:/hgdev/src/tests/test-rename-merge2.t.err
@@ -85,11 +85,12 @@
   resolving manifests
    branchmerge: True, force: False, partial: False
    ancestor: 924404dff337, local: e300d1c794ec+, remote: 4ce40f5aca24
+  starting 4 threads for background file closing
    preserving a for resolve of b
+  starting 4 threads for background file closing (?)
    preserving rev for resolve of rev
   starting 4 threads for background file closing (?)
    b: remote copied from a -> m (premerge)
-  starting 4 threads for background file closing (?)
   picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
   merging a and b to b
   my b@e300d1c794ec+ other b@4ce40f5aca24 ancestor a@924404dff337
@@ -165,10 +166,11 @@
   resolving manifests
    branchmerge: True, force: False, partial: False
    ancestor: 924404dff337, local: e300d1c794ec+, remote: bdb19105162a
+  starting 4 threads for background file closing
    preserving a for resolve of b
    preserving rev for resolve of rev
+  starting 4 threads for background file closing (?)
   removing a
-  starting 4 threads for background file closing (?)
    b: remote moved from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
   merging a and b to b
@@ -204,9 +206,10 @@
   resolving manifests
    branchmerge: True, force: False, partial: False
    ancestor: 924404dff337, local: 02963e448370+, remote: f4db7e329e71
-   preserving b for resolve of b
-   preserving rev for resolve of rev
-  starting 4 threads for background file closing (?)
+  starting 4 threads for background file closing
+   preserving b for resolve of b
+  starting 4 threads for background file closing (?)
+   preserving rev for resolve of rev
    b: local copied/moved from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
   merging b and a to b
@@ -275,8 +278,9 @@
   resolving manifests
    branchmerge: True, force: False, partial: False
    ancestor: 924404dff337, local: 86a2aa42fc76+, remote: 97c705ade336
-   preserving rev for resolve of rev
-  starting 4 threads for background file closing (?)
+  starting 4 threads for background file closing
+  starting 4 threads for background file closing (?)
+   preserving rev for resolve of rev
    rev: versions differ -> m (premerge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
   merging rev
@@ -341,8 +345,9 @@
   resolving manifests
    branchmerge: True, force: False, partial: False
    ancestor: 924404dff337, local: 02963e448370+, remote: 97c705ade336
-   preserving rev for resolve of rev
-  starting 4 threads for background file closing (?)
+  starting 4 threads for background file closing
+  starting 4 threads for background file closing (?)
+   preserving rev for resolve of rev
    rev: versions differ -> m (premerge)
   picked tool '* ../merge' for rev (binary False symlink False changedelete False) (glob)
   merging rev
@@ -372,9 +377,10 @@
   resolving manifests
    branchmerge: True, force: False, partial: False
    ancestor: 924404dff337, local: 62e7bf090eba+, remote: 49b6d8032493
-   preserving b for resolve of b
-   preserving rev for resolve of rev
-  starting 4 threads for background file closing (?)
+  starting 4 threads for background file closing
+   preserving b for resolve of b
+  starting 4 threads for background file closing (?)
+   preserving rev for resolve of rev
    b: both renamed from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
   merging b
@@ -454,9 +460,10 @@
   resolving manifests
    branchmerge: True, force: False, partial: False
    ancestor: 924404dff337, local: 86a2aa42fc76+, remote: af30c7647fc7
-   preserving b for resolve of b
-   preserving rev for resolve of rev
-  starting 4 threads for background file closing (?)
+  starting 4 threads for background file closing
+   preserving b for resolve of b
+  starting 4 threads for background file closing (?)
+   preserving rev for resolve of rev
    b: both created -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
   merging b
@@ -496,9 +503,10 @@
    ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a
    a: other deleted -> r
   removing a
-   preserving b for resolve of b
-   preserving rev for resolve of rev
-  starting 4 threads for background file closing (?)
+  starting 4 threads for background file closing
+   preserving b for resolve of b
+  starting 4 threads for background file closing (?)
+   preserving rev for resolve of rev
    b: both created -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
   merging b
@@ -574,9 +582,10 @@
    ancestor: 924404dff337, local: 59318016310c+, remote: bdb19105162a
    a: other deleted -> r
   removing a
-   preserving b for resolve of b
-   preserving rev for resolve of rev
-  starting 4 threads for background file closing (?)
+  starting 4 threads for background file closing
+   preserving b for resolve of b
+  starting 4 threads for background file closing (?)
+   preserving rev for resolve of rev
    b: both created -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
   merging b
@@ -650,11 +659,12 @@
   resolving manifests
    branchmerge: True, force: False, partial: False
    ancestor: 924404dff337, local: 0b76e65c8289+, remote: 4ce40f5aca24
-   preserving b for resolve of b
+  starting 4 threads for background file closing
+   preserving b for resolve of b
+  starting 4 threads for background file closing (?)
    preserving rev for resolve of rev
   starting 4 threads for background file closing (?)
    b: both renamed from a -> m (premerge)
-  starting 4 threads for background file closing (?)
   picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
   merging b
   my b@0b76e65c8289+ other b@4ce40f5aca24 ancestor a@924404dff337
@@ -687,9 +697,10 @@
   resolving manifests
    branchmerge: True, force: False, partial: False
    ancestor: 924404dff337, local: 02963e448370+, remote: 8dbce441892a
-   preserving b for resolve of b
-   preserving rev for resolve of rev
-  starting 4 threads for background file closing (?)
+  starting 4 threads for background file closing
+   preserving b for resolve of b
+  starting 4 threads for background file closing (?)
+   preserving rev for resolve of rev
    b: both renamed from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
   merging b
@@ -722,9 +733,10 @@
   resolving manifests
    branchmerge: True, force: False, partial: False
    ancestor: 924404dff337, local: 0b76e65c8289+, remote: bdb19105162a
-   preserving b for resolve of b
-   preserving rev for resolve of rev
-  starting 4 threads for background file closing (?)
+  starting 4 threads for background file closing
+   preserving b for resolve of b
+  starting 4 threads for background file closing (?)
+   preserving rev for resolve of rev
    b: both renamed from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
   merging b
@@ -760,10 +772,11 @@
   resolving manifests
    branchmerge: True, force: False, partial: False
    ancestor: 924404dff337, local: e300d1c794ec+, remote: 49b6d8032493
+  starting 4 threads for background file closing
    preserving a for resolve of b
    preserving rev for resolve of rev
+  starting 4 threads for background file closing (?)
   removing a
-  starting 4 threads for background file closing (?)
    b: remote moved from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
   merging a and b to b
@@ -803,9 +816,10 @@
   resolving manifests
    branchmerge: True, force: False, partial: False
    ancestor: 924404dff337, local: 62e7bf090eba+, remote: f4db7e329e71
-   preserving b for resolve of b
-   preserving rev for resolve of rev
-  starting 4 threads for background file closing (?)
+  starting 4 threads for background file closing
+   preserving b for resolve of b
+  starting 4 threads for background file closing (?)
+   preserving rev for resolve of rev
    b: local copied/moved from a -> m (premerge)
   picked tool '* ../merge' for b (binary False symlink False changedelete False) (glob)
   merging b and a to b

test-rename-rev.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rename-rev.t\n+++ c:/hgdev/src/tests/test-rename-rev.t.err\n@@ -36,6 +36,67 @@\n # Successful invocation\n   $ hg cp -A --at-rev . d1/b d1/d\n   saved backup bundle to $TESTTMP/.hg/strip-backup/8a9d70fa20c9-973ae357-copy.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\.hg\\strip-backup/8a9d70fa20c9-973ae357-copy.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\.hg\\strip-backup/8a9d70fa20c9-46f377bb-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\.hg\\strip-backup/8a9d70fa20c9-46f377bb-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2405, in copy\n+      return cmdutil.copy(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 1608, in copy\n+      scmutil.cleanupnodes(repo, replacements, b\'copy\', fixphase=True)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n # New copy is recorded, and previously recorded copy is also still there\n   $ hg st -C --change .\n   A d1/c\n@@ -51,57 +112,81 @@\n   $ hg rm -A d1/b\n   $ hg add d1/d\n   $ hg ci -m \'move d1/b to d1/d\'\n-  created new head\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg cp -A --at-rev . d1/b d1/d\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/519850c3ea27-153c8fbb-copy.hg\n+  abort: cannot uncopy changeset with children\n+  [10]\n   $ hg st -C --change .\n-  A d1/d\n-    d1/b\n-  R d1/b\n+  A d1/a\n+  A d1/b\n+  A d1/ba\n+  A d1/d11/a1\n+  A d2/b\n \n Test moved file (not copied) using \'hg mv\' command\n \n   $ hg co 0\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ mv d1/b d1/d\n+  mv: cannot stat `d1/b\': $ENOENT$\n+  [1]\n   $ hg rm -A d1/b\n   $ hg add d1/d\n+  d1/d already tracked!\n   $ hg ci -m \'move d1/b to d1/d\'\n-  created new head\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg mv -A --at-rev . d1/b d1/d\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/519850c3ea27-153c8fbb-copy.hg\n+  abort: cannot uncopy changeset with children\n+  [10]\n   $ hg st -C --change .\n-  A d1/d\n-    d1/b\n-  R d1/b\n+  A d1/a\n+  A d1/b\n+  A d1/ba\n+  A d1/d11/a1\n+  A d2/b\n \n Test moved file (not copied) for which source still exists\n \n   $ hg co 0\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ cp d1/b d1/d\n+  cp: cannot stat `d1/b\': $ENOENT$\n+  [1]\n   $ hg add d1/d\n+  d1/d already tracked!\n   $ hg ci -m \'copy d1/b to d1/d\'\n-  created new head\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg mv -A --at-rev . d1/b d1/d\n-  saved backup bundle to $TESTTMP/.hg/strip-backup/c8d0f6bcf7ca-1c9bb53e-copy.hg\n+  abort: cannot uncopy changeset with children\n+  [10]\n   $ hg st -C --change .\n-  A d1/d\n-    d1/b\n+  A d1/a\n+  A d1/b\n+  A d1/ba\n+  A d1/d11/a1\n+  A d2/b\n \n Test using directory as destination\n \n   $ hg co 0\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ cp -R d1 d3\n   $ hg add d3\n   adding d3/a\n-  adding d3/b\n   adding d3/ba\n+  adding d3/d\n   adding d3/d11/a1\n   $ hg ci -m \'copy d1/ to d3/\'\n-  created new head\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg cp -A --at-rev . d1 d3\n-  abort: d3: --at-rev does not support a directory as destination\n+  abort: cannot uncopy changeset with children\n   [10]\n \n', 2475, 2477, 'truncated \\uXXXX escape') decoding diff, sorry

test-repo-compengines.t

--- c:/hgdev/src/tests/test-repo-compengines.t
+++ c:/hgdev/src/tests/test-repo-compengines.t.err
@@ -117,9 +117,8 @@
 
   $ $RUNTESTDIR/f -s */.hg/store/data/*
   default/.hg/store/data/foo.i: size=64 (pure !)
-  zlib-level-1/.hg/store/data/a.i: size=4146
-  zlib-level-9/.hg/store/data/a.i: size=4138
-  zlib-level-default/.hg/store/data/a.i: size=4138
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
 Test error cases
 

test-resolve.t

--- c:/hgdev/src/tests/test-resolve.t
+++ c:/hgdev/src/tests/test-resolve.t.err
@@ -231,11 +231,9 @@
 test .orig behavior with resolve
 
   $ hg resolve -q file1 --tool "sh -c 'f --dump "$TESTTMP/repo/file1.orig"'"
-  $TESTTMP/repo/file1.orig:
-  >>>
-  foo
-  baz
-  <<<
+  /usr/bin/env: python3: $ENOENT$
+  merging file1 failed!
+  [1]
 
 resolve <file> should do nothing if 'file' was marked resolved
   $ echo resolved > file1

test-revlog-mmapindex.t

--- c:/hgdev/src/tests/test-revlog-mmapindex.t
+++ c:/hgdev/src/tests/test-revlog-mmapindex.t.err
@@ -29,6 +29,7 @@
   > echo $i > a
   > hg commit -qm $i
   > done
+  /usr/bin/env: python3: $ENOENT$
 
 set up verbosemmap extension
   $ cat << EOF >> $HGRCPATH
@@ -38,19 +39,10 @@
 
 mmap index which is now more than 4k long
   $ hg log -l 5 -T '{rev}
' --config experimental.mmapindexthreshold=4k
-  mmapping $TESTTMP/a/.hg/store/00changelog.i
-  100
-  99
-  98
-  97
-  96
+  0
 
 do not mmap index which is still less than 32k
   $ hg log -l 5 -T '{rev}
' --config experimental.mmapindexthreshold=32k
-  100
-  99
-  98
-  97
-  96
+  0
 
   $ cd ..

test-rollback.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-rollback.t\n+++ c:/hgdev/src/tests/test-rollback.t.err\n@@ -100,10 +100,60 @@\n \n   $ echo a >> a\n   $ hg --config hooks.pretxncommit=false commit -m"precious commit message"\n-  transaction abort!\n-  rollback completed\n-  abort: pretxncommit hook exited with status * (glob)\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2127, in _docommit\n+      node = cmdutil.commit(ui, repo, commitfunc, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2754, in commit\n+      return commitfunc(ui, repo, message, matcher, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2124, in commitfunc\n+      extra=extra,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cat .hg/last-message.txt ; echo\n   precious commit message\n \n@@ -113,11 +163,10 @@\n   > echo "another precious commit message" > "$1"\n   > __EOF__\n   $ HGEDITOR="\\"sh\\" \\"`pwd`/editor.sh\\"" hg --config hooks.pretxncommit=false commit 2>&1\n-  transaction abort!\n-  rollback completed\n   note: commit message saved in .hg/last-message.txt\n   note: use \'hg commit --logfile .hg/last-message.txt --edit\' to reuse it\n-  abort: pretxncommit hook exited with status * (glob)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ cat .hg/last-message.txt\n   another precious commit message\n@@ -164,30 +213,41 @@\n   $ echo \'valuable modification\' >> a\n   $ hg commit -A -m\'a valuable change\'\n   adding b\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg update 0\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg rollback\n-  abort: rollback of last commit while not checked out may lose data\n-  (use -f to force)\n-  [255]\n+  repository tip rolled back to revision 1 (undo bookmark)\n   $ hg tip -q\n-  2:4d9cd3795eea\n+  1:791dd2169706\n   $ hg rollback -f\n-  repository tip rolled back to revision 1 (undo commit)\n+  no rollback information available\n+  [1]\n   $ hg status\n+  M a\n+  ? b\n   $ hg log --removed b   # yep, it\'s gone\n \n same again, but emulate an old client that doesn\'t write undo.desc\n   $ hg -q update\n   $ echo \'valuable modification redux\' >> a\n   $ hg commit -m\'a valuable change redux\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rm .hg/undo.desc\n   $ hg update 0\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg rollback\n-  rolling back unknown transaction\n+  no rollback information available\n+  [1]\n   $ cat a\n   a\n+  a\n+  valuable modification\n+  valuable modification redux\n \n corrupt journal test\n   $ echo "foo" > .hg/store/journal\n@@ -377,15 +437,67 @@\n \n   $ echo 1 > foo\n   $ hg --config ui.ioerrors=msgabort --config hooks.pretxncommit=false commit -m \'error during abort message\'\n-  warn during abort\n-  rollback completed\n-  abort: pretxncommit hook exited with status 1\n+  ** Unknown exception encountered with possibly-broken third-party extension "badui" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "badui" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: badui\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2127, in _docommit\n+      node = cmdutil.commit(ui, repo, commitfunc, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2754, in commit\n+      return commitfunc(ui, repo, message, matcher, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2124, in commitfunc\n+      extra=extra,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+\n+  $ hg commit -m \'commit 1\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n-\n-  $ hg commit -m \'commit 1\'\n-  warn during pretxncommit\n-  warn during pretxnclose\n-  warn during txnclose\n \n   $ cd ..\n \n@@ -402,15 +514,67 @@\n \n   $ echo 1 > foo\n   $ hg --config ui.ioerrors=txnabort --config hooks.pretxncommit=false commit -m \'error during abort\'\n-  transaction abort!\n-  rollback completed\n-  abort: pretxncommit hook exited with status 1\n+  ** Unknown exception encountered with possibly-broken third-party extension "badui" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "badui" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: badui\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2127, in _docommit\n+      node = cmdutil.commit(ui, repo, commitfunc, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2754, in commit\n+      return commitfunc(ui, repo, message, matcher, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2124, in commitfunc\n+      extra=extra,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+\n+  $ hg commit -m \'commit 1\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n-\n-  $ hg commit -m \'commit 1\'\n-  warn during pretxncommit\n-  warn during pretxnclose\n-  warn during txnclose\n \n   $ cd ..\n \n@@ -428,17 +592,77 @@\n   $ echo 1 > foo\n \n   $ hg --config ui.ioerrors=msgrollback --config hooks.pretxncommit=false commit -m \'error during rollback message\'\n-  transaction abort!\n-  warn during abort\n-  abort: pretxncommit hook exited with status 1\n-  [255]\n+  ** Unknown exception encountered with possibly-broken third-party extension "badui" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "badui" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: badui\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2127, in _docommit\n+      node = cmdutil.commit(ui, repo, commitfunc, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2754, in commit\n+      return commitfunc(ui, repo, message, matcher, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2124, in commitfunc\n+      extra=extra,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg verify\n+  abandoned transaction found - run hg recover\n   checking changesets\n   checking manifests\n+   manifest@?: rev 1 points to nonexistent changeset 1\n+   manifest@?: 94e0ee43dbfe not in changesets\n   crosschecking files in changesets and manifests\n   checking files\n-  checked 1 changesets with 1 changes to 1 files\n+   foo@?: rev 1 points to nonexistent changeset 1\n+   (expected 0)\n+  checked 1 changesets with 2 changes to 1 files\n+  1 warnings encountered!\n+  3 integrity errors encountered!\n+  [1]\n \n   $ cd ..\n \n', 2206, 2208, 'truncated \\uXXXX escape') decoding diff, sorry

test-run-tests.t

--- c:/hgdev/src/tests/test-run-tests.t
+++ c:/hgdev/src/tests/test-run-tests.t.err
@@ -92,8 +92,27 @@
 
   $ rt
   running 1 tests using 1 parallel processes 
-  .
-  # Ran 1 tests, 0 skipped, 0 failed.
+  
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  
+  ERROR: test-success.t output changed
+  !
+  Failed test-success.t: output changed
+  # Ran 1 tests, 0 skipped, 1 failed.
+  python hash seed: 3448122194
+  [1]
 
 failing test
 ==================
@@ -246,33 +265,41 @@
   
   --- $TESTTMP/test-failure.t
   +++ $TESTTMP/test-failure.t.err
-  @@ -1,11 +1,9 @@
-     $ true
+  @@ -8,6 +8,7 @@
+     baz*foo (glob) (true !)
   -  should go away (true !)
-     $ true
+     foobar*foo (glob) (false !)
      should stay (false !)
+     te*ting (glob) (true !)
+  +  testing
    
-   Should remove first line, not second or third
-     $ echo 'testing'
   -  baz*foo (glob) (true !)
      foobar*foo (glob) (false !)
      te*ting (glob) (true !)
-   
+   Should keep first two lines, remove third and last
      foo.ar (re) (false !)
      missing (?)
-  @@ -13,13 +11,10 @@
      $ echo 'testing'
+  @@ -16,10 +17,11 @@
      test.ng (re) (true !)
      foo.ar (re) (false !)
   -  b.r (re) (true !)
      missing (?)
   -  awol (true !)
+     b.r (re) (true !)
+     missing (?)
+     awol (true !)
+     test.ng (re) (true !)
+     foo.ar (?)
+  +  testing
+     missing (?)
    
    The "missing" line should stay, even though awol is dropped
      $ echo 'testing'
      test.ng (re) (true !)
      foo.ar (?)
   -  awol
+  +  testing
      missing (?)
   
   ERROR: test-failure.t output changed
@@ -314,7 +341,23 @@
    pad pad pad pad............................................................
   
   ERROR: test-failure.t output changed
-  !.
+  !
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  
+  ERROR: test-success.t output changed
+  !
   --- $TESTTMP/test-failure-unicode.t
   +++ $TESTTMP/test-failure-unicode.t.err
   @@ -1,2 +1,2 @@
@@ -326,7 +369,8 @@
   !
   Failed test-failure-unicode.t: output changed
   Failed test-failure.t: output changed
-  # Ran 3 tests, 0 skipped, 2 failed.
+  Failed test-success.t: output changed
+  # Ran 3 tests, 0 skipped, 3 failed.
   python hash seed: * (glob)
   [1]
 
@@ -346,7 +390,23 @@
    pad pad pad pad............................................................
   
   ERROR: test-failure.t output changed
-  !.
+  !
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/output/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  
+  ERROR: test-success.t output changed
+  !
   --- $TESTTMP/test-failure-unicode.t
   +++ $TESTTMP/output/test-failure-unicode.t.err
   @@ -1,2 +1,2 @@
@@ -358,7 +418,8 @@
   !
   Failed test-failure-unicode.t: output changed
   Failed test-failure.t: output changed
-  # Ran 3 tests, 0 skipped, 2 failed.
+  Failed test-success.t: output changed
+  # Ran 3 tests, 0 skipped, 3 failed.
   python hash seed: * (glob)
   [1]
   $ ls -a output
@@ -367,6 +428,7 @@
   .testtimes
   test-failure-unicode.t.err
   test-failure.t.err
+  test-success.t.err
 
 test --xunit support
   $ rt --xunit=xunit.xml
@@ -383,7 +445,23 @@
    pad pad pad pad............................................................
   
   ERROR: test-failure.t output changed
-  !.
+  !
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  
+  ERROR: test-success.t output changed
+  !
   --- $TESTTMP/test-failure-unicode.t
   +++ $TESTTMP/test-failure-unicode.t.err
   @@ -1,2 +1,2 @@
@@ -395,39 +473,62 @@
   !
   Failed test-failure-unicode.t: output changed
   Failed test-failure.t: output changed
-  # Ran 3 tests, 0 skipped, 2 failed.
+  Failed test-success.t: output changed
+  # Ran 3 tests, 0 skipped, 3 failed.
   python hash seed: * (glob)
   [1]
   $ cat xunit.xml
   <?xml version="1.0" encoding="utf-8"?>
-  <testsuite errors="0" failures="2" name="run-tests" skipped="0" tests="3">
-    <testcase name="test-success.t" time="*"/> (glob)
+  <testsuite errors="0" failures="3" name="run-tests" skipped="0" tests="3">
     <testcase name="test-failure-unicode.t" time="*"> (glob)
       <failure message="output changed" type="output-mismatch"><![CDATA[--- $TESTTMP/test-failure-unicode.t (py38 !)
       <failure message="output changed" type="output-mismatch"> (no-py38 !)
   <![CDATA[--- $TESTTMP/test-failure-unicode.t (no-py38 !)
+      <failure message="output changed" type="output-mismatch">
+  <![CDATA[--- $TESTTMP/test-failure-unicode.t
   +++ $TESTTMP/test-failure-unicode.t.err
   @@ -1,2 +1,2 @@
      $ echo babarα (esc)
-  -  lεεt (esc)
-  +  babarα (esc)
   ]]></failure> (py38 !)
   ]]>    </failure> (no-py38 !)
-    </testcase>
-    <testcase name="test-failure.t" time="*"> (glob)
+  -  lεεt (esc)
       <failure message="output changed" type="output-mismatch"><![CDATA[--- $TESTTMP/test-failure.t (py38 !)
       <failure message="output changed" type="output-mismatch"> (no-py38 !)
   <![CDATA[--- $TESTTMP/test-failure.t (no-py38 !)
+  +  babarα (esc)
+  ]]>    </failure>
+    </testcase>
+    <testcase name="test-failure.t" time="*"> (glob)
+      <failure message="output changed" type="output-mismatch">
+  <![CDATA[--- $TESTTMP/test-failure.t
   +++ $TESTTMP/test-failure.t.err
   @@ -1,5 +1,5 @@
      $ echo babar
+  ]]></failure> (py38 !)
+  ]]>    </failure> (no-py38 !)
   -  rataxes
   +  babar
    This is a noop statement so that
    this test is still more bytes than success.
    pad pad pad pad............................................................
-  ]]></failure> (py38 !)
-  ]]>    </failure> (no-py38 !)
+  ]]>    </failure>
+    </testcase>
+    <testcase name="test-success.t" time="0.250">
+      <failure message="output changed" type="output-mismatch">
+  <![CDATA[--- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  ]]>    </failure>
     </testcase>
   </testsuite>
 
@@ -497,7 +598,7 @@
 ====================
 
   $ rt --retest
-  running 1 tests using 1 parallel processes 
+  running 2 tests using 1 parallel processes 
   
   --- $TESTTMP/test-failure.t
   +++ $TESTTMP/test-failure.t.err
@@ -511,8 +612,25 @@
   
   ERROR: test-failure.t output changed
   !
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  
+  ERROR: test-success.t output changed
+  !
   Failed test-failure.t: output changed
-  # Ran 1 tests, 0 skipped, 1 failed.
+  Failed test-success.t: output changed
+  # Ran 2 tests, 0 skipped, 2 failed.
   python hash seed: * (glob)
   [1]
 
@@ -547,14 +665,52 @@
 
   $ rt test-success.t
   running 1 tests using 1 parallel processes 
-  .
-  # Ran 1 tests, 0 skipped, 0 failed.
+  
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  
+  ERROR: test-success.t output changed
+  !
+  Failed test-success.t: output changed
+  # Ran 1 tests, 0 skipped, 1 failed.
+  python hash seed: 3448122194
+  [1]
 
 success w/ keyword
   $ rt -k xyzzy
   running 2 tests using 1 parallel processes 
-  .
-  # Ran 2 tests, 1 skipped, 0 failed.
+  
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  
+  ERROR: test-success.t output changed
+  !
+  Failed test-success.t: output changed
+  # Ran 2 tests, 1 skipped, 1 failed.
+  python hash seed: 3448122194
+  [1]
 
 failed
 
@@ -642,6 +798,8 @@
   # Ran 1 tests, 0 skipped, 0 failed.
   $ rm test-serve-inuse.t
   $ killdaemons.py $DAEMON_PIDS
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
 Running In Debug Mode
 ======================
@@ -649,13 +807,15 @@
   $ rt --debug 2>&1 | grep -v pwd
   running 2 tests using 1 parallel processes 
   + alias hg=hg.exe (windows !)
+  + alias hg=hg.exe
   + echo *SALT* 0 0 (glob)
   *SALT* 0 0 (glob)
   + echo babar
+  .+ alias hg=hg.exe (windows !)
   babar
   + echo *SALT* 10 0 (glob)
   *SALT* 10 0 (glob)
-  .+ alias hg=hg.exe (windows !)
+  .+ alias hg=hg.exe
   *+ echo *SALT* 0 0 (glob)
   *SALT* 0 0 (glob)
   + echo babar
@@ -724,8 +884,44 @@
 
   $ rt --jobs 2 --runs-per-test 2 test-success.t
   running 2 tests using 2 parallel processes 
-  ..
-  # Ran 2 tests, 0 skipped, 0 failed.
+  
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  
+  ERROR: test-success.t output changed
+  !
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  
+  ERROR: test-success.t output changed
+  !
+  Failed test-success.t: output changed
+  Failed test-success.t: output changed
+  # Ran 2 tests, 0 skipped, 2 failed.
+  python hash seed: 3448122194
+  [1]
 
 Interactive run
 ===============
@@ -749,9 +945,26 @@
    pad pad pad pad............................................................
   Accept this change? [y/N] 
   ERROR: test-failure.t output changed
-  !.
+  !
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  Accept this change? [y/N] 
+  ERROR: test-success.t output changed
+  !
   Failed test-failure.t: output changed
-  # Ran 2 tests, 0 skipped, 1 failed.
+  Failed test-success.t: output changed
+  # Ran 2 tests, 0 skipped, 2 failed.
   python hash seed: * (glob)
   [1]
 
@@ -774,9 +987,13 @@
   $TESTTMP/test-failure.t $TESTTMP/test-failure.t.err
   Accept this change? [y/N]* (glob)
   ERROR: test-failure.t output changed
-  !.
+  !$TESTTMP	est-success.t $TESTTMP	est-success.t.err
+  Accept this change? [y/N] 
+  ERROR: test-success.t output changed
+  !
   Failed test-failure.t: output changed
-  # Ran 2 tests, 0 skipped, 1 failed.
+  Failed test-success.t: output changed
+  # Ran 2 tests, 0 skipped, 2 failed.
   python hash seed: * (glob)
   [1]
 
@@ -787,9 +1004,13 @@
   $TESTTMP/test-failure.t $TESTTMP/test-failure.t.err
   
   ERROR: test-failure.t output changed
-  !.
+  !$TESTTMP	est-success.t $TESTTMP	est-success.t.err
+  
+  ERROR: test-success.t output changed
+  !
   Failed test-failure.t: output changed
-  # Ran 2 tests, 0 skipped, 1 failed.
+  Failed test-success.t: output changed
+  # Ran 2 tests, 0 skipped, 2 failed.
   python hash seed: * (glob)
   [1]
 
@@ -823,8 +1044,27 @@
   +  saved backup bundle to $TESTTMP/foo.hg
      $ echo 'saved backup bundle to $TESTTMP/foo.hg'
      saved backup bundle to $TESTTMP/*.hg (glob)
-  Accept this change? [y/N] ..
-  # Ran 2 tests, 0 skipped, 0 failed.
+  Accept this change? [y/N] .
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  Accept this change? [y/N] 
+  ERROR: test-success.t output changed
+  !
+  Failed test-success.t: output changed
+  # Ran 2 tests, 0 skipped, 1 failed.
+  python hash seed: 3448122194
+  [1]
 
   $ sed -e 's,(glob)$,&<,g' test-failure.t
     $ echo babar
@@ -891,38 +1131,16 @@
   > y
   > EOF
   running 2 tests using 1 parallel processes 
-  
-  --- $TESTTMP/test-cases.t
-  +++ $TESTTMP/test-cases.t#a.err
-  @@ -1,6 +1,7 @@
-   #testcases a b
-   #if a
-     $ echo 1
-  +  1
-   #endif
-   #if b
-     $ echo 2
-  Accept this change? [y/N] .
-  --- $TESTTMP/test-cases.t
-  +++ $TESTTMP/test-cases.t#b.err
-  @@ -5,4 +5,5 @@
-   #endif
-   #if b
-     $ echo 2
-  +  2
-   #endif
-  Accept this change? [y/N] .
+  ..
   # Ran 2 tests, 0 skipped, 0 failed.
 
   $ cat test-cases.t
   #testcases a b
   #if a
     $ echo 1
-    1
   #endif
   #if b
     $ echo 2
-    2
   #endif
 
   $ cat >> test-cases.t <<'EOF'
@@ -937,8 +1155,32 @@
   > EOF
   $ rt test-cases.t
   running 2 tests using 1 parallel processes 
-  ..
-  # Ran 2 tests, 0 skipped, 0 failed.
+  
+  --- $TESTTMP/test-cases.t
+  +++ $TESTTMP/test-cases.t#a.err
+  @@ -13,3 +13,4 @@
+     $ echo $NAME
+     A (a !)
+     B (b !)
+  +  B
+  
+  ERROR: test-cases.t#a output changed
+  !
+  --- $TESTTMP/test-cases.t
+  +++ $TESTTMP/test-cases.t#b.err
+  @@ -13,3 +13,4 @@
+     $ echo $NAME
+     A (a !)
+     B (b !)
+  +  B
+  
+  ERROR: test-cases.t#b output changed
+  !
+  Failed test-cases.t#a: output changed
+  Failed test-cases.t#b: output changed
+  # Ran 2 tests, 0 skipped, 2 failed.
+  python hash seed: 3448122194
+  [1]
 
 When using multiple dimensions of "#testcases" in .t files
 
@@ -956,44 +1198,35 @@
   > EOF
   $ rt test-cases.t
   running 4 tests using 1 parallel processes 
-  ..
-  --- $TESTTMP/test-cases.t
-  +++ $TESTTMP/test-cases.t#b#c.err
-  @@ -6,5 +6,5 @@
-   #endif
-   #if b c
-     $ echo yes
-  -  no
-  +  yes
-   #endif
-  
-  ERROR: test-cases.t#b#c output changed
-  !.
-  Failed test-cases.t#b#c: output changed
-  # Ran 4 tests, 0 skipped, 1 failed.
-  python hash seed: * (glob)
-  [1]
+  ....
+  # Ran 4 tests, 0 skipped, 0 failed.
 
   $ rt --retest
   running 1 tests using 1 parallel processes 
   
-  --- $TESTTMP/test-cases.t
-  +++ $TESTTMP/test-cases.t#b#c.err
-  @@ -6,5 +6,5 @@
-   #endif
-   #if b c
-     $ echo yes
-  -  no
-  +  yes
-   #endif
-  
-  ERROR: test-cases.t#b#c output changed
-  !
-  Failed test-cases.t#b#c: output changed
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  
+  ERROR: test-success.t output changed
+  !
+  Failed test-success.t: output changed
   # Ran 1 tests, 0 skipped, 1 failed.
   python hash seed: * (glob)
   [1]
   $ rm test-cases.t#b#c.err
+  rm: cannot lstat `test-cases.t#b#c.err': $ENOENT$
+  [1]
   $ rm test-cases.t
 
 (reinstall)
@@ -1003,10 +1236,13 @@
 ===============
 
   $ rt --nodiff
-  running 2 tests using 1 parallel processes 
-  !.
+  running 4 tests using 1 parallel processes 
+  ss!!
+  Skipped test-cases.t: Doesn't exist
+  Skipped test-cases.t: Doesn't exist
   Failed test-failure.t: output changed
-  # Ran 2 tests, 0 skipped, 1 failed.
+  Failed test-success.t: output changed
+  # Ran 2 tests, 2 skipped, 2 failed.
   python hash seed: * (glob)
   [1]
 
@@ -1014,10 +1250,29 @@
   $ rt --tmpdir=$TESTTMP/keep test-success.t
   running 1 tests using 1 parallel processes 
   
-  Keeping testtmp dir: $TESTTMP/keep/child1/test-success.t
-  Keeping threadtmp dir: $TESTTMP/keep/child1 
-  .
-  # Ran 1 tests, 0 skipped, 0 failed.
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  
+  ERROR: test-success.t output changed
+  !
+  Keeping testtmp dir: $TESTTMP\keep\child1	est-success.t
+  Keeping threadtmp dir: $TESTTMP\keep\child1 
+  
+  Failed test-success.t: output changed
+  # Ran 1 tests, 0 skipped, 1 failed.
+  python hash seed: 3448122194
+  [1]
 
 timeouts
 ========
@@ -1031,7 +1286,7 @@
   $ rt --timeout=1 --slowtimeout=3 test-timeout.t test-slow-timeout.t
   running 2 tests using 1 parallel processes 
   st
-  Skipped test-slow-timeout.t: missing feature: allow slow tests (use --allow-slow-tests)
+  Skipped test-slow-timeout.t: skipped
   Failed test-timeout.t: timed out
   # Ran 1 tests, 1 skipped, 1 failed.
   python hash seed: * (glob)
@@ -1039,9 +1294,10 @@
   $ rt --timeout=1 --slowtimeout=3    > test-timeout.t test-slow-timeout.t --allow-slow-tests
   running 2 tests using 1 parallel processes 
-  .t
+  st
+  Skipped test-slow-timeout.t: skipped
   Failed test-timeout.t: timed out
-  # Ran 2 tests, 0 skipped, 1 failed.
+  # Ran 1 tests, 1 skipped, 1 failed.
   python hash seed: * (glob)
   [1]
   $ rm test-timeout.t test-slow-timeout.t
@@ -1051,22 +1307,60 @@
 
   $ rt test-success.t --time
   running 1 tests using 1 parallel processes 
-  .
-  # Ran 1 tests, 0 skipped, 0 failed.
+  
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  
+  ERROR: test-success.t output changed
+  !
+  Failed test-success.t: output changed
+  # Ran 1 tests, 0 skipped, 1 failed.
+  python hash seed: 3448122194
   # Producing time report
   start   end     cuser   csys    real      Test
   \s*[\d\.]{5,8} \s*[\d\.]{5,8} \s*[\d\.]{5,8} \s*[\d\.]{5,8} \s*[\d\.]{5,8}   test-success.t (re)
+  [1]
 
 test for --time with --job enabled
 ====================================
 
   $ rt test-success.t --time --jobs 2
   running 1 tests using 1 parallel processes 
-  .
-  # Ran 1 tests, 0 skipped, 0 failed.
+  
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  
+  ERROR: test-success.t output changed
+  !
+  Failed test-success.t: output changed
+  # Ran 1 tests, 0 skipped, 1 failed.
+  python hash seed: 3448122194
   # Producing time report
   start   end     cuser   csys    real      Test
   \s*[\d\.]{5,8} \s*[\d\.]{5,8} \s*[\d\.]{5,8} \s*[\d\.]{5,8} \s*[\d\.]{5,8}   test-success.t (re)
+  [1]
 
 Skips
 ================
@@ -1082,36 +1376,140 @@
   > #endif
   > EOF
   $ rt --nodiff
-  running 4 tests using 1 parallel processes 
-  !.s.
-  Skipped test-skip.t: missing feature: nail clipper
+  running 6 tests using 1 parallel processes 
+  ss!!!.
+  Skipped test-cases.t: Doesn't exist
+  Skipped test-cases.t: Doesn't exist
   Failed test-failure.t: output changed
-  # Ran 3 tests, 1 skipped, 1 failed.
+  Failed test-skip.t: output changed
+  Failed test-success.t: output changed
+  # Ran 4 tests, 2 skipped, 3 failed.
   python hash seed: * (glob)
   [1]
 
   $ rm test-noskip.t
   $ rt --keyword xyzzy
-  running 3 tests using 1 parallel processes 
-  .s
-  Skipped test-skip.t: missing feature: nail clipper
-  # Ran 2 tests, 2 skipped, 0 failed.
+  running 5 tests using 1 parallel processes 
+  ss
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  
+  ERROR: test-success.t output changed
+  !
+  --- $TESTTMP/test-skip.t
+  +++ $TESTTMP/test-skip.t.err
+  @@ -1,4 +1,6 @@
+     $ echo xyzzy
+  +  xyzzy
+   #if true
+   #require false
+   #end
+  +  !!! missing #endif
+  
+  ERROR: test-skip.t output changed
+  !
+  Skipped test-cases.t: Doesn't exist
+  Skipped test-cases.t: Doesn't exist
+  Failed test-skip.t: output changed
+  Failed test-success.t: output changed
+  # Ran 3 tests, 3 skipped, 2 failed.
+  python hash seed: 3448122194
+  [1]
 
 Skips with xml
   $ rt --keyword xyzzy    >  --xunit=xunit.xml
-  running 3 tests using 1 parallel processes 
-  .s
-  Skipped test-skip.t: missing feature: nail clipper
-  # Ran 2 tests, 2 skipped, 0 failed.
+  running 5 tests using 1 parallel processes 
+  ss
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  
+  ERROR: test-success.t output changed
+  !
+  --- $TESTTMP/test-skip.t
+  +++ $TESTTMP/test-skip.t.err
+  @@ -1,4 +1,6 @@
+     $ echo xyzzy
+  +  xyzzy
+   #if true
+   #require false
+   #end
+  +  !!! missing #endif
+  
+  ERROR: test-skip.t output changed
+  !
+  Skipped test-cases.t: Doesn't exist
+  Skipped test-cases.t: Doesn't exist
+  Failed test-skip.t: output changed
+  Failed test-success.t: output changed
+  # Ran 3 tests, 3 skipped, 2 failed.
+  python hash seed: 3448122194
+  [1]
   $ cat xunit.xml
   <?xml version="1.0" encoding="utf-8"?>
-  <testsuite errors="0" failures="0" name="run-tests" skipped="2" tests="2">
-    <testcase name="test-success.t" time="*"/> (glob)
-    <testcase name="test-skip.t">
+  <testsuite errors="0" failures="2" name="run-tests" skipped="3" tests="3">
+    <testcase name="test-skip.t" time="0.094">
       <skipped><![CDATA[missing feature: nail clipper]]></skipped> (py38 !)
       <skipped> (no-py38 !)
   <![CDATA[missing feature: nail clipper]]>    </skipped> (no-py38 !)
+      <failure message="output changed" type="output-mismatch">
+  <![CDATA[--- $TESTTMP/test-skip.t
+  +++ $TESTTMP/test-skip.t.err
+  @@ -1,4 +1,6 @@
+     $ echo xyzzy
+  +  xyzzy
+   #if true
+   #require false
+   #end
+  +  !!! missing #endif
+  ]]>    </failure>
+    </testcase>
+    <testcase name="test-success.t" time="0.250">
+      <failure message="output changed" type="output-mismatch">
+  <![CDATA[--- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  ]]>    </failure>
+    </testcase>
+    <testcase name="test-cases.t">
+      <skipped>
+  <![CDATA[Doesn't exist]]>    </skipped>
+    </testcase>
+    <testcase name="test-cases.t">
+      <skipped>
+  <![CDATA[Doesn't exist]]>    </skipped>
     </testcase>
   </testsuite>
 
@@ -1163,22 +1561,60 @@
   $ echo test-success.t >> onlytest
   $ rt --test-list=onlytest
   running 1 tests using 1 parallel processes 
-  .
-  # Ran 1 tests, 0 skipped, 0 failed.
+  
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  
+  ERROR: test-success.t output changed
+  !
+  Failed test-success.t: output changed
+  # Ran 1 tests, 0 skipped, 1 failed.
+  python hash seed: 3448122194
+  [1]
   $ echo test-bogus.t >> anothertest
   $ rt --test-list=onlytest --test-list=anothertest
   running 2 tests using 1 parallel processes 
-  s.
+  s
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  
+  ERROR: test-success.t output changed
+  !
   Skipped test-bogus.t: Doesn't exist
-  # Ran 1 tests, 1 skipped, 0 failed.
+  Failed test-success.t: output changed
+  # Ran 1 tests, 1 skipped, 1 failed.
+  python hash seed: 3448122194
+  [1]
   $ rm onlytest anothertest
 
 test for --json
 ==================
 
   $ rt --json
-  running 3 tests using 1 parallel processes 
-  
+  running 5 tests using 1 parallel processes 
+  ss
   --- $TESTTMP/test-failure.t
   +++ $TESTTMP/test-failure.t.err
   @@ -1,5 +1,5 @@
@@ -1190,15 +1626,49 @@
    pad pad pad pad............................................................
   
   ERROR: test-failure.t output changed
-  !.s
-  Skipped test-skip.t: missing feature: nail clipper
+  !
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  
+  ERROR: test-success.t output changed
+  !
+  --- $TESTTMP/test-skip.t
+  +++ $TESTTMP/test-skip.t.err
+  @@ -1,4 +1,6 @@
+     $ echo xyzzy
+  +  xyzzy
+   #if true
+   #require false
+   #end
+  +  !!! missing #endif
+  
+  ERROR: test-skip.t output changed
+  !
+  Skipped test-cases.t: Doesn't exist
+  Skipped test-cases.t: Doesn't exist
   Failed test-failure.t: output changed
-  # Ran 2 tests, 1 skipped, 1 failed.
+  Failed test-skip.t: output changed
+  Failed test-success.t: output changed
+  # Ran 3 tests, 2 skipped, 3 failed.
   python hash seed: * (glob)
   [1]
 
   $ cat report.json
   testreport ={
+      "test-cases.t": {
 (esc)
+          "result": "skip"
 (esc)
+      }, ? (re)
       "test-failure.t": [\{] (re)
           "csys": "\s*\d+\.\d{3,4}", ? (re)
           "cuser": "\s*\d+\.\d{3,4}", ? (re)
@@ -1208,24 +1678,24 @@
           "start": "\s*\d+\.\d{3,4}", ? (re)
           "time": "\s*\d+\.\d{3,4}" (re)
       }, ? (re)
-      "test-skip.t": {
+      "test-skip.t": {
 (esc)
           "csys": "\s*\d+\.\d{3,4}", ? (re)
           "cuser": "\s*\d+\.\d{3,4}", ? (re)
-          "diff": "", ? (re)
+          "diff": "--- $TESTTMP/test-skip.t\n+++ $TESTTMP/test-skip.t.err\n@@ -1,4 +1,6 @@\n   $ echo xyzzy\n+  xyzzy\n #if true\n #require false\n #end\n+  !!! missing #endif\n",
 (esc)
           "end": "\s*\d+\.\d{3,4}", ? (re)
-          "result": "skip", ? (re)
+          "result": "failure",
 (esc)
           "start": "\s*\d+\.\d{3,4}", ? (re)
           "time": "\s*\d+\.\d{3,4}" (re)
-      }, ? (re)
+      },
 (esc)
       "test-success.t": [\{] (re)
           "csys": "\s*\d+\.\d{3,4}", ? (re)
           "cuser": "\s*\d+\.\d{3,4}", ? (re)
-          "diff": "", ? (re)
+          "diff": "--- $TESTTMP/test-success.t\n+++ $TESTTMP/test-success.t.err\n@@ -16,7 +16,9 @@\n   $ printf 'zyx\nwvu\ntsr\n'\n   abc (?)\n   zyx (custom !)\n-  wvu\n+  zyx\n   no_print (no-custom !)\n   tsr (no-missing !)\n   missing (missing !)\n+  wvu\n+  tsr\n",
 (esc)
           "end": "\s*\d+\.\d{3,4}", ? (re)
-          "result": "success", ? (re)
+          "result": "failure",
 (esc)
           "start": "\s*\d+\.\d{3,4}", ? (re)
           "time": "\s*\d+\.\d{3,4}" (re)
-      }
+      }
 (esc)
   } (no-eol)
 --json with --outputdir
 
@@ -1233,8 +1703,8 @@
   $ rm -r output
   $ mkdir output
   $ rt --json --outputdir output
-  running 3 tests using 1 parallel processes 
-  
+  running 5 tests using 1 parallel processes 
+  ss
   --- $TESTTMP/test-failure.t
   +++ $TESTTMP/output/test-failure.t.err
   @@ -1,5 +1,5 @@
@@ -1246,16 +1716,51 @@
    pad pad pad pad............................................................
   
   ERROR: test-failure.t output changed
-  !.s
-  Skipped test-skip.t: missing feature: nail clipper
+  !
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/output/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  
+  ERROR: test-success.t output changed
+  !
+  --- $TESTTMP/test-skip.t
+  +++ $TESTTMP/output/test-skip.t.err
+  @@ -1,4 +1,6 @@
+     $ echo xyzzy
+  +  xyzzy
+   #if true
+   #require false
+   #end
+  +  !!! missing #endif
+  
+  ERROR: test-skip.t output changed
+  !
+  Skipped test-cases.t: Doesn't exist
+  Skipped test-cases.t: Doesn't exist
   Failed test-failure.t: output changed
-  # Ran 2 tests, 1 skipped, 1 failed.
+  Failed test-skip.t: output changed
+  Failed test-success.t: output changed
+  # Ran 3 tests, 2 skipped, 3 failed.
   python hash seed: * (glob)
   [1]
   $ f report.json
-  report.json: file not found
+  /usr/bin/env: python3: $ENOENT$
+  [127]
   $ cat output/report.json
   testreport ={
+      "test-cases.t": {
 (esc)
+          "result": "skip"
 (esc)
+      }, ? (re)
       "test-failure.t": [\{] (re)
           "csys": "\s*\d+\.\d{3,4}", ? (re)
           "cuser": "\s*\d+\.\d{3,4}", ? (re)
@@ -1265,24 +1770,24 @@
           "start": "\s*\d+\.\d{3,4}", ? (re)
           "time": "\s*\d+\.\d{3,4}" (re)
       }, ? (re)
-      "test-skip.t": {
+      "test-skip.t": {
 (esc)
           "csys": "\s*\d+\.\d{3,4}", ? (re)
           "cuser": "\s*\d+\.\d{3,4}", ? (re)
-          "diff": "", ? (re)
+          "diff": "--- $TESTTMP/test-skip.t\n+++ $TESTTMP/output/test-skip.t.err\n@@ -1,4 +1,6 @@\n   $ echo xyzzy\n+  xyzzy\n #if true\n #require false\n #end\n+  !!! missing #endif\n",
 (esc)
           "end": "\s*\d+\.\d{3,4}", ? (re)
-          "result": "skip", ? (re)
+          "result": "failure",
 (esc)
           "start": "\s*\d+\.\d{3,4}", ? (re)
           "time": "\s*\d+\.\d{3,4}" (re)
-      }, ? (re)
+      },
 (esc)
       "test-success.t": [\{] (re)
           "csys": "\s*\d+\.\d{3,4}", ? (re)
           "cuser": "\s*\d+\.\d{3,4}", ? (re)
-          "diff": "", ? (re)
+          "diff": "--- $TESTTMP/test-success.t\n+++ $TESTTMP/output/test-success.t.err\n@@ -16,7 +16,9 @@\n   $ printf 'zyx\nwvu\ntsr\n'\n   abc (?)\n   zyx (custom !)\n-  wvu\n+  zyx\n   no_print (no-custom !)\n   tsr (no-missing !)\n   missing (missing !)\n+  wvu\n+  tsr\n",
 (esc)
           "end": "\s*\d+\.\d{3,4}", ? (re)
-          "result": "success", ? (re)
+          "result": "failure",
 (esc)
           "start": "\s*\d+\.\d{3,4}", ? (re)
           "time": "\s*\d+\.\d{3,4}" (re)
-      }
+      }
 (esc)
   } (no-eol)
   $ ls -a output
   .
@@ -1290,13 +1795,15 @@
   .testtimes
   report.json
   test-failure.t.err
+  test-skip.t.err
+  test-success.t.err
 
 Test that failed test accepted through interactive are properly reported:
 
   $ cp test-failure.t backup
   $ echo y | rt --json -i
-  running 3 tests using 1 parallel processes 
-  
+  running 5 tests using 1 parallel processes 
+  ss
   --- $TESTTMP/test-failure.t
   +++ $TESTTMP/test-failure.t.err
   @@ -1,5 +1,5 @@
@@ -1306,12 +1813,48 @@
    This is a noop statement so that
    this test is still more bytes than success.
    pad pad pad pad............................................................
-  Accept this change? [y/N] ..s
-  Skipped test-skip.t: missing feature: nail clipper
-  # Ran 2 tests, 1 skipped, 0 failed.
+  Accept this change? [y/N] .
+  --- $TESTTMP/test-success.t
+  +++ $TESTTMP/test-success.t.err
+  @@ -16,7 +16,9 @@
+     $ printf 'zyx
wvu
tsr
'
+     abc (?)
+     zyx (custom !)
+  -  wvu
+  +  zyx
+     no_print (no-custom !)
+     tsr (no-missing !)
+     missing (missing !)
+  +  wvu
+  +  tsr
+  Accept this change? [y/N] 
+  ERROR: test-success.t output changed
+  !
+  --- $TESTTMP/test-skip.t
+  +++ $TESTTMP/test-skip.t.err
+  @@ -1,4 +1,6 @@
+     $ echo xyzzy
+  +  xyzzy
+   #if true
+   #require false
+   #end
+  +  !!! missing #endif
+  Accept this change? [y/N] 
+  ERROR: test-skip.t output changed
+  !
+  Skipped test-cases.t: Doesn't exist
+  Skipped test-cases.t: Doesn't exist
+  Failed test-skip.t: output changed
+  Failed test-success.t: output changed
+  # Ran 3 tests, 2 skipped, 2 failed.
+  python hash seed: 3448122194
+  [1]
 
   $ cat report.json
   testreport ={
+      "test-cases.t": {
 (esc)
+          "result": "skip"
 (esc)
+      }, ? (re)
       "test-failure.t": [\{] (re)
           "csys": "\s*\d+\.\d{3,4}", ? (re)
           "cuser": "\s*\d+\.\d{3,4}", ? (re)
@@ -1321,24 +1864,24 @@
           "start": "\s*\d+\.\d{3,4}", ? (re)
           "time": "\s*\d+\.\d{3,4}" (re)
       }, ? (re)
-      "test-skip.t": {
+      "test-skip.t": {
 (esc)
           "csys": "\s*\d+\.\d{3,4}", ? (re)
           "cuser": "\s*\d+\.\d{3,4}", ? (re)
-          "diff": "", ? (re)
+          "diff": "--- $TESTTMP/test-skip.t\n+++ $TESTTMP/test-skip.t.err\n@@ -1,4 +1,6 @@\n   $ echo xyzzy\n+  xyzzy\n #if true\n #require false\n #end\n+  !!! missing #endif\n",
 (esc)
           "end": "\s*\d+\.\d{3,4}", ? (re)
-          "result": "skip", ? (re)
+          "result": "failure",
 (esc)
           "start": "\s*\d+\.\d{3,4}", ? (re)
           "time": "\s*\d+\.\d{3,4}" (re)
-      }, ? (re)
+      },
 (esc)
       "test-success.t": [\{] (re)
           "csys": "\s*\d+\.\d{3,4}", ? (re)
           "cuser": "\s*\d+\.\d{3,4}", ? (re)
-          "diff": "", ? (re)
+          "diff": "--- $TESTTMP/test-success.t\n+++ $TESTTMP/test-success.t.err\n@@ -16,7 +16,9 @@\n   $ printf 'zyx\nwvu\ntsr\n'\n   abc (?)\n   zyx (custom !)\n-  wvu\n+  zyx\n   no_print (no-custom !)\n   tsr (no-missing !)\n   missing (missing !)\n+  wvu\n+  tsr\n",
 (esc)
           "end": "\s*\d+\.\d{3,4}", ? (re)
-          "result": "success", ? (re)
+          "result": "failure",
 (esc)
           "start": "\s*\d+\.\d{3,4}", ? (re)
           "time": "\s*\d+\.\d{3,4}" (re)
-      }
+      }
 (esc)
   } (no-eol)
   $ mv backup test-failure.t
 
@@ -1371,7 +1914,7 @@
   # Ran 2 tests, 0 skipped, 0 failed.
   ON_START! <__main__.TestSuite tests=[<__main__.TTest testMethod=test-failure.t>, <__main__.TTest testMethod=test-success.t>]>
   FAILURE! test-failure.t output changed
-  SUCCESS! test-success.t
+  FAILURE! test-success.t output changed
   ON_END!
 
 Test reusability for third party tools
@@ -1390,8 +1933,9 @@
   > EOF
   $ rt test-hghave.t
   running 1 tests using 1 parallel processes 
-  .
-  # Ran 1 tests, 0 skipped, 0 failed.
+  s
+  Skipped test-hghave.t: skipped
+  # Ran 0 tests, 1 skipped, 0 failed.
 
 test that RUNTESTDIR refers the directory, in which `run-tests.py` now
 running is placed.
@@ -1419,8 +1963,24 @@
   > EOF
   $ rt test-runtestdir.t
   running 1 tests using 1 parallel processes 
-  .
-  # Ran 1 tests, 0 skipped, 0 failed.
+  
+  --- $TESTTMP/anothertests/test-runtestdir.t
+  +++ $TESTTMP/anothertests/test-runtestdir.t.err
+  @@ -6,6 +6,7 @@
+     $ test "$TESTDIR" = "$TESTTMPnothertests"
+   #else
+     $ test "$TESTDIR" = "$TESTTMP"/anothertests
+  +  [1]
+   #endif
+   If this prints a path, that means RUNTESTDIR didn't equal
+   TESTDIR as it should have.
+  
+  ERROR: test-runtestdir.t output changed
+  !
+  Failed test-runtestdir.t: output changed
+  # Ran 1 tests, 0 skipped, 1 failed.
+  python hash seed: 3448122194
+  [1]
 
 #if execbit
 
@@ -1451,12 +2011,13 @@
   $ rt test-very-slow-test.t
   running 1 tests using 1 parallel processes 
   s
-  Skipped test-very-slow-test.t: missing feature: allow slow tests (use --allow-slow-tests)
+  Skipped test-very-slow-test.t: skipped
   # Ran 0 tests, 1 skipped, 0 failed.
   $ rt $HGTEST_RUN_TESTS_PURE --allow-slow-tests test-very-slow-test.t
   running 1 tests using 1 parallel processes 
-  .
-  # Ran 1 tests, 0 skipped, 0 failed.
+  s
+  Skipped test-very-slow-test.t: skipped
+  # Ran 0 tests, 1 skipped, 0 failed.
 
 support for running a test outside the current directory
   $ mkdir nonlocal
@@ -1630,10 +2191,8 @@
   > done
   $ rt -j 2
   running 5 tests using 2 parallel processes 
-  ....
+  .....
   # Ran 5 tests, 0 skipped, 0 failed.
-  skipped: unknown feature: notarealhghavefeature
-  
   $ cd ..
   $ rm -rf broken
 
@@ -1668,7 +2227,21 @@
   > EOF
   $ rt
   running 3 tests using 1 parallel processes 
-  .
+  
+  --- $TESTTMP/anothertests/cases/test-cases-abc.t
+  +++ $TESTTMP/anothertests/cases/test-cases-abc.t#A.err
+  @@ -7,7 +7,7 @@
+     $ V=C
+   #endif
+     $ echo $V | sed 's/A/C/'
+  -  C
+  +  B
+   #if C
+     $ [ $V = C ]
+   #endif
+  
+  ERROR: test-cases-abc.t#A output changed
+  !
   --- $TESTTMP/anothertests/cases/test-cases-abc.t
   +++ $TESTTMP/anothertests/cases/test-cases-abc.t#B.err
   @@ -7,7 +7,7 @@
@@ -1682,17 +2255,47 @@
    #endif
   
   ERROR: test-cases-abc.t#B output changed
-  !.
+  !
+  --- $TESTTMP/anothertests/cases/test-cases-abc.t
+  +++ $TESTTMP/anothertests/cases/test-cases-abc.t#C.err
+  @@ -7,7 +7,7 @@
+     $ V=C
+   #endif
+     $ echo $V | sed 's/A/C/'
+  -  C
+  +  B
+   #if C
+     $ [ $V = C ]
+   #endif
+  
+  ERROR: test-cases-abc.t#C output changed
+  !
+  Failed test-cases-abc.t#A: output changed
   Failed test-cases-abc.t#B: output changed
-  # Ran 3 tests, 0 skipped, 1 failed.
+  Failed test-cases-abc.t#C: output changed
+  # Ran 3 tests, 0 skipped, 3 failed.
   python hash seed: * (glob)
   [1]
 
 --restart works
 
   $ rt --restart
-  running 2 tests using 1 parallel processes 
-  
+  running 3 tests using 1 parallel processes 
+  
+  --- $TESTTMP/anothertests/cases/test-cases-abc.t
+  +++ $TESTTMP/anothertests/cases/test-cases-abc.t#A.err
+  @@ -7,7 +7,7 @@
+     $ V=C
+   #endif
+     $ echo $V | sed 's/A/C/'
+  -  C
+  +  B
+   #if C
+     $ [ $V = C ]
+   #endif
+  
+  ERROR: test-cases-abc.t#A output changed
+  !
   --- $TESTTMP/anothertests/cases/test-cases-abc.t
   +++ $TESTTMP/anothertests/cases/test-cases-abc.t#B.err
   @@ -7,7 +7,7 @@
@@ -1706,9 +2309,25 @@
    #endif
   
   ERROR: test-cases-abc.t#B output changed
-  !.
+  !
+  --- $TESTTMP/anothertests/cases/test-cases-abc.t
+  +++ $TESTTMP/anothertests/cases/test-cases-abc.t#C.err
+  @@ -7,7 +7,7 @@
+     $ V=C
+   #endif
+     $ echo $V | sed 's/A/C/'
+  -  C
+  +  B
+   #if C
+     $ [ $V = C ]
+   #endif
+  
+  ERROR: test-cases-abc.t#C output changed
+  !
+  Failed test-cases-abc.t#A: output changed
   Failed test-cases-abc.t#B: output changed
-  # Ran 2 tests, 0 skipped, 1 failed.
+  Failed test-cases-abc.t#C: output changed
+  # Ran 3 tests, 0 skipped, 3 failed.
   python hash seed: * (glob)
   [1]
 
@@ -1732,9 +2351,24 @@
    #endif
   
   ERROR: test-cases-abc.t#B output changed
-  !.
+  !
+  --- $TESTTMP/anothertests/cases/test-cases-abc.t
+  +++ $TESTTMP/anothertests/cases/output/test-cases-abc.t#C.err
+  @@ -7,7 +7,7 @@
+     $ V=C
+   #endif
+     $ echo $V | sed 's/A/C/'
+  -  C
+  +  B
+   #if C
+     $ [ $V = C ]
+   #endif
+  
+  ERROR: test-cases-abc.t#C output changed
+  !
   Failed test-cases-abc.t#B: output changed
-  # Ran 2 tests, 0 skipped, 1 failed.
+  Failed test-cases-abc.t#C: output changed
+  # Ran 2 tests, 0 skipped, 2 failed.
   python hash seed: * (glob)
   [1]
 
@@ -1801,9 +2435,24 @@
    #endif
   
   ERROR: test-cases-abc.t#B output changed
-  !.
+  !
+  --- $TESTTMP/anothertests/cases/test-cases-abc.t
+  +++ $TESTTMP/anothertests/cases/test-cases-abc.t#C.err
+  @@ -7,7 +7,7 @@
+     $ V=C
+   #endif
+     $ echo $V | sed 's/A/C/'
+  -  C
+  +  B
+   #if C
+     $ [ $V = C ]
+   #endif
+  
+  ERROR: test-cases-abc.t#C output changed
+  !
   Failed test-cases-abc.t#B: output changed
-  # Ran 2 tests, 0 skipped, 1 failed.
+  Failed test-cases-abc.t#C: output changed
+  # Ran 2 tests, 0 skipped, 2 failed.
   python hash seed: * (glob)
   [1]
 
@@ -1987,8 +2636,13 @@
   
   --- $TESTTMP/anothertests/cases/test-conditional-matching.t
   +++ $TESTTMP/anothertests/cases/test-conditional-matching.t#bar.err
-  @@ -3,11 +3,13 @@
+  @@ -1,13 +1,17 @@
      richtig (true !)
+   #testcases foo bar
+     falsch (false !)
+     $ echo richtig
+     richtig (true !)
+  +  richtig
      $ echo falsch
      falsch (false !)
   +  falsch
@@ -2001,23 +2655,29 @@
   +  celeste
      $ echo zephir
      zephir \(bar !\) (re)
-  
+  +  zephir
+     richtig (true !)
+  
+     falsch (false !)
   ERROR: test-conditional-matching.t#bar output changed
   !
   --- $TESTTMP/anothertests/cases/test-conditional-matching.t
   +++ $TESTTMP/anothertests/cases/test-conditional-matching.t#foo.err
-  @@ -3,11 +3,14 @@
+  @@ -1,13 +1,17 @@
+   #testcases foo bar
+     $ echo richtig
      richtig (true !)
+  +  richtig
      $ echo falsch
      falsch (false !)
   +  falsch
    #if foo
      $ echo arthur
      arthur \(bar !\) (re)
-  +  arthur
    #endif
      $ echo celeste
      celeste \(foo !\) (re)
+  +  celeste
      $ echo zephir
      zephir \(bar !\) (re)
   +  zephir

test-server-view.t

test-setdiscovery.t

--- c:/hgdev/src/tests/test-setdiscovery.t
+++ c:/hgdev/src/tests/test-setdiscovery.t.err
@@ -1052,6 +1052,8 @@
   e64a39e7da8b
 
   $ killdaemons.py
+  /usr/bin/env: python3: $ENOENT$
+  [127]
   $ cut -d' ' -f6- access.log | grep -v cmd=known # cmd=known uses random sampling
   "GET /?cmd=capabilities HTTP/1.1" 200 -
   "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D513314ca8b3ae4dac8eec56966265b00fcf866db x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull

test-share-bookmarks.t#svfs#normal

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-share-bookmarks.t\n+++ c:/hgdev/src/tests/test-share-bookmarks.t#svfs#normal.err\n@@ -99,11 +99,55 @@\n      bm2                       2:c2e0ac586386 (svfs !)\n    * bm3                       2:c2e0ac586386\n      bmX                       2:c2e0ac586386 (vfs !)\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnclose hook exited with status 1\n-  [255]\n+     bmX                       2:c2e0ac586386\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: share\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 1278, in bookmark\n+      bookmarks.deactivate(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg book bm1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n FYI, in contrast to above test, bmX is invisible in repo1 (= shared\n src), because (1) HG_PENDING refers only repo3 and (2)\n@@ -111,29 +155,25 @@\n \n   $ cd ../repo3\n   $ hg --config hooks.pretxnclose="sh $TESTTMP/checkbookmarks.sh" -q book bmX\n-  @repo1\n-   * bm1                       2:c2e0ac586386\n-     bm2                       2:c2e0ac586386 (svfs !)\n-     bm3                       2:c2e0ac586386\n-  @repo2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+     bm2                       2:c2e0ac586386 (svfs !)\n      bm1                       2:c2e0ac586386 (svfs !)\n-   * bm2                       2:c2e0ac586386\n      bm3                       2:c2e0ac586386 (svfs !)\n-  @repo3\n-     bm1                       2:c2e0ac586386\n-     bm2                       2:c2e0ac586386 (svfs !)\n-     bm3                       2:c2e0ac586386\n-   * bmX                       2:c2e0ac586386\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnclose hook exited with status 1\n+     bm2                       2:c2e0ac586386 (svfs !)\n   [255]\n   $ hg book bm3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n clean up bm2 since it\'s uninteresting (not shared in the vfs case and\n same as bm3 in the svfs case)\n   $ cd ../repo2\n   $ hg book -d bm2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ cd ../repo1\n \n@@ -141,23 +181,28 @@\n \n   $ echo \'shared bookmarks\' > a\n   $ hg commit -m \'testing shared bookmarks\'\n-  $ hg bookmarks\n-   * bm1                       3:b87954705719\n-     bm3                       2:c2e0ac586386\n-  $ cd ../repo3\n-  $ hg bookmarks\n-     bm1                       3:b87954705719\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n+  $ cd ../repo3\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n    * bm3                       2:c2e0ac586386\n   $ echo \'more shared bookmarks\' > a\n   $ hg commit -m \'testing shared bookmarks\'\n-  created new head\n-  $ hg bookmarks\n-     bm1                       3:b87954705719\n-   * bm3                       4:62f4ded848e4\n-  $ cd ../repo1\n-  $ hg bookmarks\n-   * bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n+  $ cd ../repo1\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n   $ cd ..\n \n test pushing bookmarks works\n@@ -170,27 +215,23 @@\n   $ echo foo > b\n   $ hg commit -m \'foo in b\'\n   $ hg boo\n-     bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-   * bm4                       5:92793bfc8cad\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n+   * bm4                       3:dc79cfada755\n   $ hg push -B bm4\n   pushing to $TESTTMP/repo3\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  exporting bookmark bm4\n-  $ cd ../repo1\n-  $ hg bookmarks\n-   * bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n-  $ cd ../repo3\n-  $ hg bookmarks\n-     bm1                       3:b87954705719\n-   * bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ cd ../repo1\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n+  $ cd ../repo3\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ cd ..\n \n test behavior when sharing a shared repo\n@@ -200,22 +241,24 @@\n   2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ cd missingdir/repo5\n   $ hg book\n-     bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n   $ cd ../..\n \n test what happens when an active bookmark is deleted\n \n   $ cd repo1\n   $ hg boo -d bm3\n-  $ hg boo\n-   * bm1                       3:b87954705719\n-     bm4                       5:92793bfc8cad\n-  $ cd ../repo3\n-  $ hg boo\n-     bm1                       3:b87954705719\n-     bm4                       5:92793bfc8cad\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n+  $ cd ../repo3\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ cd ..\n \n verify that bookmarks are not written on failed transaction\n@@ -236,33 +279,31 @@\n   > EOF\n   $ cd repo4\n   $ hg boo\n-     bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-   * bm4                       5:92793bfc8cad\n-  $ cd ../repo3\n-  $ hg boo\n-     bm1                       3:b87954705719\n-     bm4                       5:92793bfc8cad\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n+   * bm4                       3:dc79cfada755\n+  $ cd ../repo3\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ hg --config "extensions.failpullbookmarks=$TESTTMP/failpullbookmarks.py" pull $TESTTMP/repo4\n   pulling from $TESTTMP/repo4\n   searching for changes\n-  no changes found\n-  adding remote bookmark bm3\n-  abort: forced failure by extension\n-  [255]\n-  $ hg boo\n-     bm1                       3:b87954705719\n-     bm4                       5:92793bfc8cad\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ hg pull $TESTTMP/repo4\n   pulling from $TESTTMP/repo4\n   searching for changes\n-  no changes found\n-  adding remote bookmark bm3\n-  1 local changesets published\n-  $ hg boo\n-     bm1                       3:b87954705719\n-   * bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ cd ..\n \n verify bookmark behavior after unshare\n@@ -270,20 +311,64 @@\n   $ cd repo3\n   $ hg unshare\n   $ hg boo\n-     bm1                       3:b87954705719\n-   * bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ hg boo -d bm4\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: share\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 1278, in bookmark\n+      bookmarks.deactivate(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg boo bm5\n-  $ hg boo\n-     bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-   * bm5                       4:62f4ded848e4\n-  $ cd ../repo1\n-  $ hg boo\n-   * bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n+  $ cd ../repo1\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n   $ cd ..\n \n Test that if store is disabled, we drop the bookmarksinstore requirement\n', 2336, 2338, 'truncated \\uXXXX escape') decoding diff, sorry

test-share-bookmarks.t#svfs#safe

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-share-bookmarks.t\n+++ c:/hgdev/src/tests/test-share-bookmarks.t#svfs#safe.err\n@@ -99,11 +99,55 @@\n      bm2                       2:c2e0ac586386 (svfs !)\n    * bm3                       2:c2e0ac586386\n      bmX                       2:c2e0ac586386 (vfs !)\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnclose hook exited with status 1\n-  [255]\n+     bmX                       2:c2e0ac586386\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: share\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 1278, in bookmark\n+      bookmarks.deactivate(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg book bm1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n FYI, in contrast to above test, bmX is invisible in repo1 (= shared\n src), because (1) HG_PENDING refers only repo3 and (2)\n@@ -111,29 +155,25 @@\n \n   $ cd ../repo3\n   $ hg --config hooks.pretxnclose="sh $TESTTMP/checkbookmarks.sh" -q book bmX\n-  @repo1\n-   * bm1                       2:c2e0ac586386\n-     bm2                       2:c2e0ac586386 (svfs !)\n-     bm3                       2:c2e0ac586386\n-  @repo2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+     bm2                       2:c2e0ac586386 (svfs !)\n      bm1                       2:c2e0ac586386 (svfs !)\n-   * bm2                       2:c2e0ac586386\n      bm3                       2:c2e0ac586386 (svfs !)\n-  @repo3\n-     bm1                       2:c2e0ac586386\n-     bm2                       2:c2e0ac586386 (svfs !)\n-     bm3                       2:c2e0ac586386\n-   * bmX                       2:c2e0ac586386\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnclose hook exited with status 1\n+     bm2                       2:c2e0ac586386 (svfs !)\n   [255]\n   $ hg book bm3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n clean up bm2 since it\'s uninteresting (not shared in the vfs case and\n same as bm3 in the svfs case)\n   $ cd ../repo2\n   $ hg book -d bm2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ cd ../repo1\n \n@@ -141,23 +181,28 @@\n \n   $ echo \'shared bookmarks\' > a\n   $ hg commit -m \'testing shared bookmarks\'\n-  $ hg bookmarks\n-   * bm1                       3:b87954705719\n-     bm3                       2:c2e0ac586386\n-  $ cd ../repo3\n-  $ hg bookmarks\n-     bm1                       3:b87954705719\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n+  $ cd ../repo3\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n    * bm3                       2:c2e0ac586386\n   $ echo \'more shared bookmarks\' > a\n   $ hg commit -m \'testing shared bookmarks\'\n-  created new head\n-  $ hg bookmarks\n-     bm1                       3:b87954705719\n-   * bm3                       4:62f4ded848e4\n-  $ cd ../repo1\n-  $ hg bookmarks\n-   * bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n+  $ cd ../repo1\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n   $ cd ..\n \n test pushing bookmarks works\n@@ -170,27 +215,23 @@\n   $ echo foo > b\n   $ hg commit -m \'foo in b\'\n   $ hg boo\n-     bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-   * bm4                       5:92793bfc8cad\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n+   * bm4                       3:dc79cfada755\n   $ hg push -B bm4\n   pushing to $TESTTMP/repo3\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  exporting bookmark bm4\n-  $ cd ../repo1\n-  $ hg bookmarks\n-   * bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n-  $ cd ../repo3\n-  $ hg bookmarks\n-     bm1                       3:b87954705719\n-   * bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ cd ../repo1\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n+  $ cd ../repo3\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ cd ..\n \n test behavior when sharing a shared repo\n@@ -200,22 +241,24 @@\n   2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ cd missingdir/repo5\n   $ hg book\n-     bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n   $ cd ../..\n \n test what happens when an active bookmark is deleted\n \n   $ cd repo1\n   $ hg boo -d bm3\n-  $ hg boo\n-   * bm1                       3:b87954705719\n-     bm4                       5:92793bfc8cad\n-  $ cd ../repo3\n-  $ hg boo\n-     bm1                       3:b87954705719\n-     bm4                       5:92793bfc8cad\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n+  $ cd ../repo3\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ cd ..\n \n verify that bookmarks are not written on failed transaction\n@@ -236,33 +279,31 @@\n   > EOF\n   $ cd repo4\n   $ hg boo\n-     bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-   * bm4                       5:92793bfc8cad\n-  $ cd ../repo3\n-  $ hg boo\n-     bm1                       3:b87954705719\n-     bm4                       5:92793bfc8cad\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n+   * bm4                       3:dc79cfada755\n+  $ cd ../repo3\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ hg --config "extensions.failpullbookmarks=$TESTTMP/failpullbookmarks.py" pull $TESTTMP/repo4\n   pulling from $TESTTMP/repo4\n   searching for changes\n-  no changes found\n-  adding remote bookmark bm3\n-  abort: forced failure by extension\n-  [255]\n-  $ hg boo\n-     bm1                       3:b87954705719\n-     bm4                       5:92793bfc8cad\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ hg pull $TESTTMP/repo4\n   pulling from $TESTTMP/repo4\n   searching for changes\n-  no changes found\n-  adding remote bookmark bm3\n-  1 local changesets published\n-  $ hg boo\n-     bm1                       3:b87954705719\n-   * bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ cd ..\n \n verify bookmark behavior after unshare\n@@ -270,20 +311,64 @@\n   $ cd repo3\n   $ hg unshare\n   $ hg boo\n-     bm1                       3:b87954705719\n-   * bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ hg boo -d bm4\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: share\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 1278, in bookmark\n+      bookmarks.deactivate(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg boo bm5\n-  $ hg boo\n-     bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-   * bm5                       4:62f4ded848e4\n-  $ cd ../repo1\n-  $ hg boo\n-   * bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n+  $ cd ../repo1\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n   $ cd ..\n \n Test that if store is disabled, we drop the bookmarksinstore requirement\n', 2334, 2336, 'truncated \\uXXXX escape') decoding diff, sorry

test-share-bookmarks.t#vfs#normal

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-share-bookmarks.t\n+++ c:/hgdev/src/tests/test-share-bookmarks.t#vfs#normal.err\n@@ -99,11 +99,55 @@\n      bm2                       2:c2e0ac586386 (svfs !)\n    * bm3                       2:c2e0ac586386\n      bmX                       2:c2e0ac586386 (vfs !)\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnclose hook exited with status 1\n-  [255]\n+     bmX                       2:c2e0ac586386\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: share\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 1278, in bookmark\n+      bookmarks.deactivate(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg book bm1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n FYI, in contrast to above test, bmX is invisible in repo1 (= shared\n src), because (1) HG_PENDING refers only repo3 and (2)\n@@ -111,29 +155,25 @@\n \n   $ cd ../repo3\n   $ hg --config hooks.pretxnclose="sh $TESTTMP/checkbookmarks.sh" -q book bmX\n-  @repo1\n-   * bm1                       2:c2e0ac586386\n-     bm2                       2:c2e0ac586386 (svfs !)\n-     bm3                       2:c2e0ac586386\n-  @repo2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+     bm2                       2:c2e0ac586386 (svfs !)\n      bm1                       2:c2e0ac586386 (svfs !)\n-   * bm2                       2:c2e0ac586386\n      bm3                       2:c2e0ac586386 (svfs !)\n-  @repo3\n-     bm1                       2:c2e0ac586386\n-     bm2                       2:c2e0ac586386 (svfs !)\n-     bm3                       2:c2e0ac586386\n-   * bmX                       2:c2e0ac586386\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnclose hook exited with status 1\n+     bm2                       2:c2e0ac586386 (svfs !)\n   [255]\n   $ hg book bm3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n clean up bm2 since it\'s uninteresting (not shared in the vfs case and\n same as bm3 in the svfs case)\n   $ cd ../repo2\n   $ hg book -d bm2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ cd ../repo1\n \n@@ -141,23 +181,28 @@\n \n   $ echo \'shared bookmarks\' > a\n   $ hg commit -m \'testing shared bookmarks\'\n-  $ hg bookmarks\n-   * bm1                       3:b87954705719\n-     bm3                       2:c2e0ac586386\n-  $ cd ../repo3\n-  $ hg bookmarks\n-     bm1                       3:b87954705719\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n+  $ cd ../repo3\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n    * bm3                       2:c2e0ac586386\n   $ echo \'more shared bookmarks\' > a\n   $ hg commit -m \'testing shared bookmarks\'\n-  created new head\n-  $ hg bookmarks\n-     bm1                       3:b87954705719\n-   * bm3                       4:62f4ded848e4\n-  $ cd ../repo1\n-  $ hg bookmarks\n-   * bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n+  $ cd ../repo1\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n   $ cd ..\n \n test pushing bookmarks works\n@@ -170,27 +215,23 @@\n   $ echo foo > b\n   $ hg commit -m \'foo in b\'\n   $ hg boo\n-     bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-   * bm4                       5:92793bfc8cad\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n+   * bm4                       3:dc79cfada755\n   $ hg push -B bm4\n   pushing to $TESTTMP/repo3\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  exporting bookmark bm4\n-  $ cd ../repo1\n-  $ hg bookmarks\n-   * bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n-  $ cd ../repo3\n-  $ hg bookmarks\n-     bm1                       3:b87954705719\n-   * bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ cd ../repo1\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n+  $ cd ../repo3\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ cd ..\n \n test behavior when sharing a shared repo\n@@ -200,22 +241,24 @@\n   2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ cd missingdir/repo5\n   $ hg book\n-     bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n   $ cd ../..\n \n test what happens when an active bookmark is deleted\n \n   $ cd repo1\n   $ hg boo -d bm3\n-  $ hg boo\n-   * bm1                       3:b87954705719\n-     bm4                       5:92793bfc8cad\n-  $ cd ../repo3\n-  $ hg boo\n-     bm1                       3:b87954705719\n-     bm4                       5:92793bfc8cad\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n+  $ cd ../repo3\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ cd ..\n \n verify that bookmarks are not written on failed transaction\n@@ -236,33 +279,31 @@\n   > EOF\n   $ cd repo4\n   $ hg boo\n-     bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-   * bm4                       5:92793bfc8cad\n-  $ cd ../repo3\n-  $ hg boo\n-     bm1                       3:b87954705719\n-     bm4                       5:92793bfc8cad\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n+   * bm4                       3:dc79cfada755\n+  $ cd ../repo3\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ hg --config "extensions.failpullbookmarks=$TESTTMP/failpullbookmarks.py" pull $TESTTMP/repo4\n   pulling from $TESTTMP/repo4\n   searching for changes\n-  no changes found\n-  adding remote bookmark bm3\n-  abort: forced failure by extension\n-  [255]\n-  $ hg boo\n-     bm1                       3:b87954705719\n-     bm4                       5:92793bfc8cad\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ hg pull $TESTTMP/repo4\n   pulling from $TESTTMP/repo4\n   searching for changes\n-  no changes found\n-  adding remote bookmark bm3\n-  1 local changesets published\n-  $ hg boo\n-     bm1                       3:b87954705719\n-   * bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ cd ..\n \n verify bookmark behavior after unshare\n@@ -270,20 +311,64 @@\n   $ cd repo3\n   $ hg unshare\n   $ hg boo\n-     bm1                       3:b87954705719\n-   * bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ hg boo -d bm4\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: share\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 1278, in bookmark\n+      bookmarks.deactivate(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg boo bm5\n-  $ hg boo\n-     bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-   * bm5                       4:62f4ded848e4\n-  $ cd ../repo1\n-  $ hg boo\n-   * bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n+  $ cd ../repo1\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n   $ cd ..\n \n Test that if store is disabled, we drop the bookmarksinstore requirement\n', 2335, 2337, 'truncated \\uXXXX escape') decoding diff, sorry

test-share-bookmarks.t#vfs#safe

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-share-bookmarks.t\n+++ c:/hgdev/src/tests/test-share-bookmarks.t#vfs#safe.err\n@@ -99,11 +99,55 @@\n      bm2                       2:c2e0ac586386 (svfs !)\n    * bm3                       2:c2e0ac586386\n      bmX                       2:c2e0ac586386 (vfs !)\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnclose hook exited with status 1\n-  [255]\n+     bmX                       2:c2e0ac586386\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: share\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 1278, in bookmark\n+      bookmarks.deactivate(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg book bm1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n FYI, in contrast to above test, bmX is invisible in repo1 (= shared\n src), because (1) HG_PENDING refers only repo3 and (2)\n@@ -111,29 +155,25 @@\n \n   $ cd ../repo3\n   $ hg --config hooks.pretxnclose="sh $TESTTMP/checkbookmarks.sh" -q book bmX\n-  @repo1\n-   * bm1                       2:c2e0ac586386\n-     bm2                       2:c2e0ac586386 (svfs !)\n-     bm3                       2:c2e0ac586386\n-  @repo2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+     bm2                       2:c2e0ac586386 (svfs !)\n      bm1                       2:c2e0ac586386 (svfs !)\n-   * bm2                       2:c2e0ac586386\n      bm3                       2:c2e0ac586386 (svfs !)\n-  @repo3\n-     bm1                       2:c2e0ac586386\n-     bm2                       2:c2e0ac586386 (svfs !)\n-     bm3                       2:c2e0ac586386\n-   * bmX                       2:c2e0ac586386\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnclose hook exited with status 1\n+     bm2                       2:c2e0ac586386 (svfs !)\n   [255]\n   $ hg book bm3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n clean up bm2 since it\'s uninteresting (not shared in the vfs case and\n same as bm3 in the svfs case)\n   $ cd ../repo2\n   $ hg book -d bm2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ cd ../repo1\n \n@@ -141,23 +181,28 @@\n \n   $ echo \'shared bookmarks\' > a\n   $ hg commit -m \'testing shared bookmarks\'\n-  $ hg bookmarks\n-   * bm1                       3:b87954705719\n-     bm3                       2:c2e0ac586386\n-  $ cd ../repo3\n-  $ hg bookmarks\n-     bm1                       3:b87954705719\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n+  $ cd ../repo3\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n    * bm3                       2:c2e0ac586386\n   $ echo \'more shared bookmarks\' > a\n   $ hg commit -m \'testing shared bookmarks\'\n-  created new head\n-  $ hg bookmarks\n-     bm1                       3:b87954705719\n-   * bm3                       4:62f4ded848e4\n-  $ cd ../repo1\n-  $ hg bookmarks\n-   * bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n+  $ cd ../repo1\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n   $ cd ..\n \n test pushing bookmarks works\n@@ -170,27 +215,23 @@\n   $ echo foo > b\n   $ hg commit -m \'foo in b\'\n   $ hg boo\n-     bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-   * bm4                       5:92793bfc8cad\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n+   * bm4                       3:dc79cfada755\n   $ hg push -B bm4\n   pushing to $TESTTMP/repo3\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  exporting bookmark bm4\n-  $ cd ../repo1\n-  $ hg bookmarks\n-   * bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n-  $ cd ../repo3\n-  $ hg bookmarks\n-     bm1                       3:b87954705719\n-   * bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ cd ../repo1\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n+  $ cd ../repo3\n+  $ hg bookmarks\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ cd ..\n \n test behavior when sharing a shared repo\n@@ -200,22 +241,24 @@\n   2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ cd missingdir/repo5\n   $ hg book\n-     bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n   $ cd ../..\n \n test what happens when an active bookmark is deleted\n \n   $ cd repo1\n   $ hg boo -d bm3\n-  $ hg boo\n-   * bm1                       3:b87954705719\n-     bm4                       5:92793bfc8cad\n-  $ cd ../repo3\n-  $ hg boo\n-     bm1                       3:b87954705719\n-     bm4                       5:92793bfc8cad\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n+  $ cd ../repo3\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ cd ..\n \n verify that bookmarks are not written on failed transaction\n@@ -236,33 +279,31 @@\n   > EOF\n   $ cd repo4\n   $ hg boo\n-     bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-   * bm4                       5:92793bfc8cad\n-  $ cd ../repo3\n-  $ hg boo\n-     bm1                       3:b87954705719\n-     bm4                       5:92793bfc8cad\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n+   * bm4                       3:dc79cfada755\n+  $ cd ../repo3\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ hg --config "extensions.failpullbookmarks=$TESTTMP/failpullbookmarks.py" pull $TESTTMP/repo4\n   pulling from $TESTTMP/repo4\n   searching for changes\n-  no changes found\n-  adding remote bookmark bm3\n-  abort: forced failure by extension\n-  [255]\n-  $ hg boo\n-     bm1                       3:b87954705719\n-     bm4                       5:92793bfc8cad\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ hg pull $TESTTMP/repo4\n   pulling from $TESTTMP/repo4\n   searching for changes\n-  no changes found\n-  adding remote bookmark bm3\n-  1 local changesets published\n-  $ hg boo\n-     bm1                       3:b87954705719\n-   * bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ cd ..\n \n verify bookmark behavior after unshare\n@@ -270,20 +311,64 @@\n   $ cd repo3\n   $ hg unshare\n   $ hg boo\n-     bm1                       3:b87954705719\n-   * bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n   $ hg boo -d bm4\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: share\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 1278, in bookmark\n+      bookmarks.deactivate(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg boo bm5\n-  $ hg boo\n-     bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-   * bm5                       4:62f4ded848e4\n-  $ cd ../repo1\n-  $ hg boo\n-   * bm1                       3:b87954705719\n-     bm3                       4:62f4ded848e4\n-     bm4                       5:92793bfc8cad\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+   * bm3                       2:c2e0ac586386\n+  $ cd ../repo1\n+  $ hg boo\n+     bm1                       2:c2e0ac586386\n+     bm3                       2:c2e0ac586386\n   $ cd ..\n \n Test that if store is disabled, we drop the bookmarksinstore requirement\n', 2333, 2335, 'truncated \\uXXXX escape') decoding diff, sorry

test-share-safe.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-share-safe.t\n+++ c:/hgdev/src/tests/test-share-safe.t.err\n@@ -161,21 +161,70 @@\n   adding manifests\n   adding file changes\n   error: pretxnchangegroup.reject_merge_commits hook failed: bcde3522682d rejected as merge on the same branch. Please consider rebase.\n-  transaction abort!\n-  rollback completed\n-  abort: bcde3522682d rejected as merge on the same branch. Please consider rebase.\n-  [255]\n+  ** Unknown exception encountered with possibly-broken third-party extension "hooklib" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "hooklib" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: extdiff, hooklib, share\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 5612, in push\n+      opargs=opargs,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 458, in push\n+      _pushbundle2(pushop)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1125, in _pushbundle2\n+      b\'url\': pushop.remote.url(),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\thirdparty\\concurrent\\futures\\_base.py", line 457, in result\n+      return self.__get_result()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 246, in callcommand\n+      result = fn(**pycompat.strkwargs(args))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 360, in unbundle\n+      ret = exchange.unbundle(self._repo, bundle, heads, b\'push\', url)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 2645, in unbundle\n+      lockmod.release(lockandtr[2], lockandtr[1], lockandtr[0])\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg push ../shared1\n   pushing to ../shared1\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  error: pretxnchangegroup.reject_merge_commits hook failed: bcde3522682d rejected as merge on the same branch. Please consider rebase.\n-  transaction abort!\n-  rollback completed\n-  abort: bcde3522682d rejected as merge on the same branch. Please consider rebase.\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n Test that if share source config is untrusted, we dont read it\n@@ -235,6 +284,7 @@\n   requirements\n      preserved: dotencode, exp-sharesafe, fncache, generaldelta, revlogv1, sparserevlog, store (no-zstd !)\n      preserved: dotencode, exp-sharesafe, fncache, generaldelta, revlog-compression-zstd, revlogv1, sparserevlog, store (zstd !)\n+     preserved: dotencode, exp-sharesafe, fncache, generaldelta, revlogv1, sparserevlog, store\n      added: persistent-nodemap\n   \n   $ hg log -r .\n@@ -286,10 +336,64 @@\n   adding manifests\n   adding file changes\n   error: pretxnchangegroup.reject_merge_commits hook failed: bcde3522682d rejected as merge on the same branch. Please consider rebase.\n-  transaction abort!\n-  rollback completed\n-  abort: bcde3522682d rejected as merge on the same branch. Please consider rebase.\n-  [255]\n+  ** Unknown exception encountered with possibly-broken third-party extension "hooklib" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "hooklib" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: extdiff, hooklib, share\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 5612, in push\n+      opargs=opargs,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 458, in push\n+      _pushbundle2(pushop)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1125, in _pushbundle2\n+      b\'url\': pushop.remote.url(),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\thirdparty\\concurrent\\futures\\_base.py", line 457, in result\n+      return self.__get_result()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 246, in callcommand\n+      result = fn(**pycompat.strkwargs(args))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 360, in unbundle\n+      ret = exchange.unbundle(self._repo, bundle, heads, b\'push\', url)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 2645, in unbundle\n+      lockmod.release(lockandtr[2], lockandtr[1], lockandtr[0])\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg showconfig ui.curses -R ../shared1\n   false\n \n', 2518, 2520, 'truncated \\uXXXX escape') decoding diff, sorry

test-share.t#normal

--- c:/hgdev/src/tests/test-share.t
+++ c:/hgdev/src/tests/test-share.t#normal.err
@@ -50,6 +50,7 @@
   checklink (symlink !)
   checklink-target (symlink !)
   manifestfulltextcache (reporevlogstore !)
+  manifestfulltextcache
   $ ls -1 ../repo1/.hg/cache
   branch2-served
   rbc-names-v1
@@ -132,13 +133,8 @@
   $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid
   $ cat hg.pid >> $DAEMON_PIDS
   $ get-with-headers.py localhost:$HGPORT 'raw-file/'
-  200 Script output follows
-  
-  
-  -rw-r--r-- 4 a
-  -rw-r--r-- 2 b
-  
-  
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 Cloning a shared repo via bundle2 results in a non-shared clone
 
   $ cd ..
@@ -258,6 +254,8 @@
 Explicitly kill daemons to let the test exit on Windows
 
   $ killdaemons.py
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
 Test sharing a repository which was created with store requirement disable
 

test-share.t#safe

--- c:/hgdev/src/tests/test-share.t
+++ c:/hgdev/src/tests/test-share.t#safe.err
@@ -50,6 +50,7 @@
   checklink (symlink !)
   checklink-target (symlink !)
   manifestfulltextcache (reporevlogstore !)
+  manifestfulltextcache
   $ ls -1 ../repo1/.hg/cache
   branch2-served
   rbc-names-v1
@@ -132,13 +133,8 @@
   $ hg serve -n test -p $HGPORT -d --pid-file=hg.pid
   $ cat hg.pid >> $DAEMON_PIDS
   $ get-with-headers.py localhost:$HGPORT 'raw-file/'
-  200 Script output follows
-  
-  
-  -rw-r--r-- 4 a
-  -rw-r--r-- 2 b
-  
-  
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 Cloning a shared repo via bundle2 results in a non-shared clone
 
   $ cd ..
@@ -258,6 +254,8 @@
 Explicitly kill daemons to let the test exit on Windows
 
   $ killdaemons.py
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
 Test sharing a repository which was created with store requirement disable
 

test-shelve.t#phasebased

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-shelve.t\n+++ c:/hgdev/src/tests/test-shelve.t#phasebased.err\n@@ -96,22 +96,80 @@\n   $ HGEDITOR=cat hg shelve\n   shelved as default\n   0 files updated, 0 files merged, 5 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg commit -q -m \'initial commit\'\n-\n-  $ hg shelve\n-  nothing changed\n-  [1]\n+  [1]\n+\n+  $ hg shelve\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n make sure shelve files were backed up\n \n   $ ls .hg/shelve-backup\n-  default.hg\n-  default.patch\n-  default.shelve\n+  ls: .hg/shelve-backup: $ENOENT$\n+  [2]\n \n checks to make sure we dont create a directory or\n hidden file while choosing a new shelve name\n@@ -119,1396 +177,245 @@\n when we are given a name\n \n   $ hg shelve -n foo/bar\n-  abort: shelved change names can not contain slashes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg shelve -n .baz\n-  abort: shelved change names can not start with \'.\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg shelve -n foo\\\\bar\n-  abort: shelved change names can not contain slashes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n when shelve has to choose itself\n \n   $ hg branch x/y -q\n   $ hg commit -q -m "Branch commit 0"\n-  $ hg shelve\n-  nothing changed\n-  [1]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg shelve\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch .x -q\n   $ hg commit -q -m "Branch commit 1"\n-  $ hg shelve\n-  nothing changed\n-  [1]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg shelve\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch x\\\\y -q\n   $ hg commit -q -m "Branch commit 2"\n-  $ hg shelve\n-  nothing changed\n-  [1]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg shelve\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n cleaning the branches made for name checking tests\n \n   $ hg up default -q\n+  abort: unknown revision \'default\'\n+  [255]\n   $ hg strip e9177275307e+6a6d231f43d+882bae7c62c2 -q\n+  abort: unknown revision \'e9177275307e\'\n+  [255]\n \n create an mq patch - shelving should work fine with a patch applied\n \n   $ echo n > n\n   $ hg add n\n   $ hg commit n -m second\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg qnew second.patch\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n shelve a change that we will delete later\n \n   $ echo a >> a/a\n-  $ hg shelve\n-  shelved as default\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  $TESTTMP.sh: line 82: a/a: $ENOENT$\n+  [1]\n+  $ hg shelve\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n set up some more complex changes to shelve\n \n   $ echo a >> a/a\n+  $TESTTMP.sh: line 86: a/a: $ENOENT$\n+  [1]\n   $ hg mv b b.rename\n-  moving b/b to b.rename/b\n+  b/b: deleted in working directory\n+  moving b/b to b.rename\n+  b/b has not been committed yet, so no copy data will be stored for b.rename.\n+  b.rename does not exist!\n   $ hg cp c c.copy\n+  c: deleted in working directory\n+  c has not been committed yet, so no copy data will be stored for c.copy.\n+  c.copy does not exist!\n   $ hg mv d ghost\n+  d: deleted in working directory\n+  d has not been committed yet, so no copy data will be stored for ghost.\n+  ghost does not exist!\n   $ rm ghost\n+  rm: cannot lstat `ghost\': $ENOENT$\n+  [1]\n   $ hg status -C\n-  M a/a\n-  A b.rename/b\n-    b/b\n-  A c.copy\n-    c\n-  R b/b\n-  R d\n-  ! ghost\n-    d\n+  A n\n+  ! a/a\n+  ! c\n+  ! x\n \n the common case - no options or filenames\n \n   $ hg shelve\n-  shelved as default-01\n-  3 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status -C\n+  A n\n+  ! a/a\n+  ! c\n+  ! x\n \n ensure that our shelved changes exist\n \n   $ hg shelve -l\n-  default-01      (*)* changes to: [mq]: second.patch (glob)\n-  default         (*)* changes to: [mq]: second.patch (glob)\n+  default         (6s ago)    (changes in empty repository)\n \n   $ hg shelve -l -p default\n-  default         (*)* changes to: [mq]: second.patch (glob)\n+  default         (7s ago)    (changes in empty repository)\n   \n   diff --git a/a/a b/a/a\n-  --- a/a/a\n-  +++ b/a/a\n-  @@ -1,1 +1,2 @@\n-   a\n-  +a\n-\n-  $ hg shelve --list --addremove\n-  abort: options \'--list\' and \'--addremove\' may not be used together\n-  [10]\n-\n-delete our older shelved change\n-\n-  $ hg shelve -d default\n-  $ hg qfinish -a -q\n-\n-ensure shelve backups aren\'t overwritten\n-\n-  $ ls .hg/shelve-backup/\n-  default-1.hg\n-  default-1.patch\n-  default-1.shelve\n-  default.hg\n-  default.patch\n-  default.shelve\n-\n-local edits should not prevent a shelved change from applying\n-\n-  $ printf "z\\na\\n" > a/a\n-  $ hg unshelve --keep\n-  unshelving change \'default-01\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a/a\n-\n-  $ hg revert --all -q\n-  $ rm a/a.orig b.rename/b c.copy\n-\n-apply it and make sure our state is as expected\n-\n-(this also tests that same timestamp prevents backups from being\n-removed, even though there are more than \'maxbackups\' backups)\n-\n-  $ f -t .hg/shelve-backup/default.patch\n-  .hg/shelve-backup/default.patch: file\n-  $ touch -t 200001010000 .hg/shelve-backup/default.patch\n-  $ f -t .hg/shelve-backup/default-1.patch\n-  .hg/shelve-backup/default-1.patch: file\n-  $ touch -t 200001010000 .hg/shelve-backup/default-1.patch\n-\n-  $ hg unshelve\n-  unshelving change \'default-01\'\n-  $ hg status -C\n-  M a/a\n-  A b.rename/b\n-    b/b\n-  A c.copy\n-    c\n-  R b/b\n-  R d\n-  $ hg shelve -l\n-\n-(both of default.hg and default-1.hg should be still kept, because it\n-is difficult to decide actual order of them from same timestamp)\n-\n-  $ ls .hg/shelve-backup/\n-  default-01.hg\n-  default-01.patch\n-  default-01.shelve\n-  default-1.hg\n-  default-1.patch\n-  default-1.shelve\n-  default.hg\n-  default.patch\n-  default.shelve\n-\n-  $ hg unshelve\n-  abort: no shelved changes to apply!\n-  [255]\n-  $ hg unshelve foo\n-  abort: shelved change \'foo\' not found\n-  [255]\n-\n-named shelves, specific filenames, and "commit messages" should all work\n-(this tests also that editor is invoked, if \'--edit\' is specified)\n-\n-  $ hg status -C\n-  M a/a\n-  A b.rename/b\n-    b/b\n-  A c.copy\n-    c\n-  R b/b\n-  R d\n-  $ HGEDITOR=cat hg shelve -q -n wibble -m wat -e a\n-  wat\n-  \n-  \n-  HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  HG: Leave message empty to abort commit.\n-  HG: --\n-  HG: user: shelve@localhost\n-  HG: branch \'default\'\n-  HG: changed a/a\n-\n-expect "a" to no longer be present, but status otherwise unchanged\n-\n-  $ hg status -C\n-  A b.rename/b\n-    b/b\n-  A c.copy\n-    c\n-  R b/b\n-  R d\n-  $ hg shelve -l --stat\n-  wibble          (*)    wat (glob)\n-   a/a |  1 +\n-   1 files changed, 1 insertions(+), 0 deletions(-)\n-\n-and now "a/a" should reappear\n-\n-  $ cd a\n-  $ hg unshelve -q wibble\n-  $ cd ..\n-  $ hg status -C\n-  M a/a\n-  A b.rename/b\n-    b/b\n-  A c.copy\n-    c\n-  R b/b\n-  R d\n-\n-ensure old shelve backups are being deleted automatically\n-\n-  $ ls .hg/shelve-backup/\n-  default-01.hg\n-  default-01.patch\n-  default-01.shelve\n-  wibble.hg\n-  wibble.patch\n-  wibble.shelve\n-\n-cause unshelving to result in a merge with \'a\' conflicting\n-\n-  $ hg shelve -q\n-  $ echo c>>a/a\n-  $ hg commit -m second\n-  $ hg tip --template \'{files}\\n\'\n-  a/a\n-\n-add an unrelated change that should be preserved\n-\n-  $ mkdir foo\n-  $ echo foo > foo/foo\n-  $ hg add foo/foo\n-\n-force a conflicted merge to occur\n-\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a/a\n-  warning: conflicts while merging a/a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n-  $ hg status -v\n-  M a/a\n-  M b.rename/b\n-  M c.copy\n-  R b/b\n-  R d\n-  ? a/a.orig\n-  # The repository is in an unfinished *unshelve* state.\n-  \n-  # Unresolved merge conflicts:\n-  # \n-  #     a/a\n-  # \n-  # To mark files as resolved:  hg resolve --mark FILE\n-  \n-  # To continue:    hg unshelve --continue\n-  # To abort:       hg unshelve --abort\n-  \n-\n-ensure that we have a merge with unresolved conflicts\n-\n-#if phasebased\n-  $ hg heads -q --template \'{rev}\\n\'\n-  8\n-  5\n-  $ hg parents -q --template \'{rev}\\n\'\n-  8\n-  5\n-#endif\n-\n-#if stripbased\n-  $ hg heads -q --template \'{rev}\\n\'\n-  5\n-  4\n-  $ hg parents -q --template \'{rev}\\n\'\n-  4\n-  5\n-#endif\n-\n-  $ hg status\n-  M a/a\n-  M b.rename/b\n-  M c.copy\n-  R b/b\n-  R d\n-  ? a/a.orig\n-  $ hg diff\n-  diff --git a/a/a b/a/a\n-  --- a/a/a\n-  +++ b/a/a\n-  @@ -1,2 +1,6 @@\n-   a\n-  +<<<<<<< working-copy: 2377350b6337 - shelve: pending changes temporary commit\n-   c\n-  +=======\n-  +a\n-  +>>>>>>> shelve:       203c9f771d2b - shelve: changes to: [mq]: second.patch\n-  diff --git a/b/b b/b.rename/b\n-  rename from b/b\n-  rename to b.rename/b\n-  diff --git a/c b/c.copy\n-  copy from c\n-  copy to c.copy\n-  diff --git a/d b/d\n-  deleted file mode 100644\n-  --- a/d\n-  +++ /dev/null\n-  @@ -1,1 +0,0 @@\n-  -d\n-  $ hg resolve -l\n-  U a/a\n-\n-  $ hg shelve\n-  abort: unshelve already in progress\n-  (use \'hg unshelve --continue\' or \'hg unshelve --abort\')\n-  [20]\n-\n-abort the unshelve and be happy\n-\n-  $ hg status\n-  M a/a\n-  M b.rename/b\n-  M c.copy\n-  R b/b\n-  R d\n-  ? a/a.orig\n-  $ hg unshelve -a\n-  unshelve of \'default\' aborted\n-  $ hg heads -q\n-  [37]:2e69b451d1ea (re)\n-  $ hg parents\n-  changeset:   [37]:2e69b451d1ea (re)\n-  tag:         tip\n-  parent:      3:509104101065 (?)\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     second\n-  \n-  $ hg resolve -l\n-  $ hg status\n-  A foo/foo\n-  ? a/a.orig\n-\n-try to continue with no unshelve underway\n-\n-  $ hg unshelve -c\n-  abort: no unshelve in progress\n-  [20]\n-  $ hg status\n-  A foo/foo\n-  ? a/a.orig\n-\n-redo the unshelve to get a conflict\n-\n-  $ hg unshelve -q\n-  warning: conflicts while merging a/a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n-\n-attempt to continue\n-\n-  $ hg unshelve -c\n-  abort: unresolved conflicts, can\'t continue\n-  (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [255]\n-\n-  $ hg revert -r . a/a\n-  $ hg resolve -m a/a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n-\n-  $ hg commit -m \'commit while unshelve in progress\'\n-  abort: unshelve already in progress\n-  (use \'hg unshelve --continue\' or \'hg unshelve --abort\')\n-  [20]\n-\n-  $ hg graft --continue\n-  abort: no graft in progress\n-  (continue: hg unshelve --continue)\n-  [20]\n-  $ hg unshelve -c\n-  unshelve of \'default\' complete\n-\n-ensure the repo is as we hope\n-\n-  $ hg parents\n-  changeset:   [37]:2e69b451d1ea (re)\n-  tag:         tip\n-  parent:      3:509104101065 (?)\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     second\n-  \n-  $ hg heads -q\n-  [37]:2e69b451d1ea (re)\n-\n-  $ hg status -C\n-  A b.rename/b\n-    b/b\n-  A c.copy\n-    c\n-  A foo/foo\n-  R b/b\n-  R d\n-  ? a/a.orig\n-\n-there should be no shelves left\n-\n-  $ hg shelve -l\n-\n-#if execbit\n-\n-ensure that metadata-only changes are shelved\n-\n-  $ chmod +x a/a\n-  $ hg shelve -q -n execbit a/a\n-  $ hg status a/a\n-  $ hg unshelve -q execbit\n-  $ hg status a/a\n-  M a/a\n-  $ hg revert a/a\n-\n-#else\n-\n-Dummy shelve op, to keep rev numbers aligned\n-\n-  $ echo foo > a/a\n-  $ hg shelve -q -n dummy a/a\n-  $ hg unshelve -q dummy\n-  $ hg revert a/a\n-\n-#endif\n-\n-#if symlink\n-\n-  $ rm a/a\n-  $ ln -s foo a/a\n-  $ hg shelve -q -n symlink a/a\n-  $ hg status a/a\n-  $ hg unshelve -q -n symlink\n-  $ hg status a/a\n-  M a/a\n-  $ hg revert a/a\n-\n-#else\n-\n-Dummy shelve op, to keep rev numbers aligned\n-\n-  $ echo bar > a/a\n-  $ hg shelve -q -n dummy a/a\n-  $ hg unshelve -q dummy\n-  $ hg revert a/a\n-\n-#endif\n-\n-set up another conflict between a commit and a shelved change\n-\n-  $ hg revert -q -C -a\n-  $ rm a/a.orig b.rename/b c.copy\n-  $ echo a >> a/a\n-  $ hg shelve -q\n-  $ echo x >> a/a\n-  $ hg ci -m \'create conflict\'\n-  $ hg add foo/foo\n-\n-if we resolve a conflict while unshelving, the unshelve should succeed\n-\n-  $ hg unshelve --tool :merge-other --keep\n-  unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a/a\n-  $ hg parents -q\n-  (4|13):33f7f61e6c5e (re)\n-  $ hg shelve -l\n-  default         (*)* changes to: second (glob)\n-  $ hg status\n-  M a/a\n-  A foo/foo\n-  $ cat a/a\n-  a\n-  c\n-  a\n-  $ cat > a/a << EOF\n-  > a\n-  > c\n-  > x\n-  > EOF\n-\n-  $ HGMERGE=true hg unshelve\n-  unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a/a\n-  note: unshelved changes already existed in the working copy\n-  $ hg parents -q\n-  (4|13):33f7f61e6c5e (re)\n-  $ hg shelve -l\n-  $ hg status\n-  A foo/foo\n-  $ cat a/a\n-  a\n-  c\n-  x\n-\n-test keep and cleanup\n-\n-  $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg shelve --list\n-  default         (*)* changes to: create conflict (glob)\n-  $ hg unshelve -k\n-  unshelving change \'default\'\n-  $ hg shelve --list\n-  default         (*)* changes to: create conflict (glob)\n-  $ hg shelve --cleanup\n-  $ hg shelve --list\n-\n-  $ hg shelve --cleanup --delete\n-  abort: options \'--cleanup\' and \'--delete\' may not be used together\n-  [10]\n-  $ hg shelve --cleanup --patch\n-  abort: options \'--cleanup\' and \'--patch\' may not be used together\n-  [10]\n-  $ hg shelve --cleanup --message MESSAGE\n-  abort: options \'--cleanup\' and \'--message\' may not be used together\n-  [10]\n-\n-test bookmarks\n-\n-  $ hg bookmark test\n-  $ hg bookmark\n-   \\* test                      (4|13):33f7f61e6c5e (re)\n-  $ hg shelve\n-  shelved as test\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg bookmark\n-   \\* test                      (4|13):33f7f61e6c5e (re)\n-  $ hg unshelve\n-  unshelving change \'test\'\n-  $ hg bookmark\n-   \\* test                      (4|13):33f7f61e6c5e (re)\n-\n-shelve should still work even if mq is disabled\n-\n-  $ hg --config extensions.mq=! shelve\n-  shelved as test\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg --config extensions.mq=! shelve --list\n-  test            (*)* changes to: create conflict (glob)\n-  $ hg bookmark\n-   \\* test                      (4|13):33f7f61e6c5e (re)\n-  $ hg --config extensions.mq=! unshelve\n-  unshelving change \'test\'\n-  $ hg bookmark\n-   \\* test                      (4|13):33f7f61e6c5e (re)\n-\n-Recreate some conflict again\n-\n-  $ hg up -C -r 2e69b451d1ea\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (leaving bookmark test)\n-  $ echo y >> a/a\n-  $ hg shelve\n-  shelved as default\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ hg up test\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (activating bookmark test)\n-  $ hg bookmark\n-   \\* test                      (4|13):33f7f61e6c5e (re)\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging a/a\n-  warning: conflicts while merging a/a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n-  $ hg bookmark\n-     test                      (4|13):33f7f61e6c5e (re)\n-\n-Test that resolving all conflicts in one direction (so that the rebase\n-is a no-op), works (issue4398)\n-\n-  $ hg revert -a -r .\n-  reverting a/a\n-  $ hg resolve -m a/a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n-  $ hg unshelve -c\n-  note: unshelved changes already existed in the working copy\n-  unshelve of \'default\' complete\n-  $ hg bookmark\n-   \\* test                      (4|13):33f7f61e6c5e (re)\n-  $ hg diff\n-  $ hg status\n-  ? a/a.orig\n-  ? foo/foo\n-  $ hg summary\n-  parent: (4|13):33f7f61e6c5e tip (re)\n-   create conflict\n-  branch: default\n-  bookmarks: *test\n-  commit: 2 unknown (clean)\n-  update: (current)\n-  phases: 5 draft\n-\n-  $ hg shelve --delete --stat\n-  abort: options \'--delete\' and \'--stat\' may not be used together\n-  [10]\n-  $ hg shelve --delete --name NAME\n-  abort: options \'--delete\' and \'--name\' may not be used together\n-  [10]\n-\n-Test interactive shelve\n-  $ cat <<EOF >> $HGRCPATH\n-  > [ui]\n-  > interactive = true\n-  > EOF\n-  $ echo \'a\' >> a/b\n-  $ cat a/a >> a/b\n-  $ echo \'x\' >> a/b\n-  $ mv a/b a/a\n-  $ echo \'a\' >> foo/foo\n-  $ hg st\n-  M a/a\n-  ? a/a.orig\n-  ? foo/foo\n-  $ cat a/a\n-  a\n-  a\n-  c\n-  x\n-  x\n-  $ cat foo/foo\n-  foo\n-  a\n-  $ hg shelve --interactive --config ui.interactive=false\n-  abort: running non-interactively\n-  [10]\n-  $ hg shelve --interactive << EOF\n-  > y\n-  > y\n-  > n\n-  > EOF\n-  diff --git a/a/a b/a/a\n-  2 hunks, 2 lines changed\n-  examine changes to \'a/a\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,3 +1,4 @@\n-  +a\n-   a\n-   c\n-   x\n-  record change 1/2 to \'a/a\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,3 +2,4 @@\n-   a\n-   c\n-   x\n-  +x\n-  record change 2/2 to \'a/a\'?\n-  (enter ? for help) [Ynesfdaq?] n\n-  \n-  shelved as test\n-  merging a/a\n-  0 files updated, 1 files merged, 0 files removed, 0 files unresolved\n-  $ cat a/a\n-  a\n-  c\n-  x\n-  x\n-  $ cat foo/foo\n-  foo\n-  a\n-  $ hg st\n-  M a/a\n-  ? foo/foo\n-  $ hg bookmark\n-   \\* test                      (4|13):33f7f61e6c5e (re)\n-there shouldn\'t be a merge state\n-  $ hg resolve -l\n-  $ hg unshelve\n-  unshelving change \'test\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a/a\n-  $ hg bookmark\n-   \\* test                      (4|13):33f7f61e6c5e (re)\n-  $ cat a/a\n-  a\n-  a\n-  c\n-  x\n-  x\n-\n-shelve --patch and shelve --stat should work with valid shelfnames\n-\n-  $ hg up --clean .\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (leaving bookmark test)\n-  $ hg shelve --list\n-  $ echo \'patch a\' > shelf-patch-a\n-  $ hg add shelf-patch-a\n-  $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ echo \'patch b\' > shelf-patch-b\n-  $ hg add shelf-patch-b\n-  $ hg shelve\n-  shelved as default-01\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg shelve --patch default default-01\n-  default-01      (*)* changes to: create conflict (glob)\n-  \n-  diff --git a/shelf-patch-b b/shelf-patch-b\n   new file mode 100644\n   --- /dev/null\n-  +++ b/shelf-patch-b\n+  +++ b/a/a\n   @@ -0,0 +1,1 @@\n-  +patch b\n-  default         (*)* changes to: create conflict (glob)\n-  \n-  diff --git a/shelf-patch-a b/shelf-patch-a\n+  +a\n+  diff --git a/b/b b/b/b\n   new file mode 100644\n   --- /dev/null\n-  +++ b/shelf-patch-a\n+  +++ b/b/b\n   @@ -0,0 +1,1 @@\n-  +patch a\n-  $ hg shelve --stat default default-01\n-  default-01      (*)* changes to: create conflict (glob)\n-   shelf-patch-b |  1 +\n-   1 files changed, 1 insertions(+), 0 deletions(-)\n-  default         (*)* changes to: create conflict (glob)\n-   shelf-patch-a |  1 +\n-   1 files changed, 1 insertions(+), 0 deletions(-)\n-  $ hg shelve --patch default\n-  default         (*)* changes to: create conflict (glob)\n-  \n-  diff --git a/shelf-patch-a b/shelf-patch-a\n-  new file mode 100644\n-  --- /dev/null\n-  +++ b/shelf-patch-a\n-  @@ -0,0 +1,1 @@\n-  +patch a\n-  $ hg shelve --stat default\n-  default         (*)* changes to: create conflict (glob)\n-   shelf-patch-a |  1 +\n-   1 files changed, 1 insertions(+), 0 deletions(-)\n-  $ hg shelve --patch nonexistentshelf\n-  abort: cannot find shelf nonexistentshelf\n-  [255]\n-  $ hg shelve --stat nonexistentshelf\n-  abort: cannot find shelf nonexistentshelf\n-  [255]\n-  $ hg shelve --patch default nonexistentshelf\n-  abort: cannot find shelf nonexistentshelf\n-  [255]\n-\n-when the user asks for a patch, we assume they want the most recent shelve if\n-they don\'t provide a shelve name\n-\n-  $ hg shelve --patch\n-  default-01      (*)* changes to: create conflict (glob)\n-  \n-  diff --git a/shelf-patch-b b/shelf-patch-b\n-  new file mode 100644\n-  --- /dev/null\n-  +++ b/shelf-patch-b\n-  @@ -0,0 +1,1 @@\n-  +patch b\n-\n-  $ cd ..\n-\n-Shelve from general delta repo uses bundle2 on disk\n---------------------------------------------------\n-\n-no general delta\n-\n-  $ hg clone --pull repo bundle1 --config format.usegeneraldelta=0\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 5 changesets with 8 changes to 6 files\n-  new changesets cc01e2b0c59f:33f7f61e6c5e\n-  updating to branch default\n-  6 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ cd bundle1\n-  $ echo babar > jungle\n-  $ hg add jungle\n-  $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg debugbundle .hg/shelved/*.hg\n-  330882a04d2ce8487636b1fb292e5beea77fa1e3\n-  $ cd ..\n-\n-with general delta\n-\n-  $ hg clone --pull repo bundle2 --config format.usegeneraldelta=1\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 5 changesets with 8 changes to 6 files\n-  new changesets cc01e2b0c59f:33f7f61e6c5e\n-  updating to branch default\n-  6 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ cd bundle2\n-  $ echo babar > jungle\n-  $ hg add jungle\n-  $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg debugbundle .hg/shelved/*.hg\n-  Stream params: {Compression: BZ}\n-  changegroup -- {nbchanges: 1, version: 02} (mandatory: True)\n-      330882a04d2ce8487636b1fb292e5beea77fa1e3\n-\n-Test shelve --keep\n-\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  $ hg shelve --keep --list\n-  abort: options \'--list\' and \'--keep\' may not be used together\n-  [10]\n-  $ hg shelve --keep --patch\n-  abort: options \'--patch\' and \'--keep\' may not be used together\n-  [10]\n-  $ hg shelve --keep --delete\n-  abort: options \'--delete\' and \'--keep\' may not be used together\n-  [10]\n-  $ hg shelve --keep\n-  shelved as default\n-  $ hg diff\n-  diff --git a/jungle b/jungle\n-  new file mode 100644\n-  --- /dev/null\n-  +++ b/jungle\n-  @@ -0,0 +1,1 @@\n-  +babar\n-\n-Test shelve --delete\n-\n-  $ hg shelve --list\n-  default         (*s ago)    changes to: create conflict (glob)\n-  $ hg shelve --delete doesnotexist\n-  abort: shelved change \'doesnotexist\' not found\n-  [255]\n-  $ hg shelve --delete default\n-\n-  $ cd ..\n-\n-Test visibility of in-memory changes inside transaction to external hook\n-------------------------------------------------------------------------\n-\n-  $ cd repo\n-\n-  $ echo xxxx >> x\n-  $ hg commit -m "#5: changes to invoke rebase"\n-\n-  $ cat > $TESTTMP/checkvisibility.sh <<EOF\n-  > echo "==== \\$1:"\n-  > hg parents --template "VISIBLE {rev}:{node|short}\\n"\n-  > # test that pending changes are hidden\n-  > unset HG_PENDING\n-  > hg parents --template "ACTUAL  {rev}:{node|short}\\n"\n-  > echo "===="\n-  > EOF\n-\n-  $ cat >> .hg/hgrc <<EOF\n-  > [defaults]\n-  > # to fix hash id of temporary revisions\n-  > unshelve = --date \'0 0\'\n-  > EOF\n-\n-"hg unshelve" at REV5 implies steps below:\n-\n-(1) commit changes in the working directory (REV6)\n-(2) unbundle shelved revision (REV7)\n-(3) rebase: merge REV7 into REV6 (REV6 => REV6, REV7)\n-(4) rebase: commit merged revision (REV8)\n-(5) rebase: update to REV6 (REV8 => REV6)\n-(6) update to REV5 (REV6 => REV5)\n-(7) abort transaction\n-\n-== test visibility to external preupdate hook\n-\n-  $ cat >> .hg/hgrc <<EOF\n-  > [hooks]\n-  > preupdate.visibility = sh $TESTTMP/checkvisibility.sh preupdate\n-  > EOF\n-\n-  $ echo nnnn >> n\n-\n-  $ sh $TESTTMP/checkvisibility.sh before-unshelving\n-  ==== before-unshelving:\n-  VISIBLE (5|19):703117a2acfb (re)\n-  ACTUAL  (5|19):703117a2acfb (re)\n-  ====\n-\n-  $ hg unshelve --keep default\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  ==== preupdate:\n-  VISIBLE (6|20):54c00d20fb3f (re)\n-  ACTUAL  (5|19):703117a2acfb (re)\n-  ====\n-  ==== preupdate:\n-  VISIBLE (8|21):8efe6f7537dc (re)\n-  ACTUAL  (5|19):703117a2acfb (re)\n-  ====\n-  ==== preupdate:\n-  VISIBLE (6|20):54c00d20fb3f (re)\n-  ACTUAL  (5|19):703117a2acfb (re)\n-  ====\n-\n-  $ cat >> .hg/hgrc <<EOF\n-  > [hooks]\n-  > preupdate.visibility =\n-  > EOF\n-\n-  $ sh $TESTTMP/checkvisibility.sh after-unshelving\n-  ==== after-unshelving:\n-  VISIBLE (5|19):703117a2acfb (re)\n-  ACTUAL  (5|19):703117a2acfb (re)\n-  ====\n-\n-== test visibility to external update hook\n-\n-  $ hg update -q -C 703117a2acfb\n-\n-  $ cat >> .hg/hgrc <<EOF\n-  > [hooks]\n-  > update.visibility = sh $TESTTMP/checkvisibility.sh update\n-  > EOF\n-\n-  $ echo nnnn >> n\n-\n-  $ sh $TESTTMP/checkvisibility.sh before-unshelving\n-  ==== before-unshelving:\n-  VISIBLE (5|19):703117a2acfb (re)\n-  ACTUAL  (5|19):703117a2acfb (re)\n-  ====\n-\n-  $ hg unshelve --keep default\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  ==== update:\n-  VISIBLE (6|20):54c00d20fb3f (re)\n-  VISIBLE 1?7:492ed9d705e5 (re)\n-  ACTUAL  (5|19):703117a2acfb (re)\n-  ====\n-  ==== update:\n-  VISIBLE (6|20):54c00d20fb3f (re)\n-  ACTUAL  (5|19):703117a2acfb (re)\n-  ====\n-  ==== update:\n-  VISIBLE (5|19):703117a2acfb (re)\n-  ACTUAL  (5|19):703117a2acfb (re)\n-  ====\n-\n-  $ cat >> .hg/hgrc <<EOF\n-  > [hooks]\n-  > update.visibility =\n-  > EOF\n-\n-  $ sh $TESTTMP/checkvisibility.sh after-unshelving\n-  ==== after-unshelving:\n-  VISIBLE (5|19):703117a2acfb (re)\n-  ACTUAL  (5|19):703117a2acfb (re)\n-  ====\n-\n-  $ cd ..\n-\n-Keep active bookmark while (un)shelving even on shared repo (issue4940)\n------------------------------------------------------------------------\n-\n-  $ cat <<EOF >> $HGRCPATH\n-  > [extensions]\n-  > share =\n-  > EOF\n-\n-  $ hg bookmarks -R repo\n-     test                      (4|13):33f7f61e6c5e (re)\n-  $ hg share -B repo share\n-  updating working directory\n-  6 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ cd share\n-\n-  $ hg bookmarks\n-     test                      (4|13):33f7f61e6c5e (re)\n-  $ hg bookmarks foo\n-  $ hg bookmarks\n-   \\* foo                       (5|19):703117a2acfb (re)\n-     test                      (4|13):33f7f61e6c5e (re)\n-  $ echo x >> x\n-  $ hg shelve\n-  shelved as foo\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ hg bookmarks\n-   \\* foo                       (5|19):703117a2acfb (re)\n-     test                      (4|13):33f7f61e6c5e (re)\n-\n-  $ hg unshelve\n-  unshelving change \'foo\'\n-  $ hg bookmarks\n-   \\* foo                       (5|19):703117a2acfb (re)\n-     test                      (4|13):33f7f61e6c5e (re)\n-\n-  $ cd ..\n-\n-Abort unshelve while merging (issue5123)\n-----------------------------------------\n-\n-  $ hg init issue5123\n-  $ cd issue5123\n-  $ echo > a\n-  $ hg ci -Am a\n-  adding a\n-  $ hg co null\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ echo > b\n-  $ hg ci -Am b\n-  adding b\n-  created new head\n-  $ echo > c\n-  $ hg add c\n-  $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg co 1\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ hg merge 0\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n--- successful merge with two parents\n-  $ hg log -G\n-  @  changeset:   1:406bf70c274f\n-     tag:         tip\n-     parent:      -1:000000000000\n-     user:        test\n-     date:        Thu Jan 01 00:00:00 1970 +0000\n-     summary:     b\n-  \n-  @  changeset:   0:ada8c9eb8252\n-     user:        test\n-     date:        Thu Jan 01 00:00:00 1970 +0000\n-     summary:     a\n-  \n--- trying to pull in the shelve bits\n--- unshelve should abort otherwise, it\'ll eat my second parent.\n-  $ hg unshelve\n-  abort: outstanding uncommitted merge\n-  (use \'hg commit\' or \'hg merge --abort\')\n-  [20]\n-\n-  $ cd ..\n-\n--- test for interactive mode on unshelve\n-\n-  $ hg init a\n-  $ cd a\n-  $ echo > b\n-  $ hg ci -Am b\n-  adding b\n-  $ echo > c\n-  $ echo > d\n-  $ hg add .\n-  adding c\n-  adding d\n-  $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n-  $ echo > e\n-  $ hg add e\n-  $ hg ci -m e\n-  $ hg shelve --patch\n-  default         (*s ago)    changes to: b (glob)\n-  \n+  +b\n   diff --git a/c b/c\n   new file mode 100644\n   --- /dev/null\n   +++ b/c\n   @@ -0,0 +1,1 @@\n-  +\n+  +c\n   diff --git a/d b/d\n   new file mode 100644\n   --- /dev/null\n   +++ b/d\n   @@ -0,0 +1,1 @@\n-  +\n-  $ hg unshelve -i <<EOF\n-  > y\n-  > y\n-  > y\n-  > n\n-  > EOF\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  diff --git a/c b/c\n-  new file mode 100644\n-  examine changes to \'c\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -0,0 +1,1 @@\n-  +\n-  record change 1/2 to \'c\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  diff --git a/d b/d\n-  new file mode 100644\n-  examine changes to \'d\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -0,0 +1,1 @@\n-  +\n-  record change 2/2 to \'d\'?\n-  (enter ? for help) [Ynesfdaq?] n\n-  \n-  $ ls -A\n-  .hg\n-  b\n-  c\n-  e\n--- shelve should not contain `c` now\n-  $ hg shelve --patch\n-  default         (*s ago)    changes to: b (glob)\n-  \n-  diff --git a/d b/d\n+  +d\n+  diff --git a/x b/x\n   new file mode 100644\n   --- /dev/null\n-  +++ b/d\n+  +++ b/x\n   @@ -0,0 +1,1 @@\n-  +\n-  $ hg unshelve -i <<EOF\n-  > y\n-  > y\n-  > EOF\n-  unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  diff --git a/d b/d\n-  new file mode 100644\n-  examine changes to \'d\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -0,0 +1,1 @@\n-  +\n-  record this change to \'d\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-\n-  $ hg status -v\n-  A c\n-  A d\n-  $ ls -A\n-  .hg\n-  b\n-  c\n-  d\n-  e\n-  $ hg shelve --list\n-\n--- now, unshelve selected changes from a file\n-\n-  $ echo B > foo\n-  $ hg add foo\n-  $ hg ci -m \'add B to foo\'\n-  $ cat > foo <<EOF\n-  > A\n-  > B\n-  > C\n-  > EOF\n-  $ echo > garbage\n-  $ hg st\n-  M foo\n-  ? garbage\n-  $ hg shelve --unknown\n-  shelved as default\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ cat foo\n-  B\n-  $ hg unshelve -i <<EOF\n-  > y\n-  > y\n-  > n\n-  > y\n-  > y\n-  > EOF\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  diff --git a/foo b/foo\n-  2 hunks, 2 lines changed\n-  examine changes to \'foo\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,1 +1,2 @@\n-  +A\n-   B\n-  record change 1/3 to \'foo\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,1 +2,2 @@\n-   B\n-  +C\n-  record change 2/3 to \'foo\'?\n-  (enter ? for help) [Ynesfdaq?] n\n-  \n-  diff --git a/garbage b/garbage\n-  new file mode 100644\n-  examine changes to \'garbage\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -0,0 +1,1 @@\n-  +\n-  record change 3/3 to \'garbage\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  $ hg st\n-  M foo\n-  ? garbage\n-  $ cat foo\n-  A\n-  B\n-  $ hg shelve --patch\n-  default         (*s ago)    changes to: add B to foo (glob)\n-  \n-  diff --git a/foo b/foo\n-  --- a/foo\n-  +++ b/foo\n-  @@ -1,2 +1,3 @@\n-   A\n-   B\n-  +C\n-\n--- unshelve interactive on conflicts\n-\n-  $ echo A >> bar1\n-  $ echo A >> bar2\n-  $ hg add bar1 bar2\n-  $ hg ci -m \'add A to bars\'\n-  $ echo B >> bar1\n-  $ echo B >> bar2\n-  $ hg shelve\n-  shelved as default-01\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ echo C >> bar1\n-  $ echo C >> bar2\n-  $ hg ci -m \'add C to bars\'\n-  $ hg unshelve -i\n-  unshelving change \'default-01\'\n-  rebasing shelved changes\n-  merging bar1\n-  merging bar2\n-  warning: conflicts while merging bar1! (edit, then use \'hg resolve --mark\')\n-  warning: conflicts while merging bar2! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n-\n-  $ cat > bar1 <<EOF\n-  > A\n-  > B\n-  > C\n-  > EOF\n-  $ cat > bar2 <<EOF\n-  > A\n-  > B\n-  > C\n-  > EOF\n-  $ hg resolve -m bar1 bar2\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n-\n--- using --continue with --interactive should throw an error\n-  $ hg unshelve --continue -i\n-  abort: cannot use both continue and interactive\n-  [255]\n-\n-  $ cat bar1\n-  A\n-  B\n-  C\n-\n-#if stripbased\n-  $ hg log -r 3:: -G\n-  @  changeset:   5:f1d5f53e397b\n-  |  tag:         tip\n-  |  parent:      3:e28fd7fa7938\n-  |  user:        shelve@localhost\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     changes to: add A to bars\n-  |\n-  | @  changeset:   4:fe451a778c81\n-  |/   user:        test\n-  |    date:        Thu Jan 01 00:00:00 1970 +0000\n-  |    summary:     add C to bars\n-  |\n-  o  changeset:   3:e28fd7fa7938\n-  |  user:        test\n-  ~  date:        Thu Jan 01 00:00:00 1970 +0000\n-     summary:     add A to bars\n-  \n-#endif\n-\n-  $ hg unshelve --continue <<EOF\n-  > y\n-  > y\n-  > y\n-  > n\n-  > EOF\n-  diff --git a/bar1 b/bar1\n-  1 hunks, 1 lines changed\n-  examine changes to \'bar1\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,2 +1,3 @@\n-   A\n-  +B\n-   C\n-  record change 1/2 to \'bar1\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  diff --git a/bar2 b/bar2\n-  1 hunks, 1 lines changed\n-  examine changes to \'bar2\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,2 +1,3 @@\n-   A\n-  +B\n-   C\n-  record change 2/2 to \'bar2\'?\n-  (enter ? for help) [Ynesfdaq?] n\n-  \n-  unshelve of \'default-01\' complete\n-\n-#if stripbased\n-  $ hg log -r 3:: -G\n-  @  changeset:   4:fe451a778c81\n-  |  tag:         tip\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     add C to bars\n-  |\n-  o  changeset:   3:e28fd7fa7938\n-  |  user:        test\n-  ~  date:        Thu Jan 01 00:00:00 1970 +0000\n-     summary:     add A to bars\n-  \n-#endif\n-\n-  $ hg unshelve --continue\n-  abort: no unshelve in progress\n-  [20]\n-\n-  $ hg shelve --list\n-  default-01      (*)* changes to: add A to bars (glob)\n-  default         (*)* changes to: add B to foo (glob)\n-  $ hg unshelve -n default-01 -i <<EOF\n-  > y\n-  > y\n-  > EOF\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  diff --git a/bar2 b/bar2\n-  1 hunks, 1 lines changed\n-  examine changes to \'bar2\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,2 +1,3 @@\n-   A\n-  +B\n-   C\n-  record this change to \'bar2\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n--- test for --interactive --keep\n-  $ hg unshelve -i --keep\n-  abort: --keep on --interactive is not yet supported\n-  [255]\n+  +x\n+\n+  $ hg shelve --list --addremove\n+  abort: options \'--list\' and \'--addremove\' may not be used together\n+  [10]\n+\n+delete our older shelved change\n+\n+  $ hg shelve -d default\n+  $ hg qfinish -a -q\n+\n+ensure shelve backups aren\'t overwritten\n+\n+  $ ls .hg/shelve-backup/\n+  default.hg\n+  default.patch\n+  default.shelve\n+\n+local edits should not prevent a shelved change from applying\n+\n+  $ printf "z\\na\\n" > a/a\n+  $TESTTMP.sh: line 114: a/a: $ENOENT$\n+  [1]\n+  $ hg unshelve --keep\n+  abort: no shelved changes to apply!\n+  [255]\n+\n+  $ hg revert --all -q\n+  $ rm a/a.orig b.rename/b c.copy\n+  rm: cannot lstat `a/a.orig\': $ENOENT$\n+  rm: cannot lstat `b.rename/b\': $ENOENT$\n+  rm: cannot lstat `c.copy\': $ENOENT$\n+  [1]\n+\n+apply it and make sure our state is as expected\n+\n+(this also tests that same timestamp prevents backups from being\n+removed, even though there are more than \'maxbackups\' backups)\n+\n+  $ f -t .hg/shelve-backup/default.patch\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n+  $ touch -t 200001010000 .hg/shelve-backup/default.patch\n+  $ f -t .hg/shelve-backup/default-1.patch\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n+  $ touch -t 200001010000 .hg/shelve-backup/default-1.patch\n+\n+  $ hg unshelve\n+  abort: no shelved changes to apply!\n+  [255]\n+  $ hg status -C\n+  ? n\n+  $ hg shelve -l\n+\n+(both of default.hg and default-1.hg should be still kept, because it\n+is difficult to decide actual order of them from same timestamp)\n+\n+  $ ls .hg/shelve-backup/\n+  default-1.patch\n+  default.hg\n+  default.patch\n+  default.shelve\n+\n+  $ hg unshelve\n+  abort: no shelved changes to apply!\n+  [255]\n+  $ hg unshelve foo\n+  abort: shelved change \'foo\' not found\n+  [255]\n+\n+named shelves, specific filenames, and "commit messages" should all work\n+(this tests also that editor is invoked, if \'--edit\' is specified)\n+\n+  $ hg status -C\n+  ? n\n+  $ HGEDITOR=cat hg shelve -q -n wibble -m wat -e a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+expect "a" to no longer be present, but status otherwise unchanged\n+\n+  $ hg status -C\n+  ? n\n+  $ hg shelve -l --stat\n+\n+and now "a/a" should reappear\n+\n+  $ cd a\n+  $TESTTMP.sh: line 150: cd: a: $ENOENT$\n+  $ hg unshelve -q wibble\n', 2137, 2139, 'truncated \\uXXXX escape') decoding diff, sorry

test-shelve.t#stripbased

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-shelve.t\n+++ c:/hgdev/src/tests/test-shelve.t#stripbased.err\n@@ -96,22 +96,80 @@\n   $ HGEDITOR=cat hg shelve\n   shelved as default\n   0 files updated, 0 files merged, 5 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg commit -q -m \'initial commit\'\n-\n-  $ hg shelve\n-  nothing changed\n-  [1]\n+  [1]\n+\n+  $ hg shelve\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n make sure shelve files were backed up\n \n   $ ls .hg/shelve-backup\n-  default.hg\n-  default.patch\n-  default.shelve\n+  ls: .hg/shelve-backup: $ENOENT$\n+  [2]\n \n checks to make sure we dont create a directory or\n hidden file while choosing a new shelve name\n@@ -119,1396 +177,245 @@\n when we are given a name\n \n   $ hg shelve -n foo/bar\n-  abort: shelved change names can not contain slashes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg shelve -n .baz\n-  abort: shelved change names can not start with \'.\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg shelve -n foo\\\\bar\n-  abort: shelved change names can not contain slashes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n when shelve has to choose itself\n \n   $ hg branch x/y -q\n   $ hg commit -q -m "Branch commit 0"\n-  $ hg shelve\n-  nothing changed\n-  [1]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg shelve\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch .x -q\n   $ hg commit -q -m "Branch commit 1"\n-  $ hg shelve\n-  nothing changed\n-  [1]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg shelve\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch x\\\\y -q\n   $ hg commit -q -m "Branch commit 2"\n-  $ hg shelve\n-  nothing changed\n-  [1]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg shelve\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n cleaning the branches made for name checking tests\n \n   $ hg up default -q\n+  abort: unknown revision \'default\'\n+  [255]\n   $ hg strip e9177275307e+6a6d231f43d+882bae7c62c2 -q\n+  abort: unknown revision \'e9177275307e\'\n+  [255]\n \n create an mq patch - shelving should work fine with a patch applied\n \n   $ echo n > n\n   $ hg add n\n   $ hg commit n -m second\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg qnew second.patch\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n shelve a change that we will delete later\n \n   $ echo a >> a/a\n-  $ hg shelve\n-  shelved as default\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  $TESTTMP.sh: line 82: a/a: $ENOENT$\n+  [1]\n+  $ hg shelve\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n set up some more complex changes to shelve\n \n   $ echo a >> a/a\n+  $TESTTMP.sh: line 86: a/a: $ENOENT$\n+  [1]\n   $ hg mv b b.rename\n-  moving b/b to b.rename/b\n+  b/b: deleted in working directory\n+  moving b/b to b.rename\n+  b/b has not been committed yet, so no copy data will be stored for b.rename.\n+  b.rename does not exist!\n   $ hg cp c c.copy\n+  c: deleted in working directory\n+  c has not been committed yet, so no copy data will be stored for c.copy.\n+  c.copy does not exist!\n   $ hg mv d ghost\n+  d: deleted in working directory\n+  d has not been committed yet, so no copy data will be stored for ghost.\n+  ghost does not exist!\n   $ rm ghost\n+  rm: cannot lstat `ghost\': $ENOENT$\n+  [1]\n   $ hg status -C\n-  M a/a\n-  A b.rename/b\n-    b/b\n-  A c.copy\n-    c\n-  R b/b\n-  R d\n-  ! ghost\n-    d\n+  A n\n+  ! a/a\n+  ! c\n+  ! x\n \n the common case - no options or filenames\n \n   $ hg shelve\n-  shelved as default-01\n-  3 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status -C\n+  A n\n+  ! a/a\n+  ! c\n+  ! x\n \n ensure that our shelved changes exist\n \n   $ hg shelve -l\n-  default-01      (*)* changes to: [mq]: second.patch (glob)\n-  default         (*)* changes to: [mq]: second.patch (glob)\n+  default         (8s ago)    (changes in empty repository)\n \n   $ hg shelve -l -p default\n-  default         (*)* changes to: [mq]: second.patch (glob)\n+  default         (8s ago)    (changes in empty repository)\n   \n   diff --git a/a/a b/a/a\n-  --- a/a/a\n-  +++ b/a/a\n-  @@ -1,1 +1,2 @@\n-   a\n-  +a\n-\n-  $ hg shelve --list --addremove\n-  abort: options \'--list\' and \'--addremove\' may not be used together\n-  [10]\n-\n-delete our older shelved change\n-\n-  $ hg shelve -d default\n-  $ hg qfinish -a -q\n-\n-ensure shelve backups aren\'t overwritten\n-\n-  $ ls .hg/shelve-backup/\n-  default-1.hg\n-  default-1.patch\n-  default-1.shelve\n-  default.hg\n-  default.patch\n-  default.shelve\n-\n-local edits should not prevent a shelved change from applying\n-\n-  $ printf "z\\na\\n" > a/a\n-  $ hg unshelve --keep\n-  unshelving change \'default-01\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a/a\n-\n-  $ hg revert --all -q\n-  $ rm a/a.orig b.rename/b c.copy\n-\n-apply it and make sure our state is as expected\n-\n-(this also tests that same timestamp prevents backups from being\n-removed, even though there are more than \'maxbackups\' backups)\n-\n-  $ f -t .hg/shelve-backup/default.patch\n-  .hg/shelve-backup/default.patch: file\n-  $ touch -t 200001010000 .hg/shelve-backup/default.patch\n-  $ f -t .hg/shelve-backup/default-1.patch\n-  .hg/shelve-backup/default-1.patch: file\n-  $ touch -t 200001010000 .hg/shelve-backup/default-1.patch\n-\n-  $ hg unshelve\n-  unshelving change \'default-01\'\n-  $ hg status -C\n-  M a/a\n-  A b.rename/b\n-    b/b\n-  A c.copy\n-    c\n-  R b/b\n-  R d\n-  $ hg shelve -l\n-\n-(both of default.hg and default-1.hg should be still kept, because it\n-is difficult to decide actual order of them from same timestamp)\n-\n-  $ ls .hg/shelve-backup/\n-  default-01.hg\n-  default-01.patch\n-  default-01.shelve\n-  default-1.hg\n-  default-1.patch\n-  default-1.shelve\n-  default.hg\n-  default.patch\n-  default.shelve\n-\n-  $ hg unshelve\n-  abort: no shelved changes to apply!\n-  [255]\n-  $ hg unshelve foo\n-  abort: shelved change \'foo\' not found\n-  [255]\n-\n-named shelves, specific filenames, and "commit messages" should all work\n-(this tests also that editor is invoked, if \'--edit\' is specified)\n-\n-  $ hg status -C\n-  M a/a\n-  A b.rename/b\n-    b/b\n-  A c.copy\n-    c\n-  R b/b\n-  R d\n-  $ HGEDITOR=cat hg shelve -q -n wibble -m wat -e a\n-  wat\n-  \n-  \n-  HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  HG: Leave message empty to abort commit.\n-  HG: --\n-  HG: user: shelve@localhost\n-  HG: branch \'default\'\n-  HG: changed a/a\n-\n-expect "a" to no longer be present, but status otherwise unchanged\n-\n-  $ hg status -C\n-  A b.rename/b\n-    b/b\n-  A c.copy\n-    c\n-  R b/b\n-  R d\n-  $ hg shelve -l --stat\n-  wibble          (*)    wat (glob)\n-   a/a |  1 +\n-   1 files changed, 1 insertions(+), 0 deletions(-)\n-\n-and now "a/a" should reappear\n-\n-  $ cd a\n-  $ hg unshelve -q wibble\n-  $ cd ..\n-  $ hg status -C\n-  M a/a\n-  A b.rename/b\n-    b/b\n-  A c.copy\n-    c\n-  R b/b\n-  R d\n-\n-ensure old shelve backups are being deleted automatically\n-\n-  $ ls .hg/shelve-backup/\n-  default-01.hg\n-  default-01.patch\n-  default-01.shelve\n-  wibble.hg\n-  wibble.patch\n-  wibble.shelve\n-\n-cause unshelving to result in a merge with \'a\' conflicting\n-\n-  $ hg shelve -q\n-  $ echo c>>a/a\n-  $ hg commit -m second\n-  $ hg tip --template \'{files}\\n\'\n-  a/a\n-\n-add an unrelated change that should be preserved\n-\n-  $ mkdir foo\n-  $ echo foo > foo/foo\n-  $ hg add foo/foo\n-\n-force a conflicted merge to occur\n-\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a/a\n-  warning: conflicts while merging a/a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n-  $ hg status -v\n-  M a/a\n-  M b.rename/b\n-  M c.copy\n-  R b/b\n-  R d\n-  ? a/a.orig\n-  # The repository is in an unfinished *unshelve* state.\n-  \n-  # Unresolved merge conflicts:\n-  # \n-  #     a/a\n-  # \n-  # To mark files as resolved:  hg resolve --mark FILE\n-  \n-  # To continue:    hg unshelve --continue\n-  # To abort:       hg unshelve --abort\n-  \n-\n-ensure that we have a merge with unresolved conflicts\n-\n-#if phasebased\n-  $ hg heads -q --template \'{rev}\\n\'\n-  8\n-  5\n-  $ hg parents -q --template \'{rev}\\n\'\n-  8\n-  5\n-#endif\n-\n-#if stripbased\n-  $ hg heads -q --template \'{rev}\\n\'\n-  5\n-  4\n-  $ hg parents -q --template \'{rev}\\n\'\n-  4\n-  5\n-#endif\n-\n-  $ hg status\n-  M a/a\n-  M b.rename/b\n-  M c.copy\n-  R b/b\n-  R d\n-  ? a/a.orig\n-  $ hg diff\n-  diff --git a/a/a b/a/a\n-  --- a/a/a\n-  +++ b/a/a\n-  @@ -1,2 +1,6 @@\n-   a\n-  +<<<<<<< working-copy: 2377350b6337 - shelve: pending changes temporary commit\n-   c\n-  +=======\n-  +a\n-  +>>>>>>> shelve:       203c9f771d2b - shelve: changes to: [mq]: second.patch\n-  diff --git a/b/b b/b.rename/b\n-  rename from b/b\n-  rename to b.rename/b\n-  diff --git a/c b/c.copy\n-  copy from c\n-  copy to c.copy\n-  diff --git a/d b/d\n-  deleted file mode 100644\n-  --- a/d\n-  +++ /dev/null\n-  @@ -1,1 +0,0 @@\n-  -d\n-  $ hg resolve -l\n-  U a/a\n-\n-  $ hg shelve\n-  abort: unshelve already in progress\n-  (use \'hg unshelve --continue\' or \'hg unshelve --abort\')\n-  [20]\n-\n-abort the unshelve and be happy\n-\n-  $ hg status\n-  M a/a\n-  M b.rename/b\n-  M c.copy\n-  R b/b\n-  R d\n-  ? a/a.orig\n-  $ hg unshelve -a\n-  unshelve of \'default\' aborted\n-  $ hg heads -q\n-  [37]:2e69b451d1ea (re)\n-  $ hg parents\n-  changeset:   [37]:2e69b451d1ea (re)\n-  tag:         tip\n-  parent:      3:509104101065 (?)\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     second\n-  \n-  $ hg resolve -l\n-  $ hg status\n-  A foo/foo\n-  ? a/a.orig\n-\n-try to continue with no unshelve underway\n-\n-  $ hg unshelve -c\n-  abort: no unshelve in progress\n-  [20]\n-  $ hg status\n-  A foo/foo\n-  ? a/a.orig\n-\n-redo the unshelve to get a conflict\n-\n-  $ hg unshelve -q\n-  warning: conflicts while merging a/a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n-\n-attempt to continue\n-\n-  $ hg unshelve -c\n-  abort: unresolved conflicts, can\'t continue\n-  (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [255]\n-\n-  $ hg revert -r . a/a\n-  $ hg resolve -m a/a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n-\n-  $ hg commit -m \'commit while unshelve in progress\'\n-  abort: unshelve already in progress\n-  (use \'hg unshelve --continue\' or \'hg unshelve --abort\')\n-  [20]\n-\n-  $ hg graft --continue\n-  abort: no graft in progress\n-  (continue: hg unshelve --continue)\n-  [20]\n-  $ hg unshelve -c\n-  unshelve of \'default\' complete\n-\n-ensure the repo is as we hope\n-\n-  $ hg parents\n-  changeset:   [37]:2e69b451d1ea (re)\n-  tag:         tip\n-  parent:      3:509104101065 (?)\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     second\n-  \n-  $ hg heads -q\n-  [37]:2e69b451d1ea (re)\n-\n-  $ hg status -C\n-  A b.rename/b\n-    b/b\n-  A c.copy\n-    c\n-  A foo/foo\n-  R b/b\n-  R d\n-  ? a/a.orig\n-\n-there should be no shelves left\n-\n-  $ hg shelve -l\n-\n-#if execbit\n-\n-ensure that metadata-only changes are shelved\n-\n-  $ chmod +x a/a\n-  $ hg shelve -q -n execbit a/a\n-  $ hg status a/a\n-  $ hg unshelve -q execbit\n-  $ hg status a/a\n-  M a/a\n-  $ hg revert a/a\n-\n-#else\n-\n-Dummy shelve op, to keep rev numbers aligned\n-\n-  $ echo foo > a/a\n-  $ hg shelve -q -n dummy a/a\n-  $ hg unshelve -q dummy\n-  $ hg revert a/a\n-\n-#endif\n-\n-#if symlink\n-\n-  $ rm a/a\n-  $ ln -s foo a/a\n-  $ hg shelve -q -n symlink a/a\n-  $ hg status a/a\n-  $ hg unshelve -q -n symlink\n-  $ hg status a/a\n-  M a/a\n-  $ hg revert a/a\n-\n-#else\n-\n-Dummy shelve op, to keep rev numbers aligned\n-\n-  $ echo bar > a/a\n-  $ hg shelve -q -n dummy a/a\n-  $ hg unshelve -q dummy\n-  $ hg revert a/a\n-\n-#endif\n-\n-set up another conflict between a commit and a shelved change\n-\n-  $ hg revert -q -C -a\n-  $ rm a/a.orig b.rename/b c.copy\n-  $ echo a >> a/a\n-  $ hg shelve -q\n-  $ echo x >> a/a\n-  $ hg ci -m \'create conflict\'\n-  $ hg add foo/foo\n-\n-if we resolve a conflict while unshelving, the unshelve should succeed\n-\n-  $ hg unshelve --tool :merge-other --keep\n-  unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a/a\n-  $ hg parents -q\n-  (4|13):33f7f61e6c5e (re)\n-  $ hg shelve -l\n-  default         (*)* changes to: second (glob)\n-  $ hg status\n-  M a/a\n-  A foo/foo\n-  $ cat a/a\n-  a\n-  c\n-  a\n-  $ cat > a/a << EOF\n-  > a\n-  > c\n-  > x\n-  > EOF\n-\n-  $ HGMERGE=true hg unshelve\n-  unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a/a\n-  note: unshelved changes already existed in the working copy\n-  $ hg parents -q\n-  (4|13):33f7f61e6c5e (re)\n-  $ hg shelve -l\n-  $ hg status\n-  A foo/foo\n-  $ cat a/a\n-  a\n-  c\n-  x\n-\n-test keep and cleanup\n-\n-  $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg shelve --list\n-  default         (*)* changes to: create conflict (glob)\n-  $ hg unshelve -k\n-  unshelving change \'default\'\n-  $ hg shelve --list\n-  default         (*)* changes to: create conflict (glob)\n-  $ hg shelve --cleanup\n-  $ hg shelve --list\n-\n-  $ hg shelve --cleanup --delete\n-  abort: options \'--cleanup\' and \'--delete\' may not be used together\n-  [10]\n-  $ hg shelve --cleanup --patch\n-  abort: options \'--cleanup\' and \'--patch\' may not be used together\n-  [10]\n-  $ hg shelve --cleanup --message MESSAGE\n-  abort: options \'--cleanup\' and \'--message\' may not be used together\n-  [10]\n-\n-test bookmarks\n-\n-  $ hg bookmark test\n-  $ hg bookmark\n-   \\* test                      (4|13):33f7f61e6c5e (re)\n-  $ hg shelve\n-  shelved as test\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg bookmark\n-   \\* test                      (4|13):33f7f61e6c5e (re)\n-  $ hg unshelve\n-  unshelving change \'test\'\n-  $ hg bookmark\n-   \\* test                      (4|13):33f7f61e6c5e (re)\n-\n-shelve should still work even if mq is disabled\n-\n-  $ hg --config extensions.mq=! shelve\n-  shelved as test\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg --config extensions.mq=! shelve --list\n-  test            (*)* changes to: create conflict (glob)\n-  $ hg bookmark\n-   \\* test                      (4|13):33f7f61e6c5e (re)\n-  $ hg --config extensions.mq=! unshelve\n-  unshelving change \'test\'\n-  $ hg bookmark\n-   \\* test                      (4|13):33f7f61e6c5e (re)\n-\n-Recreate some conflict again\n-\n-  $ hg up -C -r 2e69b451d1ea\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (leaving bookmark test)\n-  $ echo y >> a/a\n-  $ hg shelve\n-  shelved as default\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ hg up test\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (activating bookmark test)\n-  $ hg bookmark\n-   \\* test                      (4|13):33f7f61e6c5e (re)\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging a/a\n-  warning: conflicts while merging a/a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n-  $ hg bookmark\n-     test                      (4|13):33f7f61e6c5e (re)\n-\n-Test that resolving all conflicts in one direction (so that the rebase\n-is a no-op), works (issue4398)\n-\n-  $ hg revert -a -r .\n-  reverting a/a\n-  $ hg resolve -m a/a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n-  $ hg unshelve -c\n-  note: unshelved changes already existed in the working copy\n-  unshelve of \'default\' complete\n-  $ hg bookmark\n-   \\* test                      (4|13):33f7f61e6c5e (re)\n-  $ hg diff\n-  $ hg status\n-  ? a/a.orig\n-  ? foo/foo\n-  $ hg summary\n-  parent: (4|13):33f7f61e6c5e tip (re)\n-   create conflict\n-  branch: default\n-  bookmarks: *test\n-  commit: 2 unknown (clean)\n-  update: (current)\n-  phases: 5 draft\n-\n-  $ hg shelve --delete --stat\n-  abort: options \'--delete\' and \'--stat\' may not be used together\n-  [10]\n-  $ hg shelve --delete --name NAME\n-  abort: options \'--delete\' and \'--name\' may not be used together\n-  [10]\n-\n-Test interactive shelve\n-  $ cat <<EOF >> $HGRCPATH\n-  > [ui]\n-  > interactive = true\n-  > EOF\n-  $ echo \'a\' >> a/b\n-  $ cat a/a >> a/b\n-  $ echo \'x\' >> a/b\n-  $ mv a/b a/a\n-  $ echo \'a\' >> foo/foo\n-  $ hg st\n-  M a/a\n-  ? a/a.orig\n-  ? foo/foo\n-  $ cat a/a\n-  a\n-  a\n-  c\n-  x\n-  x\n-  $ cat foo/foo\n-  foo\n-  a\n-  $ hg shelve --interactive --config ui.interactive=false\n-  abort: running non-interactively\n-  [10]\n-  $ hg shelve --interactive << EOF\n-  > y\n-  > y\n-  > n\n-  > EOF\n-  diff --git a/a/a b/a/a\n-  2 hunks, 2 lines changed\n-  examine changes to \'a/a\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,3 +1,4 @@\n-  +a\n-   a\n-   c\n-   x\n-  record change 1/2 to \'a/a\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,3 +2,4 @@\n-   a\n-   c\n-   x\n-  +x\n-  record change 2/2 to \'a/a\'?\n-  (enter ? for help) [Ynesfdaq?] n\n-  \n-  shelved as test\n-  merging a/a\n-  0 files updated, 1 files merged, 0 files removed, 0 files unresolved\n-  $ cat a/a\n-  a\n-  c\n-  x\n-  x\n-  $ cat foo/foo\n-  foo\n-  a\n-  $ hg st\n-  M a/a\n-  ? foo/foo\n-  $ hg bookmark\n-   \\* test                      (4|13):33f7f61e6c5e (re)\n-there shouldn\'t be a merge state\n-  $ hg resolve -l\n-  $ hg unshelve\n-  unshelving change \'test\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a/a\n-  $ hg bookmark\n-   \\* test                      (4|13):33f7f61e6c5e (re)\n-  $ cat a/a\n-  a\n-  a\n-  c\n-  x\n-  x\n-\n-shelve --patch and shelve --stat should work with valid shelfnames\n-\n-  $ hg up --clean .\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (leaving bookmark test)\n-  $ hg shelve --list\n-  $ echo \'patch a\' > shelf-patch-a\n-  $ hg add shelf-patch-a\n-  $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ echo \'patch b\' > shelf-patch-b\n-  $ hg add shelf-patch-b\n-  $ hg shelve\n-  shelved as default-01\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg shelve --patch default default-01\n-  default-01      (*)* changes to: create conflict (glob)\n-  \n-  diff --git a/shelf-patch-b b/shelf-patch-b\n   new file mode 100644\n   --- /dev/null\n-  +++ b/shelf-patch-b\n+  +++ b/a/a\n   @@ -0,0 +1,1 @@\n-  +patch b\n-  default         (*)* changes to: create conflict (glob)\n-  \n-  diff --git a/shelf-patch-a b/shelf-patch-a\n+  +a\n+  diff --git a/b/b b/b/b\n   new file mode 100644\n   --- /dev/null\n-  +++ b/shelf-patch-a\n+  +++ b/b/b\n   @@ -0,0 +1,1 @@\n-  +patch a\n-  $ hg shelve --stat default default-01\n-  default-01      (*)* changes to: create conflict (glob)\n-   shelf-patch-b |  1 +\n-   1 files changed, 1 insertions(+), 0 deletions(-)\n-  default         (*)* changes to: create conflict (glob)\n-   shelf-patch-a |  1 +\n-   1 files changed, 1 insertions(+), 0 deletions(-)\n-  $ hg shelve --patch default\n-  default         (*)* changes to: create conflict (glob)\n-  \n-  diff --git a/shelf-patch-a b/shelf-patch-a\n-  new file mode 100644\n-  --- /dev/null\n-  +++ b/shelf-patch-a\n-  @@ -0,0 +1,1 @@\n-  +patch a\n-  $ hg shelve --stat default\n-  default         (*)* changes to: create conflict (glob)\n-   shelf-patch-a |  1 +\n-   1 files changed, 1 insertions(+), 0 deletions(-)\n-  $ hg shelve --patch nonexistentshelf\n-  abort: cannot find shelf nonexistentshelf\n-  [255]\n-  $ hg shelve --stat nonexistentshelf\n-  abort: cannot find shelf nonexistentshelf\n-  [255]\n-  $ hg shelve --patch default nonexistentshelf\n-  abort: cannot find shelf nonexistentshelf\n-  [255]\n-\n-when the user asks for a patch, we assume they want the most recent shelve if\n-they don\'t provide a shelve name\n-\n-  $ hg shelve --patch\n-  default-01      (*)* changes to: create conflict (glob)\n-  \n-  diff --git a/shelf-patch-b b/shelf-patch-b\n-  new file mode 100644\n-  --- /dev/null\n-  +++ b/shelf-patch-b\n-  @@ -0,0 +1,1 @@\n-  +patch b\n-\n-  $ cd ..\n-\n-Shelve from general delta repo uses bundle2 on disk\n---------------------------------------------------\n-\n-no general delta\n-\n-  $ hg clone --pull repo bundle1 --config format.usegeneraldelta=0\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 5 changesets with 8 changes to 6 files\n-  new changesets cc01e2b0c59f:33f7f61e6c5e\n-  updating to branch default\n-  6 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ cd bundle1\n-  $ echo babar > jungle\n-  $ hg add jungle\n-  $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg debugbundle .hg/shelved/*.hg\n-  330882a04d2ce8487636b1fb292e5beea77fa1e3\n-  $ cd ..\n-\n-with general delta\n-\n-  $ hg clone --pull repo bundle2 --config format.usegeneraldelta=1\n-  requesting all changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 5 changesets with 8 changes to 6 files\n-  new changesets cc01e2b0c59f:33f7f61e6c5e\n-  updating to branch default\n-  6 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ cd bundle2\n-  $ echo babar > jungle\n-  $ hg add jungle\n-  $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg debugbundle .hg/shelved/*.hg\n-  Stream params: {Compression: BZ}\n-  changegroup -- {nbchanges: 1, version: 02} (mandatory: True)\n-      330882a04d2ce8487636b1fb292e5beea77fa1e3\n-\n-Test shelve --keep\n-\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  $ hg shelve --keep --list\n-  abort: options \'--list\' and \'--keep\' may not be used together\n-  [10]\n-  $ hg shelve --keep --patch\n-  abort: options \'--patch\' and \'--keep\' may not be used together\n-  [10]\n-  $ hg shelve --keep --delete\n-  abort: options \'--delete\' and \'--keep\' may not be used together\n-  [10]\n-  $ hg shelve --keep\n-  shelved as default\n-  $ hg diff\n-  diff --git a/jungle b/jungle\n-  new file mode 100644\n-  --- /dev/null\n-  +++ b/jungle\n-  @@ -0,0 +1,1 @@\n-  +babar\n-\n-Test shelve --delete\n-\n-  $ hg shelve --list\n-  default         (*s ago)    changes to: create conflict (glob)\n-  $ hg shelve --delete doesnotexist\n-  abort: shelved change \'doesnotexist\' not found\n-  [255]\n-  $ hg shelve --delete default\n-\n-  $ cd ..\n-\n-Test visibility of in-memory changes inside transaction to external hook\n-------------------------------------------------------------------------\n-\n-  $ cd repo\n-\n-  $ echo xxxx >> x\n-  $ hg commit -m "#5: changes to invoke rebase"\n-\n-  $ cat > $TESTTMP/checkvisibility.sh <<EOF\n-  > echo "==== \\$1:"\n-  > hg parents --template "VISIBLE {rev}:{node|short}\\n"\n-  > # test that pending changes are hidden\n-  > unset HG_PENDING\n-  > hg parents --template "ACTUAL  {rev}:{node|short}\\n"\n-  > echo "===="\n-  > EOF\n-\n-  $ cat >> .hg/hgrc <<EOF\n-  > [defaults]\n-  > # to fix hash id of temporary revisions\n-  > unshelve = --date \'0 0\'\n-  > EOF\n-\n-"hg unshelve" at REV5 implies steps below:\n-\n-(1) commit changes in the working directory (REV6)\n-(2) unbundle shelved revision (REV7)\n-(3) rebase: merge REV7 into REV6 (REV6 => REV6, REV7)\n-(4) rebase: commit merged revision (REV8)\n-(5) rebase: update to REV6 (REV8 => REV6)\n-(6) update to REV5 (REV6 => REV5)\n-(7) abort transaction\n-\n-== test visibility to external preupdate hook\n-\n-  $ cat >> .hg/hgrc <<EOF\n-  > [hooks]\n-  > preupdate.visibility = sh $TESTTMP/checkvisibility.sh preupdate\n-  > EOF\n-\n-  $ echo nnnn >> n\n-\n-  $ sh $TESTTMP/checkvisibility.sh before-unshelving\n-  ==== before-unshelving:\n-  VISIBLE (5|19):703117a2acfb (re)\n-  ACTUAL  (5|19):703117a2acfb (re)\n-  ====\n-\n-  $ hg unshelve --keep default\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  ==== preupdate:\n-  VISIBLE (6|20):54c00d20fb3f (re)\n-  ACTUAL  (5|19):703117a2acfb (re)\n-  ====\n-  ==== preupdate:\n-  VISIBLE (8|21):8efe6f7537dc (re)\n-  ACTUAL  (5|19):703117a2acfb (re)\n-  ====\n-  ==== preupdate:\n-  VISIBLE (6|20):54c00d20fb3f (re)\n-  ACTUAL  (5|19):703117a2acfb (re)\n-  ====\n-\n-  $ cat >> .hg/hgrc <<EOF\n-  > [hooks]\n-  > preupdate.visibility =\n-  > EOF\n-\n-  $ sh $TESTTMP/checkvisibility.sh after-unshelving\n-  ==== after-unshelving:\n-  VISIBLE (5|19):703117a2acfb (re)\n-  ACTUAL  (5|19):703117a2acfb (re)\n-  ====\n-\n-== test visibility to external update hook\n-\n-  $ hg update -q -C 703117a2acfb\n-\n-  $ cat >> .hg/hgrc <<EOF\n-  > [hooks]\n-  > update.visibility = sh $TESTTMP/checkvisibility.sh update\n-  > EOF\n-\n-  $ echo nnnn >> n\n-\n-  $ sh $TESTTMP/checkvisibility.sh before-unshelving\n-  ==== before-unshelving:\n-  VISIBLE (5|19):703117a2acfb (re)\n-  ACTUAL  (5|19):703117a2acfb (re)\n-  ====\n-\n-  $ hg unshelve --keep default\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  ==== update:\n-  VISIBLE (6|20):54c00d20fb3f (re)\n-  VISIBLE 1?7:492ed9d705e5 (re)\n-  ACTUAL  (5|19):703117a2acfb (re)\n-  ====\n-  ==== update:\n-  VISIBLE (6|20):54c00d20fb3f (re)\n-  ACTUAL  (5|19):703117a2acfb (re)\n-  ====\n-  ==== update:\n-  VISIBLE (5|19):703117a2acfb (re)\n-  ACTUAL  (5|19):703117a2acfb (re)\n-  ====\n-\n-  $ cat >> .hg/hgrc <<EOF\n-  > [hooks]\n-  > update.visibility =\n-  > EOF\n-\n-  $ sh $TESTTMP/checkvisibility.sh after-unshelving\n-  ==== after-unshelving:\n-  VISIBLE (5|19):703117a2acfb (re)\n-  ACTUAL  (5|19):703117a2acfb (re)\n-  ====\n-\n-  $ cd ..\n-\n-Keep active bookmark while (un)shelving even on shared repo (issue4940)\n------------------------------------------------------------------------\n-\n-  $ cat <<EOF >> $HGRCPATH\n-  > [extensions]\n-  > share =\n-  > EOF\n-\n-  $ hg bookmarks -R repo\n-     test                      (4|13):33f7f61e6c5e (re)\n-  $ hg share -B repo share\n-  updating working directory\n-  6 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ cd share\n-\n-  $ hg bookmarks\n-     test                      (4|13):33f7f61e6c5e (re)\n-  $ hg bookmarks foo\n-  $ hg bookmarks\n-   \\* foo                       (5|19):703117a2acfb (re)\n-     test                      (4|13):33f7f61e6c5e (re)\n-  $ echo x >> x\n-  $ hg shelve\n-  shelved as foo\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ hg bookmarks\n-   \\* foo                       (5|19):703117a2acfb (re)\n-     test                      (4|13):33f7f61e6c5e (re)\n-\n-  $ hg unshelve\n-  unshelving change \'foo\'\n-  $ hg bookmarks\n-   \\* foo                       (5|19):703117a2acfb (re)\n-     test                      (4|13):33f7f61e6c5e (re)\n-\n-  $ cd ..\n-\n-Abort unshelve while merging (issue5123)\n-----------------------------------------\n-\n-  $ hg init issue5123\n-  $ cd issue5123\n-  $ echo > a\n-  $ hg ci -Am a\n-  adding a\n-  $ hg co null\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ echo > b\n-  $ hg ci -Am b\n-  adding b\n-  created new head\n-  $ echo > c\n-  $ hg add c\n-  $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg co 1\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ hg merge 0\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n--- successful merge with two parents\n-  $ hg log -G\n-  @  changeset:   1:406bf70c274f\n-     tag:         tip\n-     parent:      -1:000000000000\n-     user:        test\n-     date:        Thu Jan 01 00:00:00 1970 +0000\n-     summary:     b\n-  \n-  @  changeset:   0:ada8c9eb8252\n-     user:        test\n-     date:        Thu Jan 01 00:00:00 1970 +0000\n-     summary:     a\n-  \n--- trying to pull in the shelve bits\n--- unshelve should abort otherwise, it\'ll eat my second parent.\n-  $ hg unshelve\n-  abort: outstanding uncommitted merge\n-  (use \'hg commit\' or \'hg merge --abort\')\n-  [20]\n-\n-  $ cd ..\n-\n--- test for interactive mode on unshelve\n-\n-  $ hg init a\n-  $ cd a\n-  $ echo > b\n-  $ hg ci -Am b\n-  adding b\n-  $ echo > c\n-  $ echo > d\n-  $ hg add .\n-  adding c\n-  adding d\n-  $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n-  $ echo > e\n-  $ hg add e\n-  $ hg ci -m e\n-  $ hg shelve --patch\n-  default         (*s ago)    changes to: b (glob)\n-  \n+  +b\n   diff --git a/c b/c\n   new file mode 100644\n   --- /dev/null\n   +++ b/c\n   @@ -0,0 +1,1 @@\n-  +\n+  +c\n   diff --git a/d b/d\n   new file mode 100644\n   --- /dev/null\n   +++ b/d\n   @@ -0,0 +1,1 @@\n-  +\n-  $ hg unshelve -i <<EOF\n-  > y\n-  > y\n-  > y\n-  > n\n-  > EOF\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  diff --git a/c b/c\n-  new file mode 100644\n-  examine changes to \'c\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -0,0 +1,1 @@\n-  +\n-  record change 1/2 to \'c\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  diff --git a/d b/d\n-  new file mode 100644\n-  examine changes to \'d\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -0,0 +1,1 @@\n-  +\n-  record change 2/2 to \'d\'?\n-  (enter ? for help) [Ynesfdaq?] n\n-  \n-  $ ls -A\n-  .hg\n-  b\n-  c\n-  e\n--- shelve should not contain `c` now\n-  $ hg shelve --patch\n-  default         (*s ago)    changes to: b (glob)\n-  \n-  diff --git a/d b/d\n+  +d\n+  diff --git a/x b/x\n   new file mode 100644\n   --- /dev/null\n-  +++ b/d\n+  +++ b/x\n   @@ -0,0 +1,1 @@\n-  +\n-  $ hg unshelve -i <<EOF\n-  > y\n-  > y\n-  > EOF\n-  unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  diff --git a/d b/d\n-  new file mode 100644\n-  examine changes to \'d\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -0,0 +1,1 @@\n-  +\n-  record this change to \'d\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-\n-  $ hg status -v\n-  A c\n-  A d\n-  $ ls -A\n-  .hg\n-  b\n-  c\n-  d\n-  e\n-  $ hg shelve --list\n-\n--- now, unshelve selected changes from a file\n-\n-  $ echo B > foo\n-  $ hg add foo\n-  $ hg ci -m \'add B to foo\'\n-  $ cat > foo <<EOF\n-  > A\n-  > B\n-  > C\n-  > EOF\n-  $ echo > garbage\n-  $ hg st\n-  M foo\n-  ? garbage\n-  $ hg shelve --unknown\n-  shelved as default\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ cat foo\n-  B\n-  $ hg unshelve -i <<EOF\n-  > y\n-  > y\n-  > n\n-  > y\n-  > y\n-  > EOF\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  diff --git a/foo b/foo\n-  2 hunks, 2 lines changed\n-  examine changes to \'foo\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,1 +1,2 @@\n-  +A\n-   B\n-  record change 1/3 to \'foo\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,1 +2,2 @@\n-   B\n-  +C\n-  record change 2/3 to \'foo\'?\n-  (enter ? for help) [Ynesfdaq?] n\n-  \n-  diff --git a/garbage b/garbage\n-  new file mode 100644\n-  examine changes to \'garbage\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -0,0 +1,1 @@\n-  +\n-  record change 3/3 to \'garbage\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  $ hg st\n-  M foo\n-  ? garbage\n-  $ cat foo\n-  A\n-  B\n-  $ hg shelve --patch\n-  default         (*s ago)    changes to: add B to foo (glob)\n-  \n-  diff --git a/foo b/foo\n-  --- a/foo\n-  +++ b/foo\n-  @@ -1,2 +1,3 @@\n-   A\n-   B\n-  +C\n-\n--- unshelve interactive on conflicts\n-\n-  $ echo A >> bar1\n-  $ echo A >> bar2\n-  $ hg add bar1 bar2\n-  $ hg ci -m \'add A to bars\'\n-  $ echo B >> bar1\n-  $ echo B >> bar2\n-  $ hg shelve\n-  shelved as default-01\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ echo C >> bar1\n-  $ echo C >> bar2\n-  $ hg ci -m \'add C to bars\'\n-  $ hg unshelve -i\n-  unshelving change \'default-01\'\n-  rebasing shelved changes\n-  merging bar1\n-  merging bar2\n-  warning: conflicts while merging bar1! (edit, then use \'hg resolve --mark\')\n-  warning: conflicts while merging bar2! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n-\n-  $ cat > bar1 <<EOF\n-  > A\n-  > B\n-  > C\n-  > EOF\n-  $ cat > bar2 <<EOF\n-  > A\n-  > B\n-  > C\n-  > EOF\n-  $ hg resolve -m bar1 bar2\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n-\n--- using --continue with --interactive should throw an error\n-  $ hg unshelve --continue -i\n-  abort: cannot use both continue and interactive\n-  [255]\n-\n-  $ cat bar1\n-  A\n-  B\n-  C\n-\n-#if stripbased\n-  $ hg log -r 3:: -G\n-  @  changeset:   5:f1d5f53e397b\n-  |  tag:         tip\n-  |  parent:      3:e28fd7fa7938\n-  |  user:        shelve@localhost\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     changes to: add A to bars\n-  |\n-  | @  changeset:   4:fe451a778c81\n-  |/   user:        test\n-  |    date:        Thu Jan 01 00:00:00 1970 +0000\n-  |    summary:     add C to bars\n-  |\n-  o  changeset:   3:e28fd7fa7938\n-  |  user:        test\n-  ~  date:        Thu Jan 01 00:00:00 1970 +0000\n-     summary:     add A to bars\n-  \n-#endif\n-\n-  $ hg unshelve --continue <<EOF\n-  > y\n-  > y\n-  > y\n-  > n\n-  > EOF\n-  diff --git a/bar1 b/bar1\n-  1 hunks, 1 lines changed\n-  examine changes to \'bar1\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,2 +1,3 @@\n-   A\n-  +B\n-   C\n-  record change 1/2 to \'bar1\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  diff --git a/bar2 b/bar2\n-  1 hunks, 1 lines changed\n-  examine changes to \'bar2\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,2 +1,3 @@\n-   A\n-  +B\n-   C\n-  record change 2/2 to \'bar2\'?\n-  (enter ? for help) [Ynesfdaq?] n\n-  \n-  unshelve of \'default-01\' complete\n-\n-#if stripbased\n-  $ hg log -r 3:: -G\n-  @  changeset:   4:fe451a778c81\n-  |  tag:         tip\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     add C to bars\n-  |\n-  o  changeset:   3:e28fd7fa7938\n-  |  user:        test\n-  ~  date:        Thu Jan 01 00:00:00 1970 +0000\n-     summary:     add A to bars\n-  \n-#endif\n-\n-  $ hg unshelve --continue\n-  abort: no unshelve in progress\n-  [20]\n-\n-  $ hg shelve --list\n-  default-01      (*)* changes to: add A to bars (glob)\n-  default         (*)* changes to: add B to foo (glob)\n-  $ hg unshelve -n default-01 -i <<EOF\n-  > y\n-  > y\n-  > EOF\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  diff --git a/bar2 b/bar2\n-  1 hunks, 1 lines changed\n-  examine changes to \'bar2\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,2 +1,3 @@\n-   A\n-  +B\n-   C\n-  record this change to \'bar2\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n--- test for --interactive --keep\n-  $ hg unshelve -i --keep\n-  abort: --keep on --interactive is not yet supported\n-  [255]\n+  +x\n+\n+  $ hg shelve --list --addremove\n+  abort: options \'--list\' and \'--addremove\' may not be used together\n+  [10]\n+\n+delete our older shelved change\n+\n+  $ hg shelve -d default\n+  $ hg qfinish -a -q\n+\n+ensure shelve backups aren\'t overwritten\n+\n+  $ ls .hg/shelve-backup/\n+  default.hg\n+  default.patch\n+  default.shelve\n+\n+local edits should not prevent a shelved change from applying\n+\n+  $ printf "z\\na\\n" > a/a\n+  $TESTTMP.sh: line 114: a/a: $ENOENT$\n+  [1]\n+  $ hg unshelve --keep\n+  abort: no shelved changes to apply!\n+  [255]\n+\n+  $ hg revert --all -q\n+  $ rm a/a.orig b.rename/b c.copy\n+  rm: cannot lstat `a/a.orig\': $ENOENT$\n+  rm: cannot lstat `b.rename/b\': $ENOENT$\n+  rm: cannot lstat `c.copy\': $ENOENT$\n+  [1]\n+\n+apply it and make sure our state is as expected\n+\n+(this also tests that same timestamp prevents backups from being\n+removed, even though there are more than \'maxbackups\' backups)\n+\n+  $ f -t .hg/shelve-backup/default.patch\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n+  $ touch -t 200001010000 .hg/shelve-backup/default.patch\n+  $ f -t .hg/shelve-backup/default-1.patch\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n+  $ touch -t 200001010000 .hg/shelve-backup/default-1.patch\n+\n+  $ hg unshelve\n+  abort: no shelved changes to apply!\n+  [255]\n+  $ hg status -C\n+  ? n\n+  $ hg shelve -l\n+\n+(both of default.hg and default-1.hg should be still kept, because it\n+is difficult to decide actual order of them from same timestamp)\n+\n+  $ ls .hg/shelve-backup/\n+  default-1.patch\n+  default.hg\n+  default.patch\n+  default.shelve\n+\n+  $ hg unshelve\n+  abort: no shelved changes to apply!\n+  [255]\n+  $ hg unshelve foo\n+  abort: shelved change \'foo\' not found\n+  [255]\n+\n+named shelves, specific filenames, and "commit messages" should all work\n+(this tests also that editor is invoked, if \'--edit\' is specified)\n+\n+  $ hg status -C\n+  ? n\n+  $ HGEDITOR=cat hg shelve -q -n wibble -m wat -e a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+expect "a" to no longer be present, but status otherwise unchanged\n+\n+  $ hg status -C\n+  ? n\n+  $ hg shelve -l --stat\n+\n+and now "a/a" should reappear\n+\n+  $ cd a\n+  $TESTTMP.sh: line 150: cd: a: $ENOENT$\n+  $ hg unshelve -q wibble\n', 2137, 2139, 'truncated \\uXXXX escape') decoding diff, sorry

test-shelve2.t#phasebased#abortcommand#continuecommand

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-shelve2.t\n+++ c:/hgdev/src/tests/test-shelve2.t#phasebased#abortcommand#continuecommand.err\n@@ -52,16 +52,74 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg rebase -d 6c103be8f4e4 --config extensions.rebase=\n   rebasing 2:323bfa07f744( tip)? "xyz" (re)\n   merging x\n-  saved backup bundle to \\$TESTTMP/shelverebase/.hg/strip-backup/323bfa07f744-(78114325|7ae538ef)-rebase.hg (re)\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  M z\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  M x\n \n   $ cd ..\n \n@@ -82,25 +140,86 @@\n   $ hg shelve\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg up -q 0e067c57feba\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  A d\n+  abort: uncommitted changes\n+  (commit or update --clean to discard changes)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ! d\n \n unshelve should work on an ancestor of the original commit\n \n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up 3903775176ed\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n   $ hg unshelve\n   unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  A d\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n \n test bug 4073 we need to enable obsolete markers for it\n \n@@ -109,26 +228,34 @@\n   > evolution.createmarkers=True\n   > EOF\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg debugobsolete `hg log -r 0e067c57feba -T \'{node}\'`\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n-  $ hg unshelve\n-  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n unshelve should leave unknown files alone (issue4113)\n \n   $ echo e > e\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n   ? e\n   $ hg unshelve\n   unshelving change \'default\'\n-  $ hg status\n-  A d\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? e\n   $ cat e\n   e\n@@ -137,31 +264,43 @@\n \n   $ hg add e\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo z > e\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat e\n-  e\n+  z\n   $ cat e.orig\n-  z\n+  cat: e.orig: $ENOENT$\n+  [1]\n   $ rm e.orig\n+  rm: cannot lstat `e.orig\': $ENOENT$\n+  [1]\n \n restores backup of unknown file to right directory\n \n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo z > e\n   $ mkdir dir\n   $ hg unshelve --cwd dir\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rmdir dir\n   $ cat e\n-  e\n+  z\n   $ cat e.orig\n-  z\n+  cat: e.orig: $ENOENT$\n+  [1]\n \n unshelve and conflicts with tracked and untracked files\n \n@@ -169,34 +308,46 @@\n \n   $ rm -f *.orig\n   $ hg ci -qm \'commit stuff\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase -p null:\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n  no other changes - no merge:\n \n   $ echo f > f\n   $ hg add f\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo g > f\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n+  A e\n   A f\n-  ? f.orig\n   $ cat f\n-  f\n+  g\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n \n  other uncommitted changes - merge:\n \n   $ hg st\n+  A e\n   A f\n-  ? f.orig\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n #if repobundlerepo\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}\' -R bundle://.hg/shelved/default.hg -r \'bundle()\' --hidden\n   o  [48]  changes to: commit stuff  shelve@localhost (re)\n@@ -204,22 +355,21 @@\n   ~\n #endif\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}\'\n-  @  [37]  commit stuff  test (re)\n+  o  2  c  test\n   |\n-  | o  2  c  test\n+  | o  1  b  test\n   |/\n-  o  0  a  test\n+  @  0  a  test\n   \n   $ mv f.orig f\n+  mv: cannot stat `f.orig\': $ENOENT$\n+  [1]\n   $ echo 1 > a\n   $ hg unshelve --date \'1073741824 0\'\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging f\n-  warning: conflicts while merging f! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n #if phasebased\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}  {date|isodate}\'\n@@ -250,58 +400,62 @@\n #endif\n \n   $ hg st\n-  M f\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f\n-  <<<<<<< working-copy: d44eae5c3d33 - shelve: pending changes temporary commit\n   g\n-  =======\n-  f\n-  >>>>>>> shelve:       aef214a5229c - shelve: changes to: commit stuff\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n   $ hg unshelve --abort -t false\n   tool option will be ignored\n-  unshelve of \'default\' aborted\n+  abort: no unshelve in progress\n+  [20]\n   $ hg st\n   M a\n-  ? f.orig\n+  A e\n+  A f\n   $ cat f.orig\n-  g\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n+  cat: f.orig: $ENOENT$\n+  [1]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n   M a\n+  A e\n   A f\n-  ? f.orig\n \n  other committed changes - merge:\n \n   $ hg shelve f\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg ci a -m \'intermediate other change\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ mv f.orig f\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging f\n-  warning: conflicts while merging f! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  mv: cannot stat `f.orig\': $ENOENT$\n+  [1]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n-  M f\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f\n-  <<<<<<< working-copy: 6b563750f973 - test: intermediate other change\n   g\n-  =======\n-  f\n-  >>>>>>> shelve:       aef214a5229c - shelve: changes to: commit stuff\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n \n #if abortcommand\n when in dry-run mode\n@@ -310,11 +464,15 @@\n #endif\n \n   $ hg abort\n-  unshelve of \'default\' aborted\n+  abort: no operation in progress\n+  [20]\n   $ hg st\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n   $ hg shelve --delete default\n   $ cd ..\n \n@@ -341,13 +499,68 @@\n   $ hg commit -A -m \'root\' -q\n   $ echo \'\' > root\n   $ hg shelve -q\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo \'contADDent\' > root\n   $ hg unshelve -q --config \'ui.origbackuppath=.hg/origbackups\'\n-  warning: conflicts while merging root! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ ls .hg/origbackups\n-  root\n+  ls: .hg/origbackups: $ENOENT$\n+  [2]\n   $ rm -rf .hg/origbackups\n \n test Abort unshelve always gets user out of the unshelved state\n@@ -355,9 +568,11 @@\n \n with a corrupted shelve state file\n   $ sed \'s/ae8c668541e8/123456789012/\' .hg/shelvedstate > ../corrupt-shelvedstate\n+  sed: can\'t read .hg/shelvedstate: $ENOENT$\n+  [2]\n   $ mv ../corrupt-shelvedstate .hg/shelvestate\n   $ hg unshelve --abort 2>&1 | grep \'aborted\'\n-  unshelve of \'default\' aborted\n+  [1]\n   $ hg summary\n   parent: 0:ae8c668541e8 tip\n    root\n@@ -386,29 +601,89 @@\n   $ hg shelve --unknown\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  $ hg status\n-  ? unknown\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg status\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   $ rm unknown\n+  rm: cannot lstat `unknown\': $ENOENT$\n+  [1]\n \n If I shelve, add the file, and unshelve, does it stay added?\n \n   $ echo unknown > unknown\n   $ hg shelve -u\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ? unknown\n   $ touch unknown\n   $ hg add unknown\n   $ hg status\n   A unknown\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging unknown\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n   A unknown\n   $ hg forget unknown\n@@ -418,21 +693,29 @@\n \n   $ echo unknown > unknown\n   $ hg shelve -u\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ? unknown\n   $ touch unknown\n   $ hg add unknown\n   $ hg commit -qm "Add unknown"\n-  $ hg status\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging unknown\n-  $ hg status\n-  M unknown\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  A unknown\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  A unknown\n   $ hg remove --force unknown\n   $ hg commit -qm "Remove unknown"\n+  [1]\n \n   $ cd ..\n \n@@ -459,6 +742,60 @@\n   $ hg shelve a\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   new-branch\n   $ hg status\n@@ -469,30 +806,38 @@\n   M b\n   A c\n   $ hg shelve --exclude c\n-  shelved as default-01\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n   new-branch\n   $ hg status\n+  M b\n   A c\n   $ hg shelve --include c\n-  shelved as default-02\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n   new-branch\n   $ hg status\n+  M b\n+  A c\n   $ echo "d" >> d\n   $ hg add d\n   $ hg status\n+  M b\n+  A c\n   A d\n \n We expect that bare-shelve will not keep branch in current working directory.\n \n   $ hg shelve\n-  shelved as default-03\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n-  default\n+  new-branch\n   $ cd ..\n \n When i shelve commit on newly created branch i expect\n@@ -514,6 +859,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "bbb" >> b\n@@ -521,12 +920,13 @@\n   ? b\n   $ hg unshelve\n   unshelving change \'default\'\n-  marked working directory as branch test\n-  $ hg status\n-  M a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? b\n   $ hg branch\n-  test\n+  default\n   $ cd ..\n \n When i shelve commit on newly created branch, make\n@@ -551,6 +951,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "ccc" >> a\n@@ -558,27 +1012,29 @@\n   M a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo "aaabbbccc" > a\n   $ rm a.orig\n+  rm: cannot lstat `a.orig\': $ENOENT$\n+  [1]\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg continue\n-  marked working directory as branch test\n-  unshelve of \'default\' complete\n+  abort: no operation in progress\n+  [20]\n   $ cat a\n   aaabbbccc\n   $ hg status\n   M a\n   $ hg branch\n-  test\n+  default\n   $ hg commit -m "test-commit"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n When i shelve on test branch, update to default branch\n and unshelve i expect that it will not preserve previous\n@@ -587,14 +1043,18 @@\n   $ echo "xxx" > b\n   $ hg add b\n   $ hg shelve\n-  shelved as test\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg update -r 7049e48789d7\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ hg unshelve\n-  unshelving change \'test\'\n-  rebasing shelved changes\n-  $ hg status\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  M a\n   A b\n   $ hg branch\n   default\n@@ -625,6 +1085,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "ccc" >> a\n@@ -632,24 +1146,27 @@\n   M a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Removing restore branch information from shelvedstate file(making it looks like\n in previous versions) and running unshelve --continue\n \n   $ cp .hg/shelvedstate .hg/shelvedstate_old\n+  cp: cannot stat `.hg/shelvedstate\': $ENOENT$\n+  [1]\n   $ cat .hg/shelvedstate_old | grep -v \'branchtorestore\' > .hg/shelvedstate\n+  cat: .hg/shelvedstate_old: $ENOENT$\n+  [1]\n \n   $ echo "aaabbbccc" > a\n   $ rm a.orig\n+  rm: cannot lstat `a.orig\': $ENOENT$\n+  [1]\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n \n #if continuecommand\n   $ hg continue --dry-run\n@@ -657,7 +1174,9 @@\n #endif\n \n   $ hg continue\n-  unshelve of \'default\' complete\n+  abort: corrupted shelved state file\n+  (please run hg unshelve --abort to abort unshelve operation)\n+  [255]\n   $ cat a\n   aaabbbccc\n   $ hg status\n@@ -684,6 +1203,60 @@\n   $ hg shelve a\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   test\n   $ hg branch default\n@@ -694,8 +1267,10 @@\n   ? b\n   $ hg unshelve\n   unshelving change \'default\'\n-  $ hg status\n-  M a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? b\n   $ hg branch\n   default\n@@ -707,15 +1282,69 @@\n   $ hg shelve\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo text2 > file && hg ci -Am text1\n-  adding file\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging file\n-  warning: conflicts while merging file! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo somethingsomething > .hg/shelvedstate\n \n Unshelve --continue fails with appropriate message if shelvedstate is corrupted\n@@ -740,8 +1369,8 @@\n   [20]\n #else\n   $ hg abort\n-  aborting the merge, updating back to 9451eaa6eee3\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: no operation in progress\n+  [20]\n #endif\n   $ cd ..\n \n@@ -753,21 +1382,77 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo 3 >> file && hg ci -Am 13\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg shelve --list\n   default         (*s ago) * changes to: 1 (glob)\n   $ hg unshelve --keep\n   unshelving change \'default\'\n-  rebasing shelved changes\n-  merging file\n-  warning: conflicts while merging file! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg resolve --mark file\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg continue\n-  unshelve of \'default\' complete\n+  abort: no operation in progress\n+  [20]\n   $ hg shelve --list\n   default         (*s ago) * changes to: 1 (glob)\n   $ cd ..\n@@ -780,21 +1465,79 @@\n   $ echo aa > a && hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ rm b\n   $ hg st\n   ! b\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg shelve\n-  shelved as default\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rm a && echo b > b\n   $ hg st\n   ! a\n   $ hg unshelve\n   unshelving change \'default\'\n-  abort: shelved change touches missing files\n-  (run hg status to see which files are missing)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg st\n   ! a\n@@ -810,16 +1553,70 @@\n   $ hg shelve --name ashelve\n   shelved as ashelve\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo 2 > a\n   $ hg ci -Am a\n-  adding a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg unshelve\n   unshelving change \'ashelve\'\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n putting v1 shelvedstate file in place of a created v2\n   $ cat << EOF > .hg/shelvedstate\n   > 1\n@@ -834,11 +1631,13 @@\n   > EOF\n   $ echo 1 > a\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n mercurial does not crash\n   $ hg continue\n-  unshelve of \'ashelve\' complete\n+  abort: corrupted shelved state file\n+  (please run hg unshelve --abort to abort unshelve operation)\n+  [255]\n \n #if phasebased\n \n@@ -897,25 +1696,76 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo foobar > a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg log --template \'{desc|firstline}  {author}  {date|isodate} \\n\' -r .\n-  pending changes temporary commit  shelve@localhost  1970-01-01 00:00 +0000 \n+  initial commit  test  1970-01-01 00:00 +0000 \n   $ hg merge --abort\n-  abort: cannot abort merge with unshelve in progress\n-  (use \'hg unshelve --continue\' or \'hg unshelve --abort\')\n+  abort: no merge in progress\n   [20]\n \n   $ hg unshelve --abort\n-  unshelve of \'default\' aborted\n+  abort: no unshelve in progress\n+  [20]\n \n   $ hg log -G --template \'{desc|firstline}  {author}  {date|isodate} \\n\' -r .\n   @  initial commit  test  1970-01-01 00:00 +0000\n@@ -930,16 +1780,66 @@\n   $ hg ci -qAm r0\n   $ echo "this will be shelved" >> foo\n   $ hg shelve -q\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo "this is in wdir, conflicts with shelve" >> foo\n   $ hg unshelve -q\n-  warning: conflicts while merging foo! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat foo\n   r0\n-  <<<<<<< working-copy: 0b2fcf2a90e9 - shelve: pending changes temporary commit\n   this is in wdir, conflicts with shelve\n-  =======\n-  this will be shelved\n-  >>>>>>> shelve:       9c072a2163db - shelve: changes to: r0\n   $ cd ..\n', 2155, 2157, 'truncated \\uXXXX escape') decoding diff, sorry

test-shelve2.t#phasebased#abortcommand#continueflag

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-shelve2.t\n+++ c:/hgdev/src/tests/test-shelve2.t#phasebased#abortcommand#continueflag.err\n@@ -52,16 +52,74 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg rebase -d 6c103be8f4e4 --config extensions.rebase=\n   rebasing 2:323bfa07f744( tip)? "xyz" (re)\n   merging x\n-  saved backup bundle to \\$TESTTMP/shelverebase/.hg/strip-backup/323bfa07f744-(78114325|7ae538ef)-rebase.hg (re)\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  M z\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  M x\n \n   $ cd ..\n \n@@ -82,25 +140,86 @@\n   $ hg shelve\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg up -q 0e067c57feba\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  A d\n+  abort: uncommitted changes\n+  (commit or update --clean to discard changes)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ! d\n \n unshelve should work on an ancestor of the original commit\n \n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up 3903775176ed\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n   $ hg unshelve\n   unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  A d\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n \n test bug 4073 we need to enable obsolete markers for it\n \n@@ -109,26 +228,34 @@\n   > evolution.createmarkers=True\n   > EOF\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg debugobsolete `hg log -r 0e067c57feba -T \'{node}\'`\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n-  $ hg unshelve\n-  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n unshelve should leave unknown files alone (issue4113)\n \n   $ echo e > e\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n   ? e\n   $ hg unshelve\n   unshelving change \'default\'\n-  $ hg status\n-  A d\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? e\n   $ cat e\n   e\n@@ -137,31 +264,43 @@\n \n   $ hg add e\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo z > e\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat e\n-  e\n+  z\n   $ cat e.orig\n-  z\n+  cat: e.orig: $ENOENT$\n+  [1]\n   $ rm e.orig\n+  rm: cannot lstat `e.orig\': $ENOENT$\n+  [1]\n \n restores backup of unknown file to right directory\n \n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo z > e\n   $ mkdir dir\n   $ hg unshelve --cwd dir\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rmdir dir\n   $ cat e\n-  e\n+  z\n   $ cat e.orig\n-  z\n+  cat: e.orig: $ENOENT$\n+  [1]\n \n unshelve and conflicts with tracked and untracked files\n \n@@ -169,34 +308,46 @@\n \n   $ rm -f *.orig\n   $ hg ci -qm \'commit stuff\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase -p null:\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n  no other changes - no merge:\n \n   $ echo f > f\n   $ hg add f\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo g > f\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n+  A e\n   A f\n-  ? f.orig\n   $ cat f\n-  f\n+  g\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n \n  other uncommitted changes - merge:\n \n   $ hg st\n+  A e\n   A f\n-  ? f.orig\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n #if repobundlerepo\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}\' -R bundle://.hg/shelved/default.hg -r \'bundle()\' --hidden\n   o  [48]  changes to: commit stuff  shelve@localhost (re)\n@@ -204,22 +355,21 @@\n   ~\n #endif\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}\'\n-  @  [37]  commit stuff  test (re)\n+  o  2  c  test\n   |\n-  | o  2  c  test\n+  | o  1  b  test\n   |/\n-  o  0  a  test\n+  @  0  a  test\n   \n   $ mv f.orig f\n+  mv: cannot stat `f.orig\': $ENOENT$\n+  [1]\n   $ echo 1 > a\n   $ hg unshelve --date \'1073741824 0\'\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging f\n-  warning: conflicts while merging f! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n #if phasebased\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}  {date|isodate}\'\n@@ -250,58 +400,62 @@\n #endif\n \n   $ hg st\n-  M f\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f\n-  <<<<<<< working-copy: d44eae5c3d33 - shelve: pending changes temporary commit\n   g\n-  =======\n-  f\n-  >>>>>>> shelve:       aef214a5229c - shelve: changes to: commit stuff\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n   $ hg unshelve --abort -t false\n   tool option will be ignored\n-  unshelve of \'default\' aborted\n+  abort: no unshelve in progress\n+  [20]\n   $ hg st\n   M a\n-  ? f.orig\n+  A e\n+  A f\n   $ cat f.orig\n-  g\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n+  cat: f.orig: $ENOENT$\n+  [1]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n   M a\n+  A e\n   A f\n-  ? f.orig\n \n  other committed changes - merge:\n \n   $ hg shelve f\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg ci a -m \'intermediate other change\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ mv f.orig f\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging f\n-  warning: conflicts while merging f! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  mv: cannot stat `f.orig\': $ENOENT$\n+  [1]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n-  M f\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f\n-  <<<<<<< working-copy: 6b563750f973 - test: intermediate other change\n   g\n-  =======\n-  f\n-  >>>>>>> shelve:       aef214a5229c - shelve: changes to: commit stuff\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n \n #if abortcommand\n when in dry-run mode\n@@ -310,11 +464,15 @@\n #endif\n \n   $ hg abort\n-  unshelve of \'default\' aborted\n+  abort: no operation in progress\n+  [20]\n   $ hg st\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n   $ hg shelve --delete default\n   $ cd ..\n \n@@ -341,13 +499,68 @@\n   $ hg commit -A -m \'root\' -q\n   $ echo \'\' > root\n   $ hg shelve -q\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo \'contADDent\' > root\n   $ hg unshelve -q --config \'ui.origbackuppath=.hg/origbackups\'\n-  warning: conflicts while merging root! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ ls .hg/origbackups\n-  root\n+  ls: .hg/origbackups: $ENOENT$\n+  [2]\n   $ rm -rf .hg/origbackups\n \n test Abort unshelve always gets user out of the unshelved state\n@@ -355,9 +568,11 @@\n \n with a corrupted shelve state file\n   $ sed \'s/ae8c668541e8/123456789012/\' .hg/shelvedstate > ../corrupt-shelvedstate\n+  sed: can\'t read .hg/shelvedstate: $ENOENT$\n+  [2]\n   $ mv ../corrupt-shelvedstate .hg/shelvestate\n   $ hg unshelve --abort 2>&1 | grep \'aborted\'\n-  unshelve of \'default\' aborted\n+  [1]\n   $ hg summary\n   parent: 0:ae8c668541e8 tip\n    root\n@@ -386,29 +601,89 @@\n   $ hg shelve --unknown\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  $ hg status\n-  ? unknown\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg status\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   $ rm unknown\n+  rm: cannot lstat `unknown\': $ENOENT$\n+  [1]\n \n If I shelve, add the file, and unshelve, does it stay added?\n \n   $ echo unknown > unknown\n   $ hg shelve -u\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ? unknown\n   $ touch unknown\n   $ hg add unknown\n   $ hg status\n   A unknown\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging unknown\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n   A unknown\n   $ hg forget unknown\n@@ -418,21 +693,29 @@\n \n   $ echo unknown > unknown\n   $ hg shelve -u\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ? unknown\n   $ touch unknown\n   $ hg add unknown\n   $ hg commit -qm "Add unknown"\n-  $ hg status\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging unknown\n-  $ hg status\n-  M unknown\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  A unknown\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  A unknown\n   $ hg remove --force unknown\n   $ hg commit -qm "Remove unknown"\n+  [1]\n \n   $ cd ..\n \n@@ -459,6 +742,60 @@\n   $ hg shelve a\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   new-branch\n   $ hg status\n@@ -469,30 +806,38 @@\n   M b\n   A c\n   $ hg shelve --exclude c\n-  shelved as default-01\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n   new-branch\n   $ hg status\n+  M b\n   A c\n   $ hg shelve --include c\n-  shelved as default-02\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n   new-branch\n   $ hg status\n+  M b\n+  A c\n   $ echo "d" >> d\n   $ hg add d\n   $ hg status\n+  M b\n+  A c\n   A d\n \n We expect that bare-shelve will not keep branch in current working directory.\n \n   $ hg shelve\n-  shelved as default-03\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n-  default\n+  new-branch\n   $ cd ..\n \n When i shelve commit on newly created branch i expect\n@@ -514,6 +859,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "bbb" >> b\n@@ -521,12 +920,13 @@\n   ? b\n   $ hg unshelve\n   unshelving change \'default\'\n-  marked working directory as branch test\n-  $ hg status\n-  M a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? b\n   $ hg branch\n-  test\n+  default\n   $ cd ..\n \n When i shelve commit on newly created branch, make\n@@ -551,6 +951,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "ccc" >> a\n@@ -558,27 +1012,29 @@\n   M a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo "aaabbbccc" > a\n   $ rm a.orig\n+  rm: cannot lstat `a.orig\': $ENOENT$\n+  [1]\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg continue\n-  marked working directory as branch test\n-  unshelve of \'default\' complete\n+  abort: no operation in progress\n+  [20]\n   $ cat a\n   aaabbbccc\n   $ hg status\n   M a\n   $ hg branch\n-  test\n+  default\n   $ hg commit -m "test-commit"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n When i shelve on test branch, update to default branch\n and unshelve i expect that it will not preserve previous\n@@ -587,14 +1043,18 @@\n   $ echo "xxx" > b\n   $ hg add b\n   $ hg shelve\n-  shelved as test\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg update -r 7049e48789d7\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ hg unshelve\n-  unshelving change \'test\'\n-  rebasing shelved changes\n-  $ hg status\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  M a\n   A b\n   $ hg branch\n   default\n@@ -625,6 +1085,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "ccc" >> a\n@@ -632,24 +1146,27 @@\n   M a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Removing restore branch information from shelvedstate file(making it looks like\n in previous versions) and running unshelve --continue\n \n   $ cp .hg/shelvedstate .hg/shelvedstate_old\n+  cp: cannot stat `.hg/shelvedstate\': $ENOENT$\n+  [1]\n   $ cat .hg/shelvedstate_old | grep -v \'branchtorestore\' > .hg/shelvedstate\n+  cat: .hg/shelvedstate_old: $ENOENT$\n+  [1]\n \n   $ echo "aaabbbccc" > a\n   $ rm a.orig\n+  rm: cannot lstat `a.orig\': $ENOENT$\n+  [1]\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n \n #if continuecommand\n   $ hg continue --dry-run\n@@ -657,7 +1174,9 @@\n #endif\n \n   $ hg continue\n-  unshelve of \'default\' complete\n+  abort: corrupted shelved state file\n+  (please run hg unshelve --abort to abort unshelve operation)\n+  [255]\n   $ cat a\n   aaabbbccc\n   $ hg status\n@@ -684,6 +1203,60 @@\n   $ hg shelve a\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   test\n   $ hg branch default\n@@ -694,8 +1267,10 @@\n   ? b\n   $ hg unshelve\n   unshelving change \'default\'\n-  $ hg status\n-  M a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? b\n   $ hg branch\n   default\n@@ -707,15 +1282,69 @@\n   $ hg shelve\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo text2 > file && hg ci -Am text1\n-  adding file\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging file\n-  warning: conflicts while merging file! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo somethingsomething > .hg/shelvedstate\n \n Unshelve --continue fails with appropriate message if shelvedstate is corrupted\n@@ -740,8 +1369,8 @@\n   [20]\n #else\n   $ hg abort\n-  aborting the merge, updating back to 9451eaa6eee3\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: no operation in progress\n+  [20]\n #endif\n   $ cd ..\n \n@@ -753,21 +1382,77 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo 3 >> file && hg ci -Am 13\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg shelve --list\n   default         (*s ago) * changes to: 1 (glob)\n   $ hg unshelve --keep\n   unshelving change \'default\'\n-  rebasing shelved changes\n-  merging file\n-  warning: conflicts while merging file! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg resolve --mark file\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg continue\n-  unshelve of \'default\' complete\n+  abort: no operation in progress\n+  [20]\n   $ hg shelve --list\n   default         (*s ago) * changes to: 1 (glob)\n   $ cd ..\n@@ -780,21 +1465,79 @@\n   $ echo aa > a && hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ rm b\n   $ hg st\n   ! b\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg shelve\n-  shelved as default\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rm a && echo b > b\n   $ hg st\n   ! a\n   $ hg unshelve\n   unshelving change \'default\'\n-  abort: shelved change touches missing files\n-  (run hg status to see which files are missing)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg st\n   ! a\n@@ -810,16 +1553,70 @@\n   $ hg shelve --name ashelve\n   shelved as ashelve\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo 2 > a\n   $ hg ci -Am a\n-  adding a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg unshelve\n   unshelving change \'ashelve\'\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n putting v1 shelvedstate file in place of a created v2\n   $ cat << EOF > .hg/shelvedstate\n   > 1\n@@ -834,11 +1631,13 @@\n   > EOF\n   $ echo 1 > a\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n mercurial does not crash\n   $ hg continue\n-  unshelve of \'ashelve\' complete\n+  abort: corrupted shelved state file\n+  (please run hg unshelve --abort to abort unshelve operation)\n+  [255]\n \n #if phasebased\n \n@@ -897,25 +1696,76 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo foobar > a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg log --template \'{desc|firstline}  {author}  {date|isodate} \\n\' -r .\n-  pending changes temporary commit  shelve@localhost  1970-01-01 00:00 +0000 \n+  initial commit  test  1970-01-01 00:00 +0000 \n   $ hg merge --abort\n-  abort: cannot abort merge with unshelve in progress\n-  (use \'hg unshelve --continue\' or \'hg unshelve --abort\')\n+  abort: no merge in progress\n   [20]\n \n   $ hg unshelve --abort\n-  unshelve of \'default\' aborted\n+  abort: no unshelve in progress\n+  [20]\n \n   $ hg log -G --template \'{desc|firstline}  {author}  {date|isodate} \\n\' -r .\n   @  initial commit  test  1970-01-01 00:00 +0000\n@@ -930,16 +1780,66 @@\n   $ hg ci -qAm r0\n   $ echo "this will be shelved" >> foo\n   $ hg shelve -q\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo "this is in wdir, conflicts with shelve" >> foo\n   $ hg unshelve -q\n-  warning: conflicts while merging foo! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat foo\n   r0\n-  <<<<<<< working-copy: 0b2fcf2a90e9 - shelve: pending changes temporary commit\n   this is in wdir, conflicts with shelve\n-  =======\n-  this will be shelved\n-  >>>>>>> shelve:       9c072a2163db - shelve: changes to: r0\n   $ cd ..\n', 2152, 2154, 'truncated \\uXXXX escape') decoding diff, sorry

test-shelve2.t#phasebased#abortflag#continuecommand

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-shelve2.t\n+++ c:/hgdev/src/tests/test-shelve2.t#phasebased#abortflag#continuecommand.err\n@@ -52,16 +52,74 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg rebase -d 6c103be8f4e4 --config extensions.rebase=\n   rebasing 2:323bfa07f744( tip)? "xyz" (re)\n   merging x\n-  saved backup bundle to \\$TESTTMP/shelverebase/.hg/strip-backup/323bfa07f744-(78114325|7ae538ef)-rebase.hg (re)\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  M z\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  M x\n \n   $ cd ..\n \n@@ -82,25 +140,86 @@\n   $ hg shelve\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg up -q 0e067c57feba\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  A d\n+  abort: uncommitted changes\n+  (commit or update --clean to discard changes)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ! d\n \n unshelve should work on an ancestor of the original commit\n \n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up 3903775176ed\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n   $ hg unshelve\n   unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  A d\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n \n test bug 4073 we need to enable obsolete markers for it\n \n@@ -109,26 +228,34 @@\n   > evolution.createmarkers=True\n   > EOF\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg debugobsolete `hg log -r 0e067c57feba -T \'{node}\'`\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n-  $ hg unshelve\n-  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n unshelve should leave unknown files alone (issue4113)\n \n   $ echo e > e\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n   ? e\n   $ hg unshelve\n   unshelving change \'default\'\n-  $ hg status\n-  A d\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? e\n   $ cat e\n   e\n@@ -137,31 +264,43 @@\n \n   $ hg add e\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo z > e\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat e\n-  e\n+  z\n   $ cat e.orig\n-  z\n+  cat: e.orig: $ENOENT$\n+  [1]\n   $ rm e.orig\n+  rm: cannot lstat `e.orig\': $ENOENT$\n+  [1]\n \n restores backup of unknown file to right directory\n \n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo z > e\n   $ mkdir dir\n   $ hg unshelve --cwd dir\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rmdir dir\n   $ cat e\n-  e\n+  z\n   $ cat e.orig\n-  z\n+  cat: e.orig: $ENOENT$\n+  [1]\n \n unshelve and conflicts with tracked and untracked files\n \n@@ -169,34 +308,46 @@\n \n   $ rm -f *.orig\n   $ hg ci -qm \'commit stuff\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase -p null:\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n  no other changes - no merge:\n \n   $ echo f > f\n   $ hg add f\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo g > f\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n+  A e\n   A f\n-  ? f.orig\n   $ cat f\n-  f\n+  g\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n \n  other uncommitted changes - merge:\n \n   $ hg st\n+  A e\n   A f\n-  ? f.orig\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n #if repobundlerepo\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}\' -R bundle://.hg/shelved/default.hg -r \'bundle()\' --hidden\n   o  [48]  changes to: commit stuff  shelve@localhost (re)\n@@ -204,22 +355,21 @@\n   ~\n #endif\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}\'\n-  @  [37]  commit stuff  test (re)\n+  o  2  c  test\n   |\n-  | o  2  c  test\n+  | o  1  b  test\n   |/\n-  o  0  a  test\n+  @  0  a  test\n   \n   $ mv f.orig f\n+  mv: cannot stat `f.orig\': $ENOENT$\n+  [1]\n   $ echo 1 > a\n   $ hg unshelve --date \'1073741824 0\'\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging f\n-  warning: conflicts while merging f! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n #if phasebased\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}  {date|isodate}\'\n@@ -250,58 +400,62 @@\n #endif\n \n   $ hg st\n-  M f\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f\n-  <<<<<<< working-copy: d44eae5c3d33 - shelve: pending changes temporary commit\n   g\n-  =======\n-  f\n-  >>>>>>> shelve:       aef214a5229c - shelve: changes to: commit stuff\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n   $ hg unshelve --abort -t false\n   tool option will be ignored\n-  unshelve of \'default\' aborted\n+  abort: no unshelve in progress\n+  [20]\n   $ hg st\n   M a\n-  ? f.orig\n+  A e\n+  A f\n   $ cat f.orig\n-  g\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n+  cat: f.orig: $ENOENT$\n+  [1]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n   M a\n+  A e\n   A f\n-  ? f.orig\n \n  other committed changes - merge:\n \n   $ hg shelve f\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg ci a -m \'intermediate other change\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ mv f.orig f\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging f\n-  warning: conflicts while merging f! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  mv: cannot stat `f.orig\': $ENOENT$\n+  [1]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n-  M f\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f\n-  <<<<<<< working-copy: 6b563750f973 - test: intermediate other change\n   g\n-  =======\n-  f\n-  >>>>>>> shelve:       aef214a5229c - shelve: changes to: commit stuff\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n \n #if abortcommand\n when in dry-run mode\n@@ -310,11 +464,15 @@\n #endif\n \n   $ hg abort\n-  unshelve of \'default\' aborted\n+  abort: no operation in progress\n+  [20]\n   $ hg st\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n   $ hg shelve --delete default\n   $ cd ..\n \n@@ -341,13 +499,68 @@\n   $ hg commit -A -m \'root\' -q\n   $ echo \'\' > root\n   $ hg shelve -q\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo \'contADDent\' > root\n   $ hg unshelve -q --config \'ui.origbackuppath=.hg/origbackups\'\n-  warning: conflicts while merging root! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ ls .hg/origbackups\n-  root\n+  ls: .hg/origbackups: $ENOENT$\n+  [2]\n   $ rm -rf .hg/origbackups\n \n test Abort unshelve always gets user out of the unshelved state\n@@ -355,9 +568,11 @@\n \n with a corrupted shelve state file\n   $ sed \'s/ae8c668541e8/123456789012/\' .hg/shelvedstate > ../corrupt-shelvedstate\n+  sed: can\'t read .hg/shelvedstate: $ENOENT$\n+  [2]\n   $ mv ../corrupt-shelvedstate .hg/shelvestate\n   $ hg unshelve --abort 2>&1 | grep \'aborted\'\n-  unshelve of \'default\' aborted\n+  [1]\n   $ hg summary\n   parent: 0:ae8c668541e8 tip\n    root\n@@ -386,29 +601,89 @@\n   $ hg shelve --unknown\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  $ hg status\n-  ? unknown\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg status\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   $ rm unknown\n+  rm: cannot lstat `unknown\': $ENOENT$\n+  [1]\n \n If I shelve, add the file, and unshelve, does it stay added?\n \n   $ echo unknown > unknown\n   $ hg shelve -u\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ? unknown\n   $ touch unknown\n   $ hg add unknown\n   $ hg status\n   A unknown\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging unknown\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n   A unknown\n   $ hg forget unknown\n@@ -418,21 +693,29 @@\n \n   $ echo unknown > unknown\n   $ hg shelve -u\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ? unknown\n   $ touch unknown\n   $ hg add unknown\n   $ hg commit -qm "Add unknown"\n-  $ hg status\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging unknown\n-  $ hg status\n-  M unknown\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  A unknown\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  A unknown\n   $ hg remove --force unknown\n   $ hg commit -qm "Remove unknown"\n+  [1]\n \n   $ cd ..\n \n@@ -459,6 +742,60 @@\n   $ hg shelve a\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   new-branch\n   $ hg status\n@@ -469,30 +806,38 @@\n   M b\n   A c\n   $ hg shelve --exclude c\n-  shelved as default-01\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n   new-branch\n   $ hg status\n+  M b\n   A c\n   $ hg shelve --include c\n-  shelved as default-02\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n   new-branch\n   $ hg status\n+  M b\n+  A c\n   $ echo "d" >> d\n   $ hg add d\n   $ hg status\n+  M b\n+  A c\n   A d\n \n We expect that bare-shelve will not keep branch in current working directory.\n \n   $ hg shelve\n-  shelved as default-03\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n-  default\n+  new-branch\n   $ cd ..\n \n When i shelve commit on newly created branch i expect\n@@ -514,6 +859,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "bbb" >> b\n@@ -521,12 +920,13 @@\n   ? b\n   $ hg unshelve\n   unshelving change \'default\'\n-  marked working directory as branch test\n-  $ hg status\n-  M a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? b\n   $ hg branch\n-  test\n+  default\n   $ cd ..\n \n When i shelve commit on newly created branch, make\n@@ -551,6 +951,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "ccc" >> a\n@@ -558,27 +1012,29 @@\n   M a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo "aaabbbccc" > a\n   $ rm a.orig\n+  rm: cannot lstat `a.orig\': $ENOENT$\n+  [1]\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg continue\n-  marked working directory as branch test\n-  unshelve of \'default\' complete\n+  abort: no operation in progress\n+  [20]\n   $ cat a\n   aaabbbccc\n   $ hg status\n   M a\n   $ hg branch\n-  test\n+  default\n   $ hg commit -m "test-commit"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n When i shelve on test branch, update to default branch\n and unshelve i expect that it will not preserve previous\n@@ -587,14 +1043,18 @@\n   $ echo "xxx" > b\n   $ hg add b\n   $ hg shelve\n-  shelved as test\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg update -r 7049e48789d7\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ hg unshelve\n-  unshelving change \'test\'\n-  rebasing shelved changes\n-  $ hg status\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  M a\n   A b\n   $ hg branch\n   default\n@@ -625,6 +1085,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "ccc" >> a\n@@ -632,24 +1146,27 @@\n   M a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Removing restore branch information from shelvedstate file(making it looks like\n in previous versions) and running unshelve --continue\n \n   $ cp .hg/shelvedstate .hg/shelvedstate_old\n+  cp: cannot stat `.hg/shelvedstate\': $ENOENT$\n+  [1]\n   $ cat .hg/shelvedstate_old | grep -v \'branchtorestore\' > .hg/shelvedstate\n+  cat: .hg/shelvedstate_old: $ENOENT$\n+  [1]\n \n   $ echo "aaabbbccc" > a\n   $ rm a.orig\n+  rm: cannot lstat `a.orig\': $ENOENT$\n+  [1]\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n \n #if continuecommand\n   $ hg continue --dry-run\n@@ -657,7 +1174,9 @@\n #endif\n \n   $ hg continue\n-  unshelve of \'default\' complete\n+  abort: corrupted shelved state file\n+  (please run hg unshelve --abort to abort unshelve operation)\n+  [255]\n   $ cat a\n   aaabbbccc\n   $ hg status\n@@ -684,6 +1203,60 @@\n   $ hg shelve a\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   test\n   $ hg branch default\n@@ -694,8 +1267,10 @@\n   ? b\n   $ hg unshelve\n   unshelving change \'default\'\n-  $ hg status\n-  M a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? b\n   $ hg branch\n   default\n@@ -707,15 +1282,69 @@\n   $ hg shelve\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo text2 > file && hg ci -Am text1\n-  adding file\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging file\n-  warning: conflicts while merging file! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo somethingsomething > .hg/shelvedstate\n \n Unshelve --continue fails with appropriate message if shelvedstate is corrupted\n@@ -740,8 +1369,8 @@\n   [20]\n #else\n   $ hg abort\n-  aborting the merge, updating back to 9451eaa6eee3\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: no operation in progress\n+  [20]\n #endif\n   $ cd ..\n \n@@ -753,21 +1382,77 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo 3 >> file && hg ci -Am 13\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg shelve --list\n   default         (*s ago) * changes to: 1 (glob)\n   $ hg unshelve --keep\n   unshelving change \'default\'\n-  rebasing shelved changes\n-  merging file\n-  warning: conflicts while merging file! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg resolve --mark file\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg continue\n-  unshelve of \'default\' complete\n+  abort: no operation in progress\n+  [20]\n   $ hg shelve --list\n   default         (*s ago) * changes to: 1 (glob)\n   $ cd ..\n@@ -780,21 +1465,79 @@\n   $ echo aa > a && hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ rm b\n   $ hg st\n   ! b\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg shelve\n-  shelved as default\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rm a && echo b > b\n   $ hg st\n   ! a\n   $ hg unshelve\n   unshelving change \'default\'\n-  abort: shelved change touches missing files\n-  (run hg status to see which files are missing)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg st\n   ! a\n@@ -810,16 +1553,70 @@\n   $ hg shelve --name ashelve\n   shelved as ashelve\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo 2 > a\n   $ hg ci -Am a\n-  adding a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg unshelve\n   unshelving change \'ashelve\'\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n putting v1 shelvedstate file in place of a created v2\n   $ cat << EOF > .hg/shelvedstate\n   > 1\n@@ -834,11 +1631,13 @@\n   > EOF\n   $ echo 1 > a\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n mercurial does not crash\n   $ hg continue\n-  unshelve of \'ashelve\' complete\n+  abort: corrupted shelved state file\n+  (please run hg unshelve --abort to abort unshelve operation)\n+  [255]\n \n #if phasebased\n \n@@ -897,25 +1696,76 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo foobar > a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg log --template \'{desc|firstline}  {author}  {date|isodate} \\n\' -r .\n-  pending changes temporary commit  shelve@localhost  1970-01-01 00:00 +0000 \n+  initial commit  test  1970-01-01 00:00 +0000 \n   $ hg merge --abort\n-  abort: cannot abort merge with unshelve in progress\n-  (use \'hg unshelve --continue\' or \'hg unshelve --abort\')\n+  abort: no merge in progress\n   [20]\n \n   $ hg unshelve --abort\n-  unshelve of \'default\' aborted\n+  abort: no unshelve in progress\n+  [20]\n \n   $ hg log -G --template \'{desc|firstline}  {author}  {date|isodate} \\n\' -r .\n   @  initial commit  test  1970-01-01 00:00 +0000\n@@ -930,16 +1780,66 @@\n   $ hg ci -qAm r0\n   $ echo "this will be shelved" >> foo\n   $ hg shelve -q\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo "this is in wdir, conflicts with shelve" >> foo\n   $ hg unshelve -q\n-  warning: conflicts while merging foo! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat foo\n   r0\n-  <<<<<<< working-copy: 0b2fcf2a90e9 - shelve: pending changes temporary commit\n   this is in wdir, conflicts with shelve\n-  =======\n-  this will be shelved\n-  >>>>>>> shelve:       9c072a2163db - shelve: changes to: r0\n   $ cd ..\n', 2152, 2154, 'truncated \\uXXXX escape') decoding diff, sorry

test-shelve2.t#phasebased#abortflag#continueflag

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-shelve2.t\n+++ c:/hgdev/src/tests/test-shelve2.t#phasebased#abortflag#continueflag.err\n@@ -52,16 +52,74 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg rebase -d 6c103be8f4e4 --config extensions.rebase=\n   rebasing 2:323bfa07f744( tip)? "xyz" (re)\n   merging x\n-  saved backup bundle to \\$TESTTMP/shelverebase/.hg/strip-backup/323bfa07f744-(78114325|7ae538ef)-rebase.hg (re)\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  M z\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  M x\n \n   $ cd ..\n \n@@ -82,25 +140,86 @@\n   $ hg shelve\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg up -q 0e067c57feba\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  A d\n+  abort: uncommitted changes\n+  (commit or update --clean to discard changes)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ! d\n \n unshelve should work on an ancestor of the original commit\n \n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up 3903775176ed\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n   $ hg unshelve\n   unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  A d\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n \n test bug 4073 we need to enable obsolete markers for it\n \n@@ -109,26 +228,34 @@\n   > evolution.createmarkers=True\n   > EOF\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg debugobsolete `hg log -r 0e067c57feba -T \'{node}\'`\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n-  $ hg unshelve\n-  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n unshelve should leave unknown files alone (issue4113)\n \n   $ echo e > e\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n   ? e\n   $ hg unshelve\n   unshelving change \'default\'\n-  $ hg status\n-  A d\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? e\n   $ cat e\n   e\n@@ -137,31 +264,43 @@\n \n   $ hg add e\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo z > e\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat e\n-  e\n+  z\n   $ cat e.orig\n-  z\n+  cat: e.orig: $ENOENT$\n+  [1]\n   $ rm e.orig\n+  rm: cannot lstat `e.orig\': $ENOENT$\n+  [1]\n \n restores backup of unknown file to right directory\n \n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo z > e\n   $ mkdir dir\n   $ hg unshelve --cwd dir\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rmdir dir\n   $ cat e\n-  e\n+  z\n   $ cat e.orig\n-  z\n+  cat: e.orig: $ENOENT$\n+  [1]\n \n unshelve and conflicts with tracked and untracked files\n \n@@ -169,34 +308,46 @@\n \n   $ rm -f *.orig\n   $ hg ci -qm \'commit stuff\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase -p null:\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n  no other changes - no merge:\n \n   $ echo f > f\n   $ hg add f\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo g > f\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n+  A e\n   A f\n-  ? f.orig\n   $ cat f\n-  f\n+  g\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n \n  other uncommitted changes - merge:\n \n   $ hg st\n+  A e\n   A f\n-  ? f.orig\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n #if repobundlerepo\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}\' -R bundle://.hg/shelved/default.hg -r \'bundle()\' --hidden\n   o  [48]  changes to: commit stuff  shelve@localhost (re)\n@@ -204,22 +355,21 @@\n   ~\n #endif\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}\'\n-  @  [37]  commit stuff  test (re)\n+  o  2  c  test\n   |\n-  | o  2  c  test\n+  | o  1  b  test\n   |/\n-  o  0  a  test\n+  @  0  a  test\n   \n   $ mv f.orig f\n+  mv: cannot stat `f.orig\': $ENOENT$\n+  [1]\n   $ echo 1 > a\n   $ hg unshelve --date \'1073741824 0\'\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging f\n-  warning: conflicts while merging f! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n #if phasebased\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}  {date|isodate}\'\n@@ -250,58 +400,62 @@\n #endif\n \n   $ hg st\n-  M f\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f\n-  <<<<<<< working-copy: d44eae5c3d33 - shelve: pending changes temporary commit\n   g\n-  =======\n-  f\n-  >>>>>>> shelve:       aef214a5229c - shelve: changes to: commit stuff\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n   $ hg unshelve --abort -t false\n   tool option will be ignored\n-  unshelve of \'default\' aborted\n+  abort: no unshelve in progress\n+  [20]\n   $ hg st\n   M a\n-  ? f.orig\n+  A e\n+  A f\n   $ cat f.orig\n-  g\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n+  cat: f.orig: $ENOENT$\n+  [1]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n   M a\n+  A e\n   A f\n-  ? f.orig\n \n  other committed changes - merge:\n \n   $ hg shelve f\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg ci a -m \'intermediate other change\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ mv f.orig f\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging f\n-  warning: conflicts while merging f! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  mv: cannot stat `f.orig\': $ENOENT$\n+  [1]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n-  M f\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f\n-  <<<<<<< working-copy: 6b563750f973 - test: intermediate other change\n   g\n-  =======\n-  f\n-  >>>>>>> shelve:       aef214a5229c - shelve: changes to: commit stuff\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n \n #if abortcommand\n when in dry-run mode\n@@ -310,11 +464,15 @@\n #endif\n \n   $ hg abort\n-  unshelve of \'default\' aborted\n+  abort: no operation in progress\n+  [20]\n   $ hg st\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n   $ hg shelve --delete default\n   $ cd ..\n \n@@ -341,13 +499,68 @@\n   $ hg commit -A -m \'root\' -q\n   $ echo \'\' > root\n   $ hg shelve -q\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo \'contADDent\' > root\n   $ hg unshelve -q --config \'ui.origbackuppath=.hg/origbackups\'\n-  warning: conflicts while merging root! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ ls .hg/origbackups\n-  root\n+  ls: .hg/origbackups: $ENOENT$\n+  [2]\n   $ rm -rf .hg/origbackups\n \n test Abort unshelve always gets user out of the unshelved state\n@@ -355,9 +568,11 @@\n \n with a corrupted shelve state file\n   $ sed \'s/ae8c668541e8/123456789012/\' .hg/shelvedstate > ../corrupt-shelvedstate\n+  sed: can\'t read .hg/shelvedstate: $ENOENT$\n+  [2]\n   $ mv ../corrupt-shelvedstate .hg/shelvestate\n   $ hg unshelve --abort 2>&1 | grep \'aborted\'\n-  unshelve of \'default\' aborted\n+  [1]\n   $ hg summary\n   parent: 0:ae8c668541e8 tip\n    root\n@@ -386,29 +601,89 @@\n   $ hg shelve --unknown\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  $ hg status\n-  ? unknown\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg status\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   $ rm unknown\n+  rm: cannot lstat `unknown\': $ENOENT$\n+  [1]\n \n If I shelve, add the file, and unshelve, does it stay added?\n \n   $ echo unknown > unknown\n   $ hg shelve -u\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ? unknown\n   $ touch unknown\n   $ hg add unknown\n   $ hg status\n   A unknown\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging unknown\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n   A unknown\n   $ hg forget unknown\n@@ -418,21 +693,29 @@\n \n   $ echo unknown > unknown\n   $ hg shelve -u\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ? unknown\n   $ touch unknown\n   $ hg add unknown\n   $ hg commit -qm "Add unknown"\n-  $ hg status\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging unknown\n-  $ hg status\n-  M unknown\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  A unknown\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  A unknown\n   $ hg remove --force unknown\n   $ hg commit -qm "Remove unknown"\n+  [1]\n \n   $ cd ..\n \n@@ -459,6 +742,60 @@\n   $ hg shelve a\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   new-branch\n   $ hg status\n@@ -469,30 +806,38 @@\n   M b\n   A c\n   $ hg shelve --exclude c\n-  shelved as default-01\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n   new-branch\n   $ hg status\n+  M b\n   A c\n   $ hg shelve --include c\n-  shelved as default-02\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n   new-branch\n   $ hg status\n+  M b\n+  A c\n   $ echo "d" >> d\n   $ hg add d\n   $ hg status\n+  M b\n+  A c\n   A d\n \n We expect that bare-shelve will not keep branch in current working directory.\n \n   $ hg shelve\n-  shelved as default-03\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n-  default\n+  new-branch\n   $ cd ..\n \n When i shelve commit on newly created branch i expect\n@@ -514,6 +859,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "bbb" >> b\n@@ -521,12 +920,13 @@\n   ? b\n   $ hg unshelve\n   unshelving change \'default\'\n-  marked working directory as branch test\n-  $ hg status\n-  M a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? b\n   $ hg branch\n-  test\n+  default\n   $ cd ..\n \n When i shelve commit on newly created branch, make\n@@ -551,6 +951,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "ccc" >> a\n@@ -558,27 +1012,29 @@\n   M a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo "aaabbbccc" > a\n   $ rm a.orig\n+  rm: cannot lstat `a.orig\': $ENOENT$\n+  [1]\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg continue\n-  marked working directory as branch test\n-  unshelve of \'default\' complete\n+  abort: no operation in progress\n+  [20]\n   $ cat a\n   aaabbbccc\n   $ hg status\n   M a\n   $ hg branch\n-  test\n+  default\n   $ hg commit -m "test-commit"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n When i shelve on test branch, update to default branch\n and unshelve i expect that it will not preserve previous\n@@ -587,14 +1043,18 @@\n   $ echo "xxx" > b\n   $ hg add b\n   $ hg shelve\n-  shelved as test\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg update -r 7049e48789d7\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ hg unshelve\n-  unshelving change \'test\'\n-  rebasing shelved changes\n-  $ hg status\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  M a\n   A b\n   $ hg branch\n   default\n@@ -625,6 +1085,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "ccc" >> a\n@@ -632,24 +1146,27 @@\n   M a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Removing restore branch information from shelvedstate file(making it looks like\n in previous versions) and running unshelve --continue\n \n   $ cp .hg/shelvedstate .hg/shelvedstate_old\n+  cp: cannot stat `.hg/shelvedstate\': $ENOENT$\n+  [1]\n   $ cat .hg/shelvedstate_old | grep -v \'branchtorestore\' > .hg/shelvedstate\n+  cat: .hg/shelvedstate_old: $ENOENT$\n+  [1]\n \n   $ echo "aaabbbccc" > a\n   $ rm a.orig\n+  rm: cannot lstat `a.orig\': $ENOENT$\n+  [1]\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n \n #if continuecommand\n   $ hg continue --dry-run\n@@ -657,7 +1174,9 @@\n #endif\n \n   $ hg continue\n-  unshelve of \'default\' complete\n+  abort: corrupted shelved state file\n+  (please run hg unshelve --abort to abort unshelve operation)\n+  [255]\n   $ cat a\n   aaabbbccc\n   $ hg status\n@@ -684,6 +1203,60 @@\n   $ hg shelve a\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   test\n   $ hg branch default\n@@ -694,8 +1267,10 @@\n   ? b\n   $ hg unshelve\n   unshelving change \'default\'\n-  $ hg status\n-  M a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? b\n   $ hg branch\n   default\n@@ -707,15 +1282,69 @@\n   $ hg shelve\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo text2 > file && hg ci -Am text1\n-  adding file\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging file\n-  warning: conflicts while merging file! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo somethingsomething > .hg/shelvedstate\n \n Unshelve --continue fails with appropriate message if shelvedstate is corrupted\n@@ -740,8 +1369,8 @@\n   [20]\n #else\n   $ hg abort\n-  aborting the merge, updating back to 9451eaa6eee3\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: no operation in progress\n+  [20]\n #endif\n   $ cd ..\n \n@@ -753,21 +1382,77 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo 3 >> file && hg ci -Am 13\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg shelve --list\n   default         (*s ago) * changes to: 1 (glob)\n   $ hg unshelve --keep\n   unshelving change \'default\'\n-  rebasing shelved changes\n-  merging file\n-  warning: conflicts while merging file! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg resolve --mark file\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg continue\n-  unshelve of \'default\' complete\n+  abort: no operation in progress\n+  [20]\n   $ hg shelve --list\n   default         (*s ago) * changes to: 1 (glob)\n   $ cd ..\n@@ -780,21 +1465,79 @@\n   $ echo aa > a && hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ rm b\n   $ hg st\n   ! b\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg shelve\n-  shelved as default\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rm a && echo b > b\n   $ hg st\n   ! a\n   $ hg unshelve\n   unshelving change \'default\'\n-  abort: shelved change touches missing files\n-  (run hg status to see which files are missing)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg st\n   ! a\n@@ -810,16 +1553,70 @@\n   $ hg shelve --name ashelve\n   shelved as ashelve\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo 2 > a\n   $ hg ci -Am a\n-  adding a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg unshelve\n   unshelving change \'ashelve\'\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n putting v1 shelvedstate file in place of a created v2\n   $ cat << EOF > .hg/shelvedstate\n   > 1\n@@ -834,11 +1631,13 @@\n   > EOF\n   $ echo 1 > a\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n mercurial does not crash\n   $ hg continue\n-  unshelve of \'ashelve\' complete\n+  abort: corrupted shelved state file\n+  (please run hg unshelve --abort to abort unshelve operation)\n+  [255]\n \n #if phasebased\n \n@@ -897,25 +1696,76 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo foobar > a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg log --template \'{desc|firstline}  {author}  {date|isodate} \\n\' -r .\n-  pending changes temporary commit  shelve@localhost  1970-01-01 00:00 +0000 \n+  initial commit  test  1970-01-01 00:00 +0000 \n   $ hg merge --abort\n-  abort: cannot abort merge with unshelve in progress\n-  (use \'hg unshelve --continue\' or \'hg unshelve --abort\')\n+  abort: no merge in progress\n   [20]\n \n   $ hg unshelve --abort\n-  unshelve of \'default\' aborted\n+  abort: no unshelve in progress\n+  [20]\n \n   $ hg log -G --template \'{desc|firstline}  {author}  {date|isodate} \\n\' -r .\n   @  initial commit  test  1970-01-01 00:00 +0000\n@@ -930,16 +1780,66 @@\n   $ hg ci -qAm r0\n   $ echo "this will be shelved" >> foo\n   $ hg shelve -q\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo "this is in wdir, conflicts with shelve" >> foo\n   $ hg unshelve -q\n-  warning: conflicts while merging foo! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat foo\n   r0\n-  <<<<<<< working-copy: 0b2fcf2a90e9 - shelve: pending changes temporary commit\n   this is in wdir, conflicts with shelve\n-  =======\n-  this will be shelved\n-  >>>>>>> shelve:       9c072a2163db - shelve: changes to: r0\n   $ cd ..\n', 2149, 2151, 'truncated \\uXXXX escape') decoding diff, sorry

test-shelve2.t#stripbased#abortcommand#continuecommand

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-shelve2.t\n+++ c:/hgdev/src/tests/test-shelve2.t#stripbased#abortcommand#continuecommand.err\n@@ -52,16 +52,74 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg rebase -d 6c103be8f4e4 --config extensions.rebase=\n   rebasing 2:323bfa07f744( tip)? "xyz" (re)\n   merging x\n-  saved backup bundle to \\$TESTTMP/shelverebase/.hg/strip-backup/323bfa07f744-(78114325|7ae538ef)-rebase.hg (re)\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  M z\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  M x\n \n   $ cd ..\n \n@@ -82,25 +140,86 @@\n   $ hg shelve\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg up -q 0e067c57feba\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  A d\n+  abort: uncommitted changes\n+  (commit or update --clean to discard changes)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ! d\n \n unshelve should work on an ancestor of the original commit\n \n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up 3903775176ed\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n   $ hg unshelve\n   unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  A d\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n \n test bug 4073 we need to enable obsolete markers for it\n \n@@ -109,26 +228,34 @@\n   > evolution.createmarkers=True\n   > EOF\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg debugobsolete `hg log -r 0e067c57feba -T \'{node}\'`\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n-  $ hg unshelve\n-  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n unshelve should leave unknown files alone (issue4113)\n \n   $ echo e > e\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n   ? e\n   $ hg unshelve\n   unshelving change \'default\'\n-  $ hg status\n-  A d\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? e\n   $ cat e\n   e\n@@ -137,31 +264,43 @@\n \n   $ hg add e\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo z > e\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat e\n-  e\n+  z\n   $ cat e.orig\n-  z\n+  cat: e.orig: $ENOENT$\n+  [1]\n   $ rm e.orig\n+  rm: cannot lstat `e.orig\': $ENOENT$\n+  [1]\n \n restores backup of unknown file to right directory\n \n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo z > e\n   $ mkdir dir\n   $ hg unshelve --cwd dir\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rmdir dir\n   $ cat e\n-  e\n+  z\n   $ cat e.orig\n-  z\n+  cat: e.orig: $ENOENT$\n+  [1]\n \n unshelve and conflicts with tracked and untracked files\n \n@@ -169,34 +308,46 @@\n \n   $ rm -f *.orig\n   $ hg ci -qm \'commit stuff\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase -p null:\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n  no other changes - no merge:\n \n   $ echo f > f\n   $ hg add f\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo g > f\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n+  A e\n   A f\n-  ? f.orig\n   $ cat f\n-  f\n+  g\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n \n  other uncommitted changes - merge:\n \n   $ hg st\n+  A e\n   A f\n-  ? f.orig\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n #if repobundlerepo\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}\' -R bundle://.hg/shelved/default.hg -r \'bundle()\' --hidden\n   o  [48]  changes to: commit stuff  shelve@localhost (re)\n@@ -204,22 +355,21 @@\n   ~\n #endif\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}\'\n-  @  [37]  commit stuff  test (re)\n+  o  2  c  test\n   |\n-  | o  2  c  test\n+  | o  1  b  test\n   |/\n-  o  0  a  test\n+  @  0  a  test\n   \n   $ mv f.orig f\n+  mv: cannot stat `f.orig\': $ENOENT$\n+  [1]\n   $ echo 1 > a\n   $ hg unshelve --date \'1073741824 0\'\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging f\n-  warning: conflicts while merging f! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n #if phasebased\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}  {date|isodate}\'\n@@ -250,58 +400,62 @@\n #endif\n \n   $ hg st\n-  M f\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f\n-  <<<<<<< working-copy: d44eae5c3d33 - shelve: pending changes temporary commit\n   g\n-  =======\n-  f\n-  >>>>>>> shelve:       aef214a5229c - shelve: changes to: commit stuff\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n   $ hg unshelve --abort -t false\n   tool option will be ignored\n-  unshelve of \'default\' aborted\n+  abort: no unshelve in progress\n+  [20]\n   $ hg st\n   M a\n-  ? f.orig\n+  A e\n+  A f\n   $ cat f.orig\n-  g\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n+  cat: f.orig: $ENOENT$\n+  [1]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n   M a\n+  A e\n   A f\n-  ? f.orig\n \n  other committed changes - merge:\n \n   $ hg shelve f\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg ci a -m \'intermediate other change\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ mv f.orig f\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging f\n-  warning: conflicts while merging f! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  mv: cannot stat `f.orig\': $ENOENT$\n+  [1]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n-  M f\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f\n-  <<<<<<< working-copy: 6b563750f973 - test: intermediate other change\n   g\n-  =======\n-  f\n-  >>>>>>> shelve:       aef214a5229c - shelve: changes to: commit stuff\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n \n #if abortcommand\n when in dry-run mode\n@@ -310,11 +464,15 @@\n #endif\n \n   $ hg abort\n-  unshelve of \'default\' aborted\n+  abort: no operation in progress\n+  [20]\n   $ hg st\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n   $ hg shelve --delete default\n   $ cd ..\n \n@@ -341,13 +499,68 @@\n   $ hg commit -A -m \'root\' -q\n   $ echo \'\' > root\n   $ hg shelve -q\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo \'contADDent\' > root\n   $ hg unshelve -q --config \'ui.origbackuppath=.hg/origbackups\'\n-  warning: conflicts while merging root! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ ls .hg/origbackups\n-  root\n+  ls: .hg/origbackups: $ENOENT$\n+  [2]\n   $ rm -rf .hg/origbackups\n \n test Abort unshelve always gets user out of the unshelved state\n@@ -355,9 +568,11 @@\n \n with a corrupted shelve state file\n   $ sed \'s/ae8c668541e8/123456789012/\' .hg/shelvedstate > ../corrupt-shelvedstate\n+  sed: can\'t read .hg/shelvedstate: $ENOENT$\n+  [2]\n   $ mv ../corrupt-shelvedstate .hg/shelvestate\n   $ hg unshelve --abort 2>&1 | grep \'aborted\'\n-  unshelve of \'default\' aborted\n+  [1]\n   $ hg summary\n   parent: 0:ae8c668541e8 tip\n    root\n@@ -386,29 +601,89 @@\n   $ hg shelve --unknown\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  $ hg status\n-  ? unknown\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg status\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   $ rm unknown\n+  rm: cannot lstat `unknown\': $ENOENT$\n+  [1]\n \n If I shelve, add the file, and unshelve, does it stay added?\n \n   $ echo unknown > unknown\n   $ hg shelve -u\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ? unknown\n   $ touch unknown\n   $ hg add unknown\n   $ hg status\n   A unknown\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging unknown\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n   A unknown\n   $ hg forget unknown\n@@ -418,21 +693,29 @@\n \n   $ echo unknown > unknown\n   $ hg shelve -u\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ? unknown\n   $ touch unknown\n   $ hg add unknown\n   $ hg commit -qm "Add unknown"\n-  $ hg status\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging unknown\n-  $ hg status\n-  M unknown\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  A unknown\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  A unknown\n   $ hg remove --force unknown\n   $ hg commit -qm "Remove unknown"\n+  [1]\n \n   $ cd ..\n \n@@ -459,6 +742,60 @@\n   $ hg shelve a\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   new-branch\n   $ hg status\n@@ -469,30 +806,38 @@\n   M b\n   A c\n   $ hg shelve --exclude c\n-  shelved as default-01\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n   new-branch\n   $ hg status\n+  M b\n   A c\n   $ hg shelve --include c\n-  shelved as default-02\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n   new-branch\n   $ hg status\n+  M b\n+  A c\n   $ echo "d" >> d\n   $ hg add d\n   $ hg status\n+  M b\n+  A c\n   A d\n \n We expect that bare-shelve will not keep branch in current working directory.\n \n   $ hg shelve\n-  shelved as default-03\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n-  default\n+  new-branch\n   $ cd ..\n \n When i shelve commit on newly created branch i expect\n@@ -514,6 +859,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "bbb" >> b\n@@ -521,12 +920,13 @@\n   ? b\n   $ hg unshelve\n   unshelving change \'default\'\n-  marked working directory as branch test\n-  $ hg status\n-  M a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? b\n   $ hg branch\n-  test\n+  default\n   $ cd ..\n \n When i shelve commit on newly created branch, make\n@@ -551,6 +951,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "ccc" >> a\n@@ -558,27 +1012,29 @@\n   M a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo "aaabbbccc" > a\n   $ rm a.orig\n+  rm: cannot lstat `a.orig\': $ENOENT$\n+  [1]\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg continue\n-  marked working directory as branch test\n-  unshelve of \'default\' complete\n+  abort: no operation in progress\n+  [20]\n   $ cat a\n   aaabbbccc\n   $ hg status\n   M a\n   $ hg branch\n-  test\n+  default\n   $ hg commit -m "test-commit"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n When i shelve on test branch, update to default branch\n and unshelve i expect that it will not preserve previous\n@@ -587,14 +1043,18 @@\n   $ echo "xxx" > b\n   $ hg add b\n   $ hg shelve\n-  shelved as test\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg update -r 7049e48789d7\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ hg unshelve\n-  unshelving change \'test\'\n-  rebasing shelved changes\n-  $ hg status\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  M a\n   A b\n   $ hg branch\n   default\n@@ -625,6 +1085,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "ccc" >> a\n@@ -632,24 +1146,27 @@\n   M a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Removing restore branch information from shelvedstate file(making it looks like\n in previous versions) and running unshelve --continue\n \n   $ cp .hg/shelvedstate .hg/shelvedstate_old\n+  cp: cannot stat `.hg/shelvedstate\': $ENOENT$\n+  [1]\n   $ cat .hg/shelvedstate_old | grep -v \'branchtorestore\' > .hg/shelvedstate\n+  cat: .hg/shelvedstate_old: $ENOENT$\n+  [1]\n \n   $ echo "aaabbbccc" > a\n   $ rm a.orig\n+  rm: cannot lstat `a.orig\': $ENOENT$\n+  [1]\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n \n #if continuecommand\n   $ hg continue --dry-run\n@@ -657,7 +1174,9 @@\n #endif\n \n   $ hg continue\n-  unshelve of \'default\' complete\n+  abort: corrupted shelved state file\n+  (please run hg unshelve --abort to abort unshelve operation)\n+  [255]\n   $ cat a\n   aaabbbccc\n   $ hg status\n@@ -684,6 +1203,60 @@\n   $ hg shelve a\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   test\n   $ hg branch default\n@@ -694,8 +1267,10 @@\n   ? b\n   $ hg unshelve\n   unshelving change \'default\'\n-  $ hg status\n-  M a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? b\n   $ hg branch\n   default\n@@ -707,15 +1282,69 @@\n   $ hg shelve\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo text2 > file && hg ci -Am text1\n-  adding file\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging file\n-  warning: conflicts while merging file! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo somethingsomething > .hg/shelvedstate\n \n Unshelve --continue fails with appropriate message if shelvedstate is corrupted\n@@ -740,8 +1369,8 @@\n   [20]\n #else\n   $ hg abort\n-  aborting the merge, updating back to 9451eaa6eee3\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: no operation in progress\n+  [20]\n #endif\n   $ cd ..\n \n@@ -753,21 +1382,77 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo 3 >> file && hg ci -Am 13\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg shelve --list\n   default         (*s ago) * changes to: 1 (glob)\n   $ hg unshelve --keep\n   unshelving change \'default\'\n-  rebasing shelved changes\n-  merging file\n-  warning: conflicts while merging file! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg resolve --mark file\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg continue\n-  unshelve of \'default\' complete\n+  abort: no operation in progress\n+  [20]\n   $ hg shelve --list\n   default         (*s ago) * changes to: 1 (glob)\n   $ cd ..\n@@ -780,21 +1465,79 @@\n   $ echo aa > a && hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ rm b\n   $ hg st\n   ! b\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg shelve\n-  shelved as default\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rm a && echo b > b\n   $ hg st\n   ! a\n   $ hg unshelve\n   unshelving change \'default\'\n-  abort: shelved change touches missing files\n-  (run hg status to see which files are missing)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg st\n   ! a\n@@ -810,16 +1553,70 @@\n   $ hg shelve --name ashelve\n   shelved as ashelve\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo 2 > a\n   $ hg ci -Am a\n-  adding a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg unshelve\n   unshelving change \'ashelve\'\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n putting v1 shelvedstate file in place of a created v2\n   $ cat << EOF > .hg/shelvedstate\n   > 1\n@@ -834,11 +1631,13 @@\n   > EOF\n   $ echo 1 > a\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n mercurial does not crash\n   $ hg continue\n-  unshelve of \'ashelve\' complete\n+  abort: corrupted shelved state file\n+  (please run hg unshelve --abort to abort unshelve operation)\n+  [255]\n \n #if phasebased\n \n@@ -897,25 +1696,76 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo foobar > a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg log --template \'{desc|firstline}  {author}  {date|isodate} \\n\' -r .\n-  pending changes temporary commit  shelve@localhost  1970-01-01 00:00 +0000 \n+  initial commit  test  1970-01-01 00:00 +0000 \n   $ hg merge --abort\n-  abort: cannot abort merge with unshelve in progress\n-  (use \'hg unshelve --continue\' or \'hg unshelve --abort\')\n+  abort: no merge in progress\n   [20]\n \n   $ hg unshelve --abort\n-  unshelve of \'default\' aborted\n+  abort: no unshelve in progress\n+  [20]\n \n   $ hg log -G --template \'{desc|firstline}  {author}  {date|isodate} \\n\' -r .\n   @  initial commit  test  1970-01-01 00:00 +0000\n@@ -930,16 +1780,66 @@\n   $ hg ci -qAm r0\n   $ echo "this will be shelved" >> foo\n   $ hg shelve -q\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo "this is in wdir, conflicts with shelve" >> foo\n   $ hg unshelve -q\n-  warning: conflicts while merging foo! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat foo\n   r0\n-  <<<<<<< working-copy: 0b2fcf2a90e9 - shelve: pending changes temporary commit\n   this is in wdir, conflicts with shelve\n-  =======\n-  this will be shelved\n-  >>>>>>> shelve:       9c072a2163db - shelve: changes to: r0\n   $ cd ..\n', 2155, 2157, 'truncated \\uXXXX escape') decoding diff, sorry

test-shelve2.t#stripbased#abortcommand#continueflag

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-shelve2.t\n+++ c:/hgdev/src/tests/test-shelve2.t#stripbased#abortcommand#continueflag.err\n@@ -52,16 +52,74 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg rebase -d 6c103be8f4e4 --config extensions.rebase=\n   rebasing 2:323bfa07f744( tip)? "xyz" (re)\n   merging x\n-  saved backup bundle to \\$TESTTMP/shelverebase/.hg/strip-backup/323bfa07f744-(78114325|7ae538ef)-rebase.hg (re)\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  M z\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  M x\n \n   $ cd ..\n \n@@ -82,25 +140,86 @@\n   $ hg shelve\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg up -q 0e067c57feba\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  A d\n+  abort: uncommitted changes\n+  (commit or update --clean to discard changes)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ! d\n \n unshelve should work on an ancestor of the original commit\n \n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up 3903775176ed\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n   $ hg unshelve\n   unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  A d\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n \n test bug 4073 we need to enable obsolete markers for it\n \n@@ -109,26 +228,34 @@\n   > evolution.createmarkers=True\n   > EOF\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg debugobsolete `hg log -r 0e067c57feba -T \'{node}\'`\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n-  $ hg unshelve\n-  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n unshelve should leave unknown files alone (issue4113)\n \n   $ echo e > e\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n   ? e\n   $ hg unshelve\n   unshelving change \'default\'\n-  $ hg status\n-  A d\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? e\n   $ cat e\n   e\n@@ -137,31 +264,43 @@\n \n   $ hg add e\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo z > e\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat e\n-  e\n+  z\n   $ cat e.orig\n-  z\n+  cat: e.orig: $ENOENT$\n+  [1]\n   $ rm e.orig\n+  rm: cannot lstat `e.orig\': $ENOENT$\n+  [1]\n \n restores backup of unknown file to right directory\n \n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo z > e\n   $ mkdir dir\n   $ hg unshelve --cwd dir\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rmdir dir\n   $ cat e\n-  e\n+  z\n   $ cat e.orig\n-  z\n+  cat: e.orig: $ENOENT$\n+  [1]\n \n unshelve and conflicts with tracked and untracked files\n \n@@ -169,34 +308,46 @@\n \n   $ rm -f *.orig\n   $ hg ci -qm \'commit stuff\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase -p null:\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n  no other changes - no merge:\n \n   $ echo f > f\n   $ hg add f\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo g > f\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n+  A e\n   A f\n-  ? f.orig\n   $ cat f\n-  f\n+  g\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n \n  other uncommitted changes - merge:\n \n   $ hg st\n+  A e\n   A f\n-  ? f.orig\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n #if repobundlerepo\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}\' -R bundle://.hg/shelved/default.hg -r \'bundle()\' --hidden\n   o  [48]  changes to: commit stuff  shelve@localhost (re)\n@@ -204,22 +355,21 @@\n   ~\n #endif\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}\'\n-  @  [37]  commit stuff  test (re)\n+  o  2  c  test\n   |\n-  | o  2  c  test\n+  | o  1  b  test\n   |/\n-  o  0  a  test\n+  @  0  a  test\n   \n   $ mv f.orig f\n+  mv: cannot stat `f.orig\': $ENOENT$\n+  [1]\n   $ echo 1 > a\n   $ hg unshelve --date \'1073741824 0\'\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging f\n-  warning: conflicts while merging f! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n #if phasebased\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}  {date|isodate}\'\n@@ -250,58 +400,62 @@\n #endif\n \n   $ hg st\n-  M f\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f\n-  <<<<<<< working-copy: d44eae5c3d33 - shelve: pending changes temporary commit\n   g\n-  =======\n-  f\n-  >>>>>>> shelve:       aef214a5229c - shelve: changes to: commit stuff\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n   $ hg unshelve --abort -t false\n   tool option will be ignored\n-  unshelve of \'default\' aborted\n+  abort: no unshelve in progress\n+  [20]\n   $ hg st\n   M a\n-  ? f.orig\n+  A e\n+  A f\n   $ cat f.orig\n-  g\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n+  cat: f.orig: $ENOENT$\n+  [1]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n   M a\n+  A e\n   A f\n-  ? f.orig\n \n  other committed changes - merge:\n \n   $ hg shelve f\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg ci a -m \'intermediate other change\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ mv f.orig f\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging f\n-  warning: conflicts while merging f! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  mv: cannot stat `f.orig\': $ENOENT$\n+  [1]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n-  M f\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f\n-  <<<<<<< working-copy: 6b563750f973 - test: intermediate other change\n   g\n-  =======\n-  f\n-  >>>>>>> shelve:       aef214a5229c - shelve: changes to: commit stuff\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n \n #if abortcommand\n when in dry-run mode\n@@ -310,11 +464,15 @@\n #endif\n \n   $ hg abort\n-  unshelve of \'default\' aborted\n+  abort: no operation in progress\n+  [20]\n   $ hg st\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n   $ hg shelve --delete default\n   $ cd ..\n \n@@ -341,13 +499,68 @@\n   $ hg commit -A -m \'root\' -q\n   $ echo \'\' > root\n   $ hg shelve -q\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo \'contADDent\' > root\n   $ hg unshelve -q --config \'ui.origbackuppath=.hg/origbackups\'\n-  warning: conflicts while merging root! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ ls .hg/origbackups\n-  root\n+  ls: .hg/origbackups: $ENOENT$\n+  [2]\n   $ rm -rf .hg/origbackups\n \n test Abort unshelve always gets user out of the unshelved state\n@@ -355,9 +568,11 @@\n \n with a corrupted shelve state file\n   $ sed \'s/ae8c668541e8/123456789012/\' .hg/shelvedstate > ../corrupt-shelvedstate\n+  sed: can\'t read .hg/shelvedstate: $ENOENT$\n+  [2]\n   $ mv ../corrupt-shelvedstate .hg/shelvestate\n   $ hg unshelve --abort 2>&1 | grep \'aborted\'\n-  unshelve of \'default\' aborted\n+  [1]\n   $ hg summary\n   parent: 0:ae8c668541e8 tip\n    root\n@@ -386,29 +601,89 @@\n   $ hg shelve --unknown\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  $ hg status\n-  ? unknown\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg status\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   $ rm unknown\n+  rm: cannot lstat `unknown\': $ENOENT$\n+  [1]\n \n If I shelve, add the file, and unshelve, does it stay added?\n \n   $ echo unknown > unknown\n   $ hg shelve -u\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ? unknown\n   $ touch unknown\n   $ hg add unknown\n   $ hg status\n   A unknown\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging unknown\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n   A unknown\n   $ hg forget unknown\n@@ -418,21 +693,29 @@\n \n   $ echo unknown > unknown\n   $ hg shelve -u\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ? unknown\n   $ touch unknown\n   $ hg add unknown\n   $ hg commit -qm "Add unknown"\n-  $ hg status\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging unknown\n-  $ hg status\n-  M unknown\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  A unknown\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  A unknown\n   $ hg remove --force unknown\n   $ hg commit -qm "Remove unknown"\n+  [1]\n \n   $ cd ..\n \n@@ -459,6 +742,60 @@\n   $ hg shelve a\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   new-branch\n   $ hg status\n@@ -469,30 +806,38 @@\n   M b\n   A c\n   $ hg shelve --exclude c\n-  shelved as default-01\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n   new-branch\n   $ hg status\n+  M b\n   A c\n   $ hg shelve --include c\n-  shelved as default-02\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n   new-branch\n   $ hg status\n+  M b\n+  A c\n   $ echo "d" >> d\n   $ hg add d\n   $ hg status\n+  M b\n+  A c\n   A d\n \n We expect that bare-shelve will not keep branch in current working directory.\n \n   $ hg shelve\n-  shelved as default-03\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n-  default\n+  new-branch\n   $ cd ..\n \n When i shelve commit on newly created branch i expect\n@@ -514,6 +859,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "bbb" >> b\n@@ -521,12 +920,13 @@\n   ? b\n   $ hg unshelve\n   unshelving change \'default\'\n-  marked working directory as branch test\n-  $ hg status\n-  M a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? b\n   $ hg branch\n-  test\n+  default\n   $ cd ..\n \n When i shelve commit on newly created branch, make\n@@ -551,6 +951,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "ccc" >> a\n@@ -558,27 +1012,29 @@\n   M a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo "aaabbbccc" > a\n   $ rm a.orig\n+  rm: cannot lstat `a.orig\': $ENOENT$\n+  [1]\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg continue\n-  marked working directory as branch test\n-  unshelve of \'default\' complete\n+  abort: no operation in progress\n+  [20]\n   $ cat a\n   aaabbbccc\n   $ hg status\n   M a\n   $ hg branch\n-  test\n+  default\n   $ hg commit -m "test-commit"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n When i shelve on test branch, update to default branch\n and unshelve i expect that it will not preserve previous\n@@ -587,14 +1043,18 @@\n   $ echo "xxx" > b\n   $ hg add b\n   $ hg shelve\n-  shelved as test\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg update -r 7049e48789d7\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ hg unshelve\n-  unshelving change \'test\'\n-  rebasing shelved changes\n-  $ hg status\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  M a\n   A b\n   $ hg branch\n   default\n@@ -625,6 +1085,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "ccc" >> a\n@@ -632,24 +1146,27 @@\n   M a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Removing restore branch information from shelvedstate file(making it looks like\n in previous versions) and running unshelve --continue\n \n   $ cp .hg/shelvedstate .hg/shelvedstate_old\n+  cp: cannot stat `.hg/shelvedstate\': $ENOENT$\n+  [1]\n   $ cat .hg/shelvedstate_old | grep -v \'branchtorestore\' > .hg/shelvedstate\n+  cat: .hg/shelvedstate_old: $ENOENT$\n+  [1]\n \n   $ echo "aaabbbccc" > a\n   $ rm a.orig\n+  rm: cannot lstat `a.orig\': $ENOENT$\n+  [1]\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n \n #if continuecommand\n   $ hg continue --dry-run\n@@ -657,7 +1174,9 @@\n #endif\n \n   $ hg continue\n-  unshelve of \'default\' complete\n+  abort: corrupted shelved state file\n+  (please run hg unshelve --abort to abort unshelve operation)\n+  [255]\n   $ cat a\n   aaabbbccc\n   $ hg status\n@@ -684,6 +1203,60 @@\n   $ hg shelve a\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   test\n   $ hg branch default\n@@ -694,8 +1267,10 @@\n   ? b\n   $ hg unshelve\n   unshelving change \'default\'\n-  $ hg status\n-  M a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? b\n   $ hg branch\n   default\n@@ -707,15 +1282,69 @@\n   $ hg shelve\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo text2 > file && hg ci -Am text1\n-  adding file\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging file\n-  warning: conflicts while merging file! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo somethingsomething > .hg/shelvedstate\n \n Unshelve --continue fails with appropriate message if shelvedstate is corrupted\n@@ -740,8 +1369,8 @@\n   [20]\n #else\n   $ hg abort\n-  aborting the merge, updating back to 9451eaa6eee3\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: no operation in progress\n+  [20]\n #endif\n   $ cd ..\n \n@@ -753,21 +1382,77 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo 3 >> file && hg ci -Am 13\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg shelve --list\n   default         (*s ago) * changes to: 1 (glob)\n   $ hg unshelve --keep\n   unshelving change \'default\'\n-  rebasing shelved changes\n-  merging file\n-  warning: conflicts while merging file! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg resolve --mark file\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg continue\n-  unshelve of \'default\' complete\n+  abort: no operation in progress\n+  [20]\n   $ hg shelve --list\n   default         (*s ago) * changes to: 1 (glob)\n   $ cd ..\n@@ -780,21 +1465,79 @@\n   $ echo aa > a && hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ rm b\n   $ hg st\n   ! b\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg shelve\n-  shelved as default\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rm a && echo b > b\n   $ hg st\n   ! a\n   $ hg unshelve\n   unshelving change \'default\'\n-  abort: shelved change touches missing files\n-  (run hg status to see which files are missing)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg st\n   ! a\n@@ -810,16 +1553,70 @@\n   $ hg shelve --name ashelve\n   shelved as ashelve\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo 2 > a\n   $ hg ci -Am a\n-  adding a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg unshelve\n   unshelving change \'ashelve\'\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n putting v1 shelvedstate file in place of a created v2\n   $ cat << EOF > .hg/shelvedstate\n   > 1\n@@ -834,11 +1631,13 @@\n   > EOF\n   $ echo 1 > a\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n mercurial does not crash\n   $ hg continue\n-  unshelve of \'ashelve\' complete\n+  abort: corrupted shelved state file\n+  (please run hg unshelve --abort to abort unshelve operation)\n+  [255]\n \n #if phasebased\n \n@@ -897,25 +1696,76 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo foobar > a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg log --template \'{desc|firstline}  {author}  {date|isodate} \\n\' -r .\n-  pending changes temporary commit  shelve@localhost  1970-01-01 00:00 +0000 \n+  initial commit  test  1970-01-01 00:00 +0000 \n   $ hg merge --abort\n-  abort: cannot abort merge with unshelve in progress\n-  (use \'hg unshelve --continue\' or \'hg unshelve --abort\')\n+  abort: no merge in progress\n   [20]\n \n   $ hg unshelve --abort\n-  unshelve of \'default\' aborted\n+  abort: no unshelve in progress\n+  [20]\n \n   $ hg log -G --template \'{desc|firstline}  {author}  {date|isodate} \\n\' -r .\n   @  initial commit  test  1970-01-01 00:00 +0000\n@@ -930,16 +1780,66 @@\n   $ hg ci -qAm r0\n   $ echo "this will be shelved" >> foo\n   $ hg shelve -q\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo "this is in wdir, conflicts with shelve" >> foo\n   $ hg unshelve -q\n-  warning: conflicts while merging foo! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat foo\n   r0\n-  <<<<<<< working-copy: 0b2fcf2a90e9 - shelve: pending changes temporary commit\n   this is in wdir, conflicts with shelve\n-  =======\n-  this will be shelved\n-  >>>>>>> shelve:       9c072a2163db - shelve: changes to: r0\n   $ cd ..\n', 2152, 2154, 'truncated \\uXXXX escape') decoding diff, sorry

test-shelve2.t#stripbased#abortflag#continuecommand

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-shelve2.t\n+++ c:/hgdev/src/tests/test-shelve2.t#stripbased#abortflag#continuecommand.err\n@@ -52,16 +52,74 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg rebase -d 6c103be8f4e4 --config extensions.rebase=\n   rebasing 2:323bfa07f744( tip)? "xyz" (re)\n   merging x\n-  saved backup bundle to \\$TESTTMP/shelverebase/.hg/strip-backup/323bfa07f744-(78114325|7ae538ef)-rebase.hg (re)\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  M z\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  M x\n \n   $ cd ..\n \n@@ -82,25 +140,86 @@\n   $ hg shelve\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg up -q 0e067c57feba\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  A d\n+  abort: uncommitted changes\n+  (commit or update --clean to discard changes)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ! d\n \n unshelve should work on an ancestor of the original commit\n \n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up 3903775176ed\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n   $ hg unshelve\n   unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  A d\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n \n test bug 4073 we need to enable obsolete markers for it\n \n@@ -109,26 +228,34 @@\n   > evolution.createmarkers=True\n   > EOF\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg debugobsolete `hg log -r 0e067c57feba -T \'{node}\'`\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n-  $ hg unshelve\n-  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n unshelve should leave unknown files alone (issue4113)\n \n   $ echo e > e\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n   ? e\n   $ hg unshelve\n   unshelving change \'default\'\n-  $ hg status\n-  A d\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? e\n   $ cat e\n   e\n@@ -137,31 +264,43 @@\n \n   $ hg add e\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo z > e\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat e\n-  e\n+  z\n   $ cat e.orig\n-  z\n+  cat: e.orig: $ENOENT$\n+  [1]\n   $ rm e.orig\n+  rm: cannot lstat `e.orig\': $ENOENT$\n+  [1]\n \n restores backup of unknown file to right directory\n \n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo z > e\n   $ mkdir dir\n   $ hg unshelve --cwd dir\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rmdir dir\n   $ cat e\n-  e\n+  z\n   $ cat e.orig\n-  z\n+  cat: e.orig: $ENOENT$\n+  [1]\n \n unshelve and conflicts with tracked and untracked files\n \n@@ -169,34 +308,46 @@\n \n   $ rm -f *.orig\n   $ hg ci -qm \'commit stuff\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase -p null:\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n  no other changes - no merge:\n \n   $ echo f > f\n   $ hg add f\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo g > f\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n+  A e\n   A f\n-  ? f.orig\n   $ cat f\n-  f\n+  g\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n \n  other uncommitted changes - merge:\n \n   $ hg st\n+  A e\n   A f\n-  ? f.orig\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n #if repobundlerepo\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}\' -R bundle://.hg/shelved/default.hg -r \'bundle()\' --hidden\n   o  [48]  changes to: commit stuff  shelve@localhost (re)\n@@ -204,22 +355,21 @@\n   ~\n #endif\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}\'\n-  @  [37]  commit stuff  test (re)\n+  o  2  c  test\n   |\n-  | o  2  c  test\n+  | o  1  b  test\n   |/\n-  o  0  a  test\n+  @  0  a  test\n   \n   $ mv f.orig f\n+  mv: cannot stat `f.orig\': $ENOENT$\n+  [1]\n   $ echo 1 > a\n   $ hg unshelve --date \'1073741824 0\'\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging f\n-  warning: conflicts while merging f! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n #if phasebased\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}  {date|isodate}\'\n@@ -250,58 +400,62 @@\n #endif\n \n   $ hg st\n-  M f\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f\n-  <<<<<<< working-copy: d44eae5c3d33 - shelve: pending changes temporary commit\n   g\n-  =======\n-  f\n-  >>>>>>> shelve:       aef214a5229c - shelve: changes to: commit stuff\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n   $ hg unshelve --abort -t false\n   tool option will be ignored\n-  unshelve of \'default\' aborted\n+  abort: no unshelve in progress\n+  [20]\n   $ hg st\n   M a\n-  ? f.orig\n+  A e\n+  A f\n   $ cat f.orig\n-  g\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n+  cat: f.orig: $ENOENT$\n+  [1]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n   M a\n+  A e\n   A f\n-  ? f.orig\n \n  other committed changes - merge:\n \n   $ hg shelve f\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg ci a -m \'intermediate other change\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ mv f.orig f\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging f\n-  warning: conflicts while merging f! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  mv: cannot stat `f.orig\': $ENOENT$\n+  [1]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n-  M f\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f\n-  <<<<<<< working-copy: 6b563750f973 - test: intermediate other change\n   g\n-  =======\n-  f\n-  >>>>>>> shelve:       aef214a5229c - shelve: changes to: commit stuff\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n \n #if abortcommand\n when in dry-run mode\n@@ -310,11 +464,15 @@\n #endif\n \n   $ hg abort\n-  unshelve of \'default\' aborted\n+  abort: no operation in progress\n+  [20]\n   $ hg st\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n   $ hg shelve --delete default\n   $ cd ..\n \n@@ -341,13 +499,68 @@\n   $ hg commit -A -m \'root\' -q\n   $ echo \'\' > root\n   $ hg shelve -q\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo \'contADDent\' > root\n   $ hg unshelve -q --config \'ui.origbackuppath=.hg/origbackups\'\n-  warning: conflicts while merging root! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ ls .hg/origbackups\n-  root\n+  ls: .hg/origbackups: $ENOENT$\n+  [2]\n   $ rm -rf .hg/origbackups\n \n test Abort unshelve always gets user out of the unshelved state\n@@ -355,9 +568,11 @@\n \n with a corrupted shelve state file\n   $ sed \'s/ae8c668541e8/123456789012/\' .hg/shelvedstate > ../corrupt-shelvedstate\n+  sed: can\'t read .hg/shelvedstate: $ENOENT$\n+  [2]\n   $ mv ../corrupt-shelvedstate .hg/shelvestate\n   $ hg unshelve --abort 2>&1 | grep \'aborted\'\n-  unshelve of \'default\' aborted\n+  [1]\n   $ hg summary\n   parent: 0:ae8c668541e8 tip\n    root\n@@ -386,29 +601,89 @@\n   $ hg shelve --unknown\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  $ hg status\n-  ? unknown\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg status\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   $ rm unknown\n+  rm: cannot lstat `unknown\': $ENOENT$\n+  [1]\n \n If I shelve, add the file, and unshelve, does it stay added?\n \n   $ echo unknown > unknown\n   $ hg shelve -u\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ? unknown\n   $ touch unknown\n   $ hg add unknown\n   $ hg status\n   A unknown\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging unknown\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n   A unknown\n   $ hg forget unknown\n@@ -418,21 +693,29 @@\n \n   $ echo unknown > unknown\n   $ hg shelve -u\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ? unknown\n   $ touch unknown\n   $ hg add unknown\n   $ hg commit -qm "Add unknown"\n-  $ hg status\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging unknown\n-  $ hg status\n-  M unknown\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  A unknown\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  A unknown\n   $ hg remove --force unknown\n   $ hg commit -qm "Remove unknown"\n+  [1]\n \n   $ cd ..\n \n@@ -459,6 +742,60 @@\n   $ hg shelve a\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   new-branch\n   $ hg status\n@@ -469,30 +806,38 @@\n   M b\n   A c\n   $ hg shelve --exclude c\n-  shelved as default-01\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n   new-branch\n   $ hg status\n+  M b\n   A c\n   $ hg shelve --include c\n-  shelved as default-02\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n   new-branch\n   $ hg status\n+  M b\n+  A c\n   $ echo "d" >> d\n   $ hg add d\n   $ hg status\n+  M b\n+  A c\n   A d\n \n We expect that bare-shelve will not keep branch in current working directory.\n \n   $ hg shelve\n-  shelved as default-03\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n-  default\n+  new-branch\n   $ cd ..\n \n When i shelve commit on newly created branch i expect\n@@ -514,6 +859,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "bbb" >> b\n@@ -521,12 +920,13 @@\n   ? b\n   $ hg unshelve\n   unshelving change \'default\'\n-  marked working directory as branch test\n-  $ hg status\n-  M a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? b\n   $ hg branch\n-  test\n+  default\n   $ cd ..\n \n When i shelve commit on newly created branch, make\n@@ -551,6 +951,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "ccc" >> a\n@@ -558,27 +1012,29 @@\n   M a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo "aaabbbccc" > a\n   $ rm a.orig\n+  rm: cannot lstat `a.orig\': $ENOENT$\n+  [1]\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg continue\n-  marked working directory as branch test\n-  unshelve of \'default\' complete\n+  abort: no operation in progress\n+  [20]\n   $ cat a\n   aaabbbccc\n   $ hg status\n   M a\n   $ hg branch\n-  test\n+  default\n   $ hg commit -m "test-commit"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n When i shelve on test branch, update to default branch\n and unshelve i expect that it will not preserve previous\n@@ -587,14 +1043,18 @@\n   $ echo "xxx" > b\n   $ hg add b\n   $ hg shelve\n-  shelved as test\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg update -r 7049e48789d7\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ hg unshelve\n-  unshelving change \'test\'\n-  rebasing shelved changes\n-  $ hg status\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  M a\n   A b\n   $ hg branch\n   default\n@@ -625,6 +1085,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "ccc" >> a\n@@ -632,24 +1146,27 @@\n   M a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Removing restore branch information from shelvedstate file(making it looks like\n in previous versions) and running unshelve --continue\n \n   $ cp .hg/shelvedstate .hg/shelvedstate_old\n+  cp: cannot stat `.hg/shelvedstate\': $ENOENT$\n+  [1]\n   $ cat .hg/shelvedstate_old | grep -v \'branchtorestore\' > .hg/shelvedstate\n+  cat: .hg/shelvedstate_old: $ENOENT$\n+  [1]\n \n   $ echo "aaabbbccc" > a\n   $ rm a.orig\n+  rm: cannot lstat `a.orig\': $ENOENT$\n+  [1]\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n \n #if continuecommand\n   $ hg continue --dry-run\n@@ -657,7 +1174,9 @@\n #endif\n \n   $ hg continue\n-  unshelve of \'default\' complete\n+  abort: corrupted shelved state file\n+  (please run hg unshelve --abort to abort unshelve operation)\n+  [255]\n   $ cat a\n   aaabbbccc\n   $ hg status\n@@ -684,6 +1203,60 @@\n   $ hg shelve a\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   test\n   $ hg branch default\n@@ -694,8 +1267,10 @@\n   ? b\n   $ hg unshelve\n   unshelving change \'default\'\n-  $ hg status\n-  M a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? b\n   $ hg branch\n   default\n@@ -707,15 +1282,69 @@\n   $ hg shelve\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo text2 > file && hg ci -Am text1\n-  adding file\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging file\n-  warning: conflicts while merging file! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo somethingsomething > .hg/shelvedstate\n \n Unshelve --continue fails with appropriate message if shelvedstate is corrupted\n@@ -740,8 +1369,8 @@\n   [20]\n #else\n   $ hg abort\n-  aborting the merge, updating back to 9451eaa6eee3\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: no operation in progress\n+  [20]\n #endif\n   $ cd ..\n \n@@ -753,21 +1382,77 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo 3 >> file && hg ci -Am 13\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg shelve --list\n   default         (*s ago) * changes to: 1 (glob)\n   $ hg unshelve --keep\n   unshelving change \'default\'\n-  rebasing shelved changes\n-  merging file\n-  warning: conflicts while merging file! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg resolve --mark file\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg continue\n-  unshelve of \'default\' complete\n+  abort: no operation in progress\n+  [20]\n   $ hg shelve --list\n   default         (*s ago) * changes to: 1 (glob)\n   $ cd ..\n@@ -780,21 +1465,79 @@\n   $ echo aa > a && hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ rm b\n   $ hg st\n   ! b\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg shelve\n-  shelved as default\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rm a && echo b > b\n   $ hg st\n   ! a\n   $ hg unshelve\n   unshelving change \'default\'\n-  abort: shelved change touches missing files\n-  (run hg status to see which files are missing)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg st\n   ! a\n@@ -810,16 +1553,70 @@\n   $ hg shelve --name ashelve\n   shelved as ashelve\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo 2 > a\n   $ hg ci -Am a\n-  adding a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg unshelve\n   unshelving change \'ashelve\'\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n putting v1 shelvedstate file in place of a created v2\n   $ cat << EOF > .hg/shelvedstate\n   > 1\n@@ -834,11 +1631,13 @@\n   > EOF\n   $ echo 1 > a\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n mercurial does not crash\n   $ hg continue\n-  unshelve of \'ashelve\' complete\n+  abort: corrupted shelved state file\n+  (please run hg unshelve --abort to abort unshelve operation)\n+  [255]\n \n #if phasebased\n \n@@ -897,25 +1696,76 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo foobar > a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg log --template \'{desc|firstline}  {author}  {date|isodate} \\n\' -r .\n-  pending changes temporary commit  shelve@localhost  1970-01-01 00:00 +0000 \n+  initial commit  test  1970-01-01 00:00 +0000 \n   $ hg merge --abort\n-  abort: cannot abort merge with unshelve in progress\n-  (use \'hg unshelve --continue\' or \'hg unshelve --abort\')\n+  abort: no merge in progress\n   [20]\n \n   $ hg unshelve --abort\n-  unshelve of \'default\' aborted\n+  abort: no unshelve in progress\n+  [20]\n \n   $ hg log -G --template \'{desc|firstline}  {author}  {date|isodate} \\n\' -r .\n   @  initial commit  test  1970-01-01 00:00 +0000\n@@ -930,16 +1780,66 @@\n   $ hg ci -qAm r0\n   $ echo "this will be shelved" >> foo\n   $ hg shelve -q\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo "this is in wdir, conflicts with shelve" >> foo\n   $ hg unshelve -q\n-  warning: conflicts while merging foo! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat foo\n   r0\n-  <<<<<<< working-copy: 0b2fcf2a90e9 - shelve: pending changes temporary commit\n   this is in wdir, conflicts with shelve\n-  =======\n-  this will be shelved\n-  >>>>>>> shelve:       9c072a2163db - shelve: changes to: r0\n   $ cd ..\n', 2152, 2154, 'truncated \\uXXXX escape') decoding diff, sorry

test-shelve2.t#stripbased#abortflag#continueflag

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-shelve2.t\n+++ c:/hgdev/src/tests/test-shelve2.t#stripbased#abortflag#continueflag.err\n@@ -52,16 +52,74 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg rebase -d 6c103be8f4e4 --config extensions.rebase=\n   rebasing 2:323bfa07f744( tip)? "xyz" (re)\n   merging x\n-  saved backup bundle to \\$TESTTMP/shelverebase/.hg/strip-backup/323bfa07f744-(78114325|7ae538ef)-rebase.hg (re)\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  M z\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  M x\n \n   $ cd ..\n \n@@ -82,25 +140,86 @@\n   $ hg shelve\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg up -q 0e067c57feba\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  A d\n+  abort: uncommitted changes\n+  (commit or update --clean to discard changes)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ! d\n \n unshelve should work on an ancestor of the original commit\n \n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up 3903775176ed\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n   $ hg unshelve\n   unshelving change \'default\'\n-  rebasing shelved changes\n-  $ hg status\n-  A d\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n \n test bug 4073 we need to enable obsolete markers for it\n \n@@ -109,26 +228,34 @@\n   > evolution.createmarkers=True\n   > EOF\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg debugobsolete `hg log -r 0e067c57feba -T \'{node}\'`\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n-  $ hg unshelve\n-  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n unshelve should leave unknown files alone (issue4113)\n \n   $ echo e > e\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n   ? e\n   $ hg unshelve\n   unshelving change \'default\'\n-  $ hg status\n-  A d\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? e\n   $ cat e\n   e\n@@ -137,31 +264,43 @@\n \n   $ hg add e\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo z > e\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat e\n-  e\n+  z\n   $ cat e.orig\n-  z\n+  cat: e.orig: $ENOENT$\n+  [1]\n   $ rm e.orig\n+  rm: cannot lstat `e.orig\': $ENOENT$\n+  [1]\n \n restores backup of unknown file to right directory\n \n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo z > e\n   $ mkdir dir\n   $ hg unshelve --cwd dir\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rmdir dir\n   $ cat e\n-  e\n+  z\n   $ cat e.orig\n-  z\n+  cat: e.orig: $ENOENT$\n+  [1]\n \n unshelve and conflicts with tracked and untracked files\n \n@@ -169,34 +308,46 @@\n \n   $ rm -f *.orig\n   $ hg ci -qm \'commit stuff\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase -p null:\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n  no other changes - no merge:\n \n   $ echo f > f\n   $ hg add f\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo g > f\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n+  A e\n   A f\n-  ? f.orig\n   $ cat f\n-  f\n+  g\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n \n  other uncommitted changes - merge:\n \n   $ hg st\n+  A e\n   A f\n-  ? f.orig\n   $ hg shelve\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n #if repobundlerepo\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}\' -R bundle://.hg/shelved/default.hg -r \'bundle()\' --hidden\n   o  [48]  changes to: commit stuff  shelve@localhost (re)\n@@ -204,22 +355,21 @@\n   ~\n #endif\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}\'\n-  @  [37]  commit stuff  test (re)\n+  o  2  c  test\n   |\n-  | o  2  c  test\n+  | o  1  b  test\n   |/\n-  o  0  a  test\n+  @  0  a  test\n   \n   $ mv f.orig f\n+  mv: cannot stat `f.orig\': $ENOENT$\n+  [1]\n   $ echo 1 > a\n   $ hg unshelve --date \'1073741824 0\'\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging f\n-  warning: conflicts while merging f! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n #if phasebased\n   $ hg log -G --template \'{rev}  {desc|firstline}  {author}  {date|isodate}\'\n@@ -250,58 +400,62 @@\n #endif\n \n   $ hg st\n-  M f\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f\n-  <<<<<<< working-copy: d44eae5c3d33 - shelve: pending changes temporary commit\n   g\n-  =======\n-  f\n-  >>>>>>> shelve:       aef214a5229c - shelve: changes to: commit stuff\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n   $ hg unshelve --abort -t false\n   tool option will be ignored\n-  unshelve of \'default\' aborted\n+  abort: no unshelve in progress\n+  [20]\n   $ hg st\n   M a\n-  ? f.orig\n+  A e\n+  A f\n   $ cat f.orig\n-  g\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n+  cat: f.orig: $ENOENT$\n+  [1]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n   M a\n+  A e\n   A f\n-  ? f.orig\n \n  other committed changes - merge:\n \n   $ hg shelve f\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg ci a -m \'intermediate other change\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ mv f.orig f\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging f\n-  warning: conflicts while merging f! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  mv: cannot stat `f.orig\': $ENOENT$\n+  [1]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st\n-  M f\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f\n-  <<<<<<< working-copy: 6b563750f973 - test: intermediate other change\n   g\n-  =======\n-  f\n-  >>>>>>> shelve:       aef214a5229c - shelve: changes to: commit stuff\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n \n #if abortcommand\n when in dry-run mode\n@@ -310,11 +464,15 @@\n #endif\n \n   $ hg abort\n-  unshelve of \'default\' aborted\n+  abort: no operation in progress\n+  [20]\n   $ hg st\n-  ? f.orig\n+  M a\n+  A e\n+  A f\n   $ cat f.orig\n-  g\n+  cat: f.orig: $ENOENT$\n+  [1]\n   $ hg shelve --delete default\n   $ cd ..\n \n@@ -341,13 +499,68 @@\n   $ hg commit -A -m \'root\' -q\n   $ echo \'\' > root\n   $ hg shelve -q\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo \'contADDent\' > root\n   $ hg unshelve -q --config \'ui.origbackuppath=.hg/origbackups\'\n-  warning: conflicts while merging root! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ ls .hg/origbackups\n-  root\n+  ls: .hg/origbackups: $ENOENT$\n+  [2]\n   $ rm -rf .hg/origbackups\n \n test Abort unshelve always gets user out of the unshelved state\n@@ -355,9 +568,11 @@\n \n with a corrupted shelve state file\n   $ sed \'s/ae8c668541e8/123456789012/\' .hg/shelvedstate > ../corrupt-shelvedstate\n+  sed: can\'t read .hg/shelvedstate: $ENOENT$\n+  [2]\n   $ mv ../corrupt-shelvedstate .hg/shelvestate\n   $ hg unshelve --abort 2>&1 | grep \'aborted\'\n-  unshelve of \'default\' aborted\n+  [1]\n   $ hg summary\n   parent: 0:ae8c668541e8 tip\n    root\n@@ -386,29 +601,89 @@\n   $ hg shelve --unknown\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  $ hg status\n-  ? unknown\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg status\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   $ rm unknown\n+  rm: cannot lstat `unknown\': $ENOENT$\n+  [1]\n \n If I shelve, add the file, and unshelve, does it stay added?\n \n   $ echo unknown > unknown\n   $ hg shelve -u\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ? unknown\n   $ touch unknown\n   $ hg add unknown\n   $ hg status\n   A unknown\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging unknown\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n   A unknown\n   $ hg forget unknown\n@@ -418,21 +693,29 @@\n \n   $ echo unknown > unknown\n   $ hg shelve -u\n-  shelved as default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  $ hg status\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  ? unknown\n   $ touch unknown\n   $ hg add unknown\n   $ hg commit -qm "Add unknown"\n-  $ hg status\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging unknown\n-  $ hg status\n-  M unknown\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  A unknown\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  A unknown\n   $ hg remove --force unknown\n   $ hg commit -qm "Remove unknown"\n+  [1]\n \n   $ cd ..\n \n@@ -459,6 +742,60 @@\n   $ hg shelve a\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   new-branch\n   $ hg status\n@@ -469,30 +806,38 @@\n   M b\n   A c\n   $ hg shelve --exclude c\n-  shelved as default-01\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n   new-branch\n   $ hg status\n+  M b\n   A c\n   $ hg shelve --include c\n-  shelved as default-02\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n   new-branch\n   $ hg status\n+  M b\n+  A c\n   $ echo "d" >> d\n   $ hg add d\n   $ hg status\n+  M b\n+  A c\n   A d\n \n We expect that bare-shelve will not keep branch in current working directory.\n \n   $ hg shelve\n-  shelved as default-03\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg branch\n-  default\n+  new-branch\n   $ cd ..\n \n When i shelve commit on newly created branch i expect\n@@ -514,6 +859,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "bbb" >> b\n@@ -521,12 +920,13 @@\n   ? b\n   $ hg unshelve\n   unshelving change \'default\'\n-  marked working directory as branch test\n-  $ hg status\n-  M a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? b\n   $ hg branch\n-  test\n+  default\n   $ cd ..\n \n When i shelve commit on newly created branch, make\n@@ -551,6 +951,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "ccc" >> a\n@@ -558,27 +1012,29 @@\n   M a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo "aaabbbccc" > a\n   $ rm a.orig\n+  rm: cannot lstat `a.orig\': $ENOENT$\n+  [1]\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg continue\n-  marked working directory as branch test\n-  unshelve of \'default\' complete\n+  abort: no operation in progress\n+  [20]\n   $ cat a\n   aaabbbccc\n   $ hg status\n   M a\n   $ hg branch\n-  test\n+  default\n   $ hg commit -m "test-commit"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n When i shelve on test branch, update to default branch\n and unshelve i expect that it will not preserve previous\n@@ -587,14 +1043,18 @@\n   $ echo "xxx" > b\n   $ hg add b\n   $ hg shelve\n-  shelved as test\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg update -r 7049e48789d7\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ hg unshelve\n-  unshelving change \'test\'\n-  rebasing shelved changes\n-  $ hg status\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  M a\n   A b\n   $ hg branch\n   default\n@@ -625,6 +1085,60 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   default\n   $ echo "ccc" >> a\n@@ -632,24 +1146,27 @@\n   M a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Removing restore branch information from shelvedstate file(making it looks like\n in previous versions) and running unshelve --continue\n \n   $ cp .hg/shelvedstate .hg/shelvedstate_old\n+  cp: cannot stat `.hg/shelvedstate\': $ENOENT$\n+  [1]\n   $ cat .hg/shelvedstate_old | grep -v \'branchtorestore\' > .hg/shelvedstate\n+  cat: .hg/shelvedstate_old: $ENOENT$\n+  [1]\n \n   $ echo "aaabbbccc" > a\n   $ rm a.orig\n+  rm: cannot lstat `a.orig\': $ENOENT$\n+  [1]\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n \n #if continuecommand\n   $ hg continue --dry-run\n@@ -657,7 +1174,9 @@\n #endif\n \n   $ hg continue\n-  unshelve of \'default\' complete\n+  abort: corrupted shelved state file\n+  (please run hg unshelve --abort to abort unshelve operation)\n+  [255]\n   $ cat a\n   aaabbbccc\n   $ hg status\n@@ -684,6 +1203,60 @@\n   $ hg shelve a\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg branch\n   test\n   $ hg branch default\n@@ -694,8 +1267,10 @@\n   ? b\n   $ hg unshelve\n   unshelving change \'default\'\n-  $ hg status\n-  M a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n   ? b\n   $ hg branch\n   default\n@@ -707,15 +1282,69 @@\n   $ hg shelve\n   shelved as default\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo text2 > file && hg ci -Am text1\n-  adding file\n-  $ hg unshelve\n-  unshelving change \'default\'\n-  rebasing shelved changes\n-  merging file\n-  warning: conflicts while merging file! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unshelve\n+  unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo somethingsomething > .hg/shelvedstate\n \n Unshelve --continue fails with appropriate message if shelvedstate is corrupted\n@@ -740,8 +1369,8 @@\n   [20]\n #else\n   $ hg abort\n-  aborting the merge, updating back to 9451eaa6eee3\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: no operation in progress\n+  [20]\n #endif\n   $ cd ..\n \n@@ -753,21 +1382,77 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo 3 >> file && hg ci -Am 13\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg shelve --list\n   default         (*s ago) * changes to: 1 (glob)\n   $ hg unshelve --keep\n   unshelving change \'default\'\n-  rebasing shelved changes\n-  merging file\n-  warning: conflicts while merging file! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg resolve --mark file\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg continue\n-  unshelve of \'default\' complete\n+  abort: no operation in progress\n+  [20]\n   $ hg shelve --list\n   default         (*s ago) * changes to: 1 (glob)\n   $ cd ..\n@@ -780,21 +1465,79 @@\n   $ echo aa > a && hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ rm b\n   $ hg st\n   ! b\n   $ hg unshelve\n   unshelving change \'default\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg shelve\n-  shelved as default\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rm a && echo b > b\n   $ hg st\n   ! a\n   $ hg unshelve\n   unshelving change \'default\'\n-  abort: shelved change touches missing files\n-  (run hg status to see which files are missing)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg st\n   ! a\n@@ -810,16 +1553,70 @@\n   $ hg shelve --name ashelve\n   shelved as ashelve\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo 2 > a\n   $ hg ci -Am a\n-  adding a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg unshelve\n   unshelving change \'ashelve\'\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n putting v1 shelvedstate file in place of a created v2\n   $ cat << EOF > .hg/shelvedstate\n   > 1\n@@ -834,11 +1631,13 @@\n   > EOF\n   $ echo 1 > a\n   $ hg resolve --mark a\n-  (no more unresolved files)\n-  continue: hg unshelve --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n mercurial does not crash\n   $ hg continue\n-  unshelve of \'ashelve\' complete\n+  abort: corrupted shelved state file\n+  (please run hg unshelve --abort to abort unshelve operation)\n+  [255]\n \n #if phasebased\n \n@@ -897,25 +1696,76 @@\n   $ hg shelve\n   shelved as default\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo foobar > a\n   $ hg unshelve\n   unshelving change \'default\'\n-  temporarily committing pending changes (restore with \'hg unshelve --abort\')\n-  rebasing shelved changes\n-  merging a\n-  warning: conflicts while merging a! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg log --template \'{desc|firstline}  {author}  {date|isodate} \\n\' -r .\n-  pending changes temporary commit  shelve@localhost  1970-01-01 00:00 +0000 \n+  initial commit  test  1970-01-01 00:00 +0000 \n   $ hg merge --abort\n-  abort: cannot abort merge with unshelve in progress\n-  (use \'hg unshelve --continue\' or \'hg unshelve --abort\')\n+  abort: no merge in progress\n   [20]\n \n   $ hg unshelve --abort\n-  unshelve of \'default\' aborted\n+  abort: no unshelve in progress\n+  [20]\n \n   $ hg log -G --template \'{desc|firstline}  {author}  {date|isodate} \\n\' -r .\n   @  initial commit  test  1970-01-01 00:00 +0000\n@@ -930,16 +1780,66 @@\n   $ hg ci -qAm r0\n   $ echo "this will be shelved" >> foo\n   $ hg shelve -q\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6544, in shelve\n+      return shelvemod.createcmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 495, in createcmd\n+      return _docreatecmd(ui, repo, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\shelve.py", line 576, in _docreatecmd\n+      lockmod.release(tr, lock)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo "this is in wdir, conflicts with shelve" >> foo\n   $ hg unshelve -q\n-  warning: conflicts while merging foo! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg unshelve --continue\')\n-  [240]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat foo\n   r0\n-  <<<<<<< working-copy: 0b2fcf2a90e9 - shelve: pending changes temporary commit\n   this is in wdir, conflicts with shelve\n-  =======\n-  this will be shelved\n-  >>>>>>> shelve:       9c072a2163db - shelve: changes to: r0\n   $ cd ..\n', 2149, 2151, 'truncated \\uXXXX escape') decoding diff, sorry

test-single-head.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-single-head.t\n+++ c:/hgdev/src/tests/test-single-head.t.err\n@@ -71,11 +71,62 @@\n   adding changesets\n   adding manifests\n   adding file changes\n-  transaction abort!\n-  rollback completed\n-  abort: rejecting multiple heads on branch "default"\n-  (2 heads: 286d02a6e2a2 9bf953aa81f6)\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 5612, in push\n+      opargs=opargs,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 458, in push\n+      _pushbundle2(pushop)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 1125, in _pushbundle2\n+      b\'url\': pushop.remote.url(),\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\thirdparty\\concurrent\\futures\\_base.py", line 457, in result\n+      return self.__get_result()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 246, in callcommand\n+      result = fn(**pycompat.strkwargs(args))\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 360, in unbundle\n+      ret = exchange.unbundle(self._repo, bundle, heads, b\'push\', url)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 2645, in unbundle\n+      lockmod.release(lockandtr[2], lockandtr[1], lockandtr[0])\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+      lock.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n remerge them\n \n@@ -86,10 +137,9 @@\n   $ hg push\n   pushing to $TESTTMP/single-head-server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 2 changes to 2 files\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Test single head enforcing - after rewrite\n ------------------------------------------\n@@ -98,20 +148,16 @@\n   $ hg push\n   pushing to $TESTTMP/single-head-server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg commit --amend -m c_dF1\n   $ hg push\n   pushing to $TESTTMP/single-head-server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 1 files (+1 heads)\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Check it does not interfer with strip\n -------------------------------------\n@@ -199,6 +245,57 @@\n \n   $ hg strip --config extensions.strip= --rev \'desc("c_dH0")\'\n   saved backup bundle to $TESTTMP/client/.hg/strip-backup/fe47ea669cea-a41bf5a9-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\client\\.hg\\strip-backup/fe47ea669cea-a41bf5a9-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\client\\.hg\\strip-backup/fe47ea669cea-ddac247b-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\client\\.hg\\strip-backup/fe47ea669cea-ddac247b-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Test that closing heads are ignored by default\n -----------------------------------------------\n@@ -206,33 +303,32 @@\n   $ hg up \'desc("c_aG0")\'\n   0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n   $ mkcommit c_aJ0\n-  created new head\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n pushing the new head should fails\n \n   $ hg push -f\n   pushing to $TESTTMP/single-head-server\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  transaction abort!\n-  rollback completed\n-  abort: rejecting multiple heads on branch "branch_A"\n-  (2 heads: 49003e504178 468bd81ccc5d)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n \n closing the head and pushing should succeed\n \n   $ mkcommit c_aK0 --close-branch\n-  $ hg push -f\n-  pushing to $TESTTMP/single-head-server\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 4 changesets with 4 changes to 4 files (-1 heads)\n+  abort: can only close branch heads\n+  (use --force-close-branch to close branch from a non-head changeset)\n+  [10]\n+  $ hg push -f\n+  pushing to $TESTTMP/single-head-server\n+  searching for changes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n \n Test that closing heads can be explicitly accounted for\n@@ -244,20 +340,20 @@\n   > EOF\n \n   $ hg up \'desc("c_aG0")\'\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ mkcommit c_aL0\n-  created new head\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ mkcommit c_aM0 --close-branch\n-  $ hg push -f\n-  pushing to $TESTTMP/single-head-server\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  transaction abort!\n-  rollback completed\n-  abort: rejecting multiple heads on branch "branch_A"\n-  (3 heads: 49003e504178 5254bcccab93 42b9fe70a3c1)\n+  abort: can only close branch heads\n+  (use --force-close-branch to close branch from a non-head changeset)\n+  [10]\n+  $ hg push -f\n+  pushing to $TESTTMP/single-head-server\n+  searching for changes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n \n@@ -274,20 +370,25 @@\n   $ hg out -T "{desc}\\n"\n   comparing with $TESTTMP/single-head-server\n   searching for changes\n-  c_aL0\n-  c_aM0\n+  c_dD0\n+  c_dE0\n+  c_dF1\n+  c_aG0\n+  c_dH0\n+  c_aI0\n \n Let\'s make a new head and push everythin. The server feedback will mention\n exactly one new head because c_aM0 is closed.\n \n   $ hg up \'desc("c_aG0")\'\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ mkcommit c_aN0\n-  created new head\n-  $ hg push -f\n-  pushing to $TESTTMP/single-head-server\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 3 changesets with 3 changes to 3 files (+1 heads)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg push -f\n+  pushing to $TESTTMP/single-head-server\n+  searching for changes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n', 2217, 2219, 'truncated \\uXXXX escape') decoding diff, sorry

test-sparse-merges.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-sparse-merges.t\n+++ c:/hgdev/src/tests/test-sparse-merges.t.err\n@@ -52,16 +52,67 @@\n copy\n \n   $ hg strip -q -r . --config extensions.strip=\n+  strip failed, backup bundle stored in \'$TESTTMP\\myrepo\\.hg\\strip-backup/b55cc1cf26f8-49b60f2a-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: sparse, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg up -q feature\n   $ touch branchonly\n   $ hg ci -Aqm \'add branchonly\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg up -q default\n   $ hg debugsparse -X branchonly\n   $ hg merge feature\n-  temporarily included 2 file(s) in the sparse checkout for merging\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n+  abort: merging with a working directory ancestor has no effect\n+  [255]\n \n   $ cd ..\n \n', 2187, 2189, 'truncated \\uXXXX escape') decoding diff, sorry

test-sparse-profiles.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-sparse-profiles.t\n+++ c:/hgdev/src/tests/test-sparse-profiles.t.err\n@@ -177,6 +177,55 @@\n Verify stripping refreshes dirstate\n \n   $ hg strip -q -r .\n+  strip failed, backup bundle stored in \'$TESTTMP\\myrepo\\.hg\\strip-backup/ce5abe0b4728-2849a326-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: purge, rebase, sparse, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ ls -A\n   .hg\n   backend.sparse\n@@ -229,16 +278,18 @@\n   continue: hg rebase --continue\n \n   $ hg rebase -q --continue\n-  $ ls -A\n-  .hg\n-  backend.sparse\n-  index.html\n-  readme.txt\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ ls -A\n+  .hg\n+  backend.sparse\n+  data.py\n+  index.html\n   webpage.sparse\n \n   $ hg cat -r . data.py\n   x\n-  foo\n   bar\n \n Test checking out a commit that does not contain the sparse profile. The\n@@ -247,29 +298,48 @@\n \n   $ hg debugsparse --reset\n   $ hg rm *.sparse\n+  not removing backend.sparse: file is modified (use -f to force removal)\n+  [1]\n   $ hg commit -m "delete profiles"\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg up -q ".^"\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [20]\n   $ hg debugsparse --enable-profile backend.sparse\n-  $ ls -A\n-  .hg\n+  pending changes to \'backend.sparse\'\n+  pending changes to \'webpage.sparse\'\n+  abort: could not update sparseness due to pending changes\n+  [255]\n+  $ ls -A\n+  .hg\n+  backend.sparse\n+  data.py\n   index.html\n   readme.txt\n   $ hg up tip | grep warning\n-  warning: sparse profile \'backend.sparse\' not found in rev bfcb76de99cc - ignoring it\n-  [1]\n-  $ ls -A\n-  .hg\n+  abort: rebase in progress\n+  (use \'hg rebase --continue\', \'hg rebase --abort\', or \'hg rebase --stop\')\n+  [1]\n+  $ ls -A\n+  .hg\n+  backend.sparse\n   data.py\n   index.html\n   readme.txt\n   $ hg debugsparse --disable-profile backend.sparse | grep warning\n-  warning: sparse profile \'backend.sparse\' not found in rev bfcb76de99cc - ignoring it\n   [1]\n   $ cat >> .hg/hgrc <<EOF\n   > [sparse]\n   > missingwarning = false\n   > EOF\n   $ hg debugsparse --enable-profile backend.sparse\n+  pending changes to \'backend.sparse\'\n+  pending changes to \'webpage.sparse\'\n+  abort: could not update sparseness due to pending changes\n+  [255]\n \n   $ cd ..\n \n', 2211, 2213, 'truncated \\uXXXX escape') decoding diff, sorry

test-sparse.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-sparse.t\n+++ c:/hgdev/src/tests/test-sparse.t.err\n@@ -271,6 +271,57 @@\n   \n   $ hg strip -r . -k\n   saved backup bundle to $TESTTMP/myrepo/.hg/strip-backup/39278f7c08a9-ce59e002-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\myrepo\\.hg\\strip-backup/39278f7c08a9-ce59e002-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\myrepo\\.hg\\strip-backup/39278f7c08a9-db50ce2d-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\myrepo\\.hg\\strip-backup/39278f7c08a9-db50ce2d-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: sparse, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg status\n   M show\n   ? show2\n@@ -278,80 +329,112 @@\n Verify rebase succeeds if all changed files are in sparse checkout\n \n   $ hg commit -Aqm "add show2"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg rebase -d 1 --config extensions.rebase=\n-  rebasing 2:bdde55290160 tip "add show2"\n-  saved backup bundle to $TESTTMP/myrepo/.hg/strip-backup/bdde55290160-216ed9c6-rebase.hg\n+  abort: uncommitted changes\n+  [20]\n \n Verify log --sparse only shows commits that affect the sparse checkout\n \n   $ hg log -T \'{rev} \'\n   2 1 0  (no-eol)\n   $ hg log --sparse -T \'{rev} \'\n-  2 0  (no-eol)\n+  1 0  (no-eol)\n \n Test status on a file in a subdir\n \n   $ mkdir -p dir1/dir2\n   $ touch dir1/dir2/file\n   $ hg debugsparse -I dir1/dir2\n+  pending changes to \'show\'\n+  abort: could not update sparseness due to pending changes\n+  [255]\n   $ hg status\n+  M show\n   ? dir1/dir2/file\n+  ? show2\n \n Mix files and subdirectories, both "glob:" and unprefixed\n \n   $ hg debugsparse --reset\n   $ touch dir1/notshown\n   $ hg commit -A dir1/notshown -m "notshown"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg debugsparse --include \'dir1/dir2\'\n+  pending changes to \'show\'\n+  abort: could not update sparseness due to pending changes\n+  [255]\n   $ "$PYTHON" $TESTDIR/list-tree.py . | egrep -v \'\\.[\\/]\\.hg\'\n   ./\n   ./dir1/\n   ./dir1/dir2/\n   ./dir1/dir2/file\n-  ./hide.orig\n+  .\\dir1\\notshown\n+  .\\hide\n+  .\\hide.orig\n+  .\\show\n+  .\\show2\n   $ hg debugsparse --delete \'dir1/dir2\'\n   $ hg debugsparse --include \'glob:dir1/dir2\'\n+  pending changes to \'show\'\n+  abort: could not update sparseness due to pending changes\n+  [255]\n   $ "$PYTHON" $TESTDIR/list-tree.py . | egrep -v \'\\.[\\/]\\.hg\'\n   ./\n   ./dir1/\n   ./dir1/dir2/\n   ./dir1/dir2/file\n-  ./hide.orig\n+  .\\dir1\\notshown\n+  .\\hide\n+  .\\hide.orig\n+  .\\show\n+  .\\show2\n \n Test that add -s adds dirs to sparse profile\n \n   $ hg debugsparse --reset\n   $ hg debugsparse --include empty\n-  $ hg debugsparse\n-  [include]\n-  empty\n+  pending changes to \'show\'\n+  abort: could not update sparseness due to pending changes\n+  [255]\n+  $ hg debugsparse\n   \n \n   $ mkdir add\n   $ touch add/foo\n   $ touch add/bar\n   $ hg add add/foo\n-  abort: cannot add \'add/foo\' - it is outside the sparse checkout\n-  (include file with `hg debugsparse --include <pattern>` or use `hg add -s <file>` to include file directory while adding)\n-  [255]\n   $ hg add -s add/foo\n+  pending changes to \'show\'\n+  abort: could not update sparseness due to pending changes\n+  [255]\n   $ hg st\n+  M show\n   A add/foo\n   ? add/bar\n-  $ hg debugsparse\n-  [include]\n-  add\n-  empty\n+  ? dir1/dir2/file\n+  ? dir1/notshown\n+  ? hide.orig\n+  ? show2\n+  $ hg debugsparse\n   \n   $ hg add -s add/*\n-  add/foo already tracked!\n+  pending changes to \'show\'\n+  abort: could not update sparseness due to pending changes\n+  [255]\n   $ hg st\n-  A add/bar\n+  M show\n   A add/foo\n-  $ hg debugsparse\n-  [include]\n-  add\n-  empty\n+  ? add/bar\n+  ? dir1/dir2/file\n+  ? dir1/notshown\n+  ? hide.orig\n+  ? show2\n+  $ hg debugsparse\n   \n \n   $ cd ..\n', 2480, 2482, 'truncated \\uXXXX escape') decoding diff, sorry

test-split.t#obsstore-off

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-split.t\n+++ c:/hgdev/src/tests/test-split.t#obsstore-off.err\n@@ -50,8 +50,52 @@\n \n   $ hg commit -m empty --config ui.allowemptycommit=1\n   $ hg split\n-  abort: cannot split an empty revision\n-  [10]\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, split\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\split.py", line 122, in split\n+      dorebase(ui, repo, torebase, top)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ rm -rf .hg\n   $ hg init\n@@ -59,37 +103,99 @@\n Cannot split working directory\n \n   $ hg split -r \'wdir()\'\n-  abort: cannot split working directory\n-  [10]\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, split\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\split.py", line 122, in split\n+      dorebase(ui, repo, torebase, top)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Generate some content.  The sed filter drop CR on Windows, which is dropped in\n the a > b line.\n \n   $ $TESTDIR/seq.py 1 5 | sed \'s/\\r$//\' >> a\n+  /usr/bin/env: python3: $ENOENT$\n   $ hg ci -m a1 -A a -q\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark -i r1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ sed \'s/1/11/;s/3/33/;s/5/55/\' a > b\n   $ mv b a\n   $ hg ci -m a2 -q\n+  [1]\n   $ hg bookmark -i r2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Cannot split a public changeset\n \n   $ hg phase --public -r \'all()\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg split .\n-  abort: cannot split public changesets\n-  (see \'hg help phases\' for details)\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg phase --draft -f -r \'all()\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Cannot split while working directory is dirty\n \n   $ touch dirty\n   $ hg add dirty\n   $ hg split .\n-  abort: uncommitted changes\n-  [20]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg forget dirty\n   $ rm dirty\n \n@@ -100,10 +206,14 @@\n Split a head\n \n   $ hg bookmark r3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg split \'all()\'\n-  abort: cannot split multiple revisions\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n This function splits a bit strangely primarily to avoid changing the behavior of\n the test after a bug was fixed with how split/commit --interactive handled\n@@ -133,125 +243,18 @@\n   > }\n \n   $ HGEDITOR=false runsplit\n-  diff --git a/a b/a\n-  3 hunks, 3 lines changed\n-  examine changes to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,1 +1,1 @@\n-  -1\n-  +11\n-  record change 1/3 to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] n\n-  \n-  @@ -3,1 +3,1 @@ 2\n-  -3\n-  +33\n-  record change 2/3 to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] n\n-  \n-  @@ -5,1 +5,1 @@ 4\n-  -5\n-  +55\n-  record change 3/3 to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  transaction abort!\n-  rollback completed\n-  abort: edit failed: false exited with status 1\n-  [250]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n+  ? a\n \n   $ HGEDITOR="\\"$PYTHON\\" $TESTTMP/editor.py"\n   $ runsplit\n-  diff --git a/a b/a\n-  3 hunks, 3 lines changed\n-  examine changes to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,1 +1,1 @@\n-  -1\n-  +11\n-  record change 1/3 to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] n\n-  \n-  @@ -3,1 +3,1 @@ 2\n-  -3\n-  +33\n-  record change 2/3 to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] n\n-  \n-  @@ -5,1 +5,1 @@ 4\n-  -5\n-  +55\n-  record change 3/3 to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  EDITOR: HG: Splitting 1df0d5c5a3ab. Write commit message for the first split changeset.\n-  EDITOR: a2\n-  EDITOR: \n-  EDITOR: \n-  EDITOR: HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  EDITOR: HG: Leave message empty to abort commit.\n-  EDITOR: HG: --\n-  EDITOR: HG: user: test\n-  EDITOR: HG: branch \'default\'\n-  EDITOR: HG: changed a\n-  created new head\n-  diff --git a/a b/a\n-  2 hunks, 2 lines changed\n-  examine changes to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,1 +1,1 @@\n-  -1\n-  +11\n-  record change 1/2 to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] n\n-  \n-  @@ -3,1 +3,1 @@ 2\n-  -3\n-  +33\n-  record change 2/2 to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  EDITOR: HG: Splitting 1df0d5c5a3ab. So far it has been split into:\n-  EDITOR: HG: - 2:e704349bd21b tip "split 1"\n-  EDITOR: HG: Write commit message for the next split changeset.\n-  EDITOR: a2\n-  EDITOR: \n-  EDITOR: \n-  EDITOR: HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  EDITOR: HG: Leave message empty to abort commit.\n-  EDITOR: HG: --\n-  EDITOR: HG: user: test\n-  EDITOR: HG: branch \'default\'\n-  EDITOR: HG: changed a\n-  diff --git a/a b/a\n-  1 hunks, 1 lines changed\n-  examine changes to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,1 +1,1 @@\n-  -1\n-  +11\n-  record this change to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  EDITOR: HG: Splitting 1df0d5c5a3ab. So far it has been split into:\n-  EDITOR: HG: - 2:e704349bd21b tip "split 1"\n-  EDITOR: HG: - 3:a09ad58faae3 "split 2"\n-  EDITOR: HG: Write commit message for the next split changeset.\n-  EDITOR: a2\n-  EDITOR: \n-  EDITOR: \n-  EDITOR: HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  EDITOR: HG: Leave message empty to abort commit.\n-  EDITOR: HG: --\n-  EDITOR: HG: user: test\n-  EDITOR: HG: branch \'default\'\n-  EDITOR: HG: changed a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   saved backup bundle to $TESTTMP/a/.hg/strip-backup/1df0d5c5a3ab-8341b760-split.hg (obsstore-off !)\n+  [255]\n \n #if obsstore-off\n   $ hg bookmark\n@@ -297,18 +300,8 @@\n   \n #else\n   $ hg bookmark\n-     r1                        0:a61bcde8c529\n-     r2                        4:00eebaf8d2e2\n-   * r3                        4:00eebaf8d2e2\n+  no bookmarks set\n   $ hg glog\n-  @  4:00eebaf8d2e2 split 3 r2 r3\n-  |\n-  o  3:a09ad58faae3 split 2\n-  |\n-  o  2:e704349bd21b split 1\n-  |\n-  o  0:a61bcde8c529 a1 r1\n-  \n #endif\n \n Split a head while working parent is not that head\n@@ -318,8 +311,14 @@\n \n   $ hg up 0 -q\n   $ hg bookmark r3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ runsplit tip >/dev/null\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n #if obsstore-off\n   $ hg bookmark\n@@ -337,18 +336,8 @@\n   \n #else\n   $ hg bookmark\n-     r1                        0:a61bcde8c529\n-     r2                        4:00eebaf8d2e2\n-   * r3                        0:a61bcde8c529\n+  no bookmarks set\n   $ hg glog\n-  o  4:00eebaf8d2e2 split 3 r2\n-  |\n-  o  3:a09ad58faae3 split 2\n-  |\n-  o  2:e704349bd21b split 1\n-  |\n-  @  0:a61bcde8c529 a1 r1 r3\n-  \n #endif\n \n Split a non-head\n@@ -357,20 +346,38 @@\n   $ cd $TESTTMP/c\n   $ echo d > d\n   $ hg ci -m d1 -A d\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark -i d1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo 2 >> d\n   $ hg ci -m d2\n+  nothing changed\n+  [1]\n   $ echo 3 >> d\n   $ hg ci -m d3\n+  nothing changed\n+  [1]\n   $ hg bookmark -i d3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up \'.^\' -q\n+  abort: empty revision set\n+  [255]\n   $ hg bookmark d2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cp -R . ../d\n \n   $ runsplit -r 1 | grep rebasing\n-  rebasing 2:b5c5ea414030 d1 "d1"\n-  rebasing 3:f4a0a8d004cc d2 "d2"\n-  rebasing 4:777940761eba d3 "d3"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [1]\n #if obsstore-off\n   $ hg bookmark\n      d1                        4:c4b449ef030e\n@@ -439,26 +446,8 @@\n   \n #else\n   $ hg bookmark\n-     d1                        8:c4b449ef030e\n-   * d2                        9:c9dd00ab36a3\n-     d3                        10:19f476bc865c\n-     r1                        0:a61bcde8c529\n-     r2                        7:00eebaf8d2e2\n+  no bookmarks set\n   $ hg glog\n-  o  10:19f476bc865c d3 d3\n-  |\n-  @  9:c9dd00ab36a3 d2 d2\n-  |\n-  o  8:c4b449ef030e d1 d1\n-  |\n-  o  7:00eebaf8d2e2 split 3 r2\n-  |\n-  o  6:a09ad58faae3 split 2\n-  |\n-  o  5:e704349bd21b split 1\n-  |\n-  o  0:a61bcde8c529 a1 r1\n-  \n #endif\n \n Split a non-head without rebase\n@@ -470,31 +459,13 @@\n   [10]\n #else\n   $ runsplit -r 1 --no-rebase >/dev/null\n-  3 new orphan changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark\n-     d1                        2:b5c5ea414030\n-   * d2                        3:f4a0a8d004cc\n-     d3                        4:777940761eba\n-     r1                        0:a61bcde8c529\n-     r2                        7:00eebaf8d2e2\n+  no bookmarks set\n \n   $ hg glog\n-  o  7:00eebaf8d2e2 split 3 r2\n-  |\n-  o  6:a09ad58faae3 split 2\n-  |\n-  o  5:e704349bd21b split 1\n-  |\n-  | *  4:777940761eba d3 d3\n-  | |\n-  | @  3:f4a0a8d004cc d2 d2\n-  | |\n-  | *  2:b5c5ea414030 d1 d1\n-  | |\n-  | x  1:1df0d5c5a3ab a2\n-  |/\n-  o  0:a61bcde8c529 a1 r1\n-  \n #endif\n \n Split a non-head with obsoleted descendants\n@@ -589,15 +560,15 @@\n   $ cp -R $TESTTMP/clean $TESTTMP/phases1\n   $ cd $TESTTMP/phases1\n   $ hg phase --secret -fr tip\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -T \'{short(node)} {phase}\\n\'\n-  1df0d5c5a3ab secret\n-  a61bcde8c529 draft\n   $ runsplit tip >/dev/null\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -T \'{short(node)} {phase}\\n\'\n-  00eebaf8d2e2 secret\n-  a09ad58faae3 secret\n-  e704349bd21b secret\n-  a61bcde8c529 draft\n \n Do not move things to secret even if phases.new-commit=secret\n \n@@ -608,14 +579,11 @@\n   > new-commit=secret\n   > EOF\n   $ hg log -T \'{short(node)} {phase}\\n\'\n-  1df0d5c5a3ab draft\n-  a61bcde8c529 draft\n   $ runsplit tip >/dev/null\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -T \'{short(node)} {phase}\\n\'\n-  00eebaf8d2e2 draft\n-  a09ad58faae3 draft\n-  e704349bd21b draft\n-  a61bcde8c529 draft\n \n `hg split` with ignoreblanklines=1 does not infinite loop\n \n@@ -673,6 +641,66 @@\n   EDITOR: HG: branch \'default\'\n   EDITOR: HG: changed foo\n   saved backup bundle to $TESTTMP/f/a/.hg/strip-backup/dd3c45017cbf-463441b5-split.hg (obsstore-off !)\n+  saved backup bundle to $TESTTMP/f/a/.hg/strip-backup/dd3c45017cbf-463441b5-split.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\f\\a\\.hg\\strip-backup/dd3c45017cbf-463441b5-split.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\f\\a\\.hg\\strip-backup/dd3c45017cbf-eaccd2c1-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\f\\a\\.hg\\strip-backup/dd3c45017cbf-eaccd2c1-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, split\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\split.py", line 122, in split\n+      dorebase(ui, repo, torebase, top)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Let\'s try that again, with a slightly different set of patches, to ensure that\n the ignoreblanklines thing isn\'t somehow position dependent.\n@@ -730,6 +758,66 @@\n   EDITOR: HG: branch \'default\'\n   EDITOR: HG: changed foo\n   saved backup bundle to $TESTTMP/f/b/.hg/strip-backup/904c80b40a4a-47fb907f-split.hg (obsstore-off !)\n+  saved backup bundle to $TESTTMP/f/b/.hg/strip-backup/904c80b40a4a-47fb907f-split.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\f\\b\\.hg\\strip-backup/904c80b40a4a-47fb907f-split.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\f\\b\\.hg\\strip-backup/904c80b40a4a-10bb67db-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\f\\b\\.hg\\strip-backup/904c80b40a4a-10bb67db-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, split\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\split.py", line 122, in split\n+      dorebase(ui, repo, torebase, top)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n \n Testing the case in split when commiting flag-only file changes (issue5864)\n@@ -786,8 +874,52 @@\n TODO: Fix this on Windows. See issue 2020 and 5883\n \n   $ printf \'y\\ny\\ny\\n\' | hg split\n-  abort: cannot split an empty revision\n-  [255]\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, split\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\split.py", line 122, in split\n+      dorebase(ui, repo, torebase, top)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n #endif\n \n Test that splitting moves works properly (issue5723)\n@@ -855,9 +987,70 @@\n   EDITOR: HG: branch \'default\'\n   EDITOR: HG: changed file2\n   saved backup bundle to $TESTTMP/issue5723-mv/.hg/strip-backup/8c42fa635116-a38044d4-split.hg (obsstore-off !)\n+  saved backup bundle to $TESTTMP/issue5723-mv/.hg/strip-backup/8c42fa635116-a38044d4-split.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\issue5723-mv\\.hg\\strip-backup/8c42fa635116-a38044d4-split.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\issue5723-mv\\.hg\\strip-backup/8c42fa635116-1e3e0ede-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\issue5723-mv\\.hg\\strip-backup/8c42fa635116-1e3e0ede-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, split\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\split.py", line 122, in split\n+      dorebase(ui, repo, torebase, top)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log -T \'{desc}: {files%"{file} "}\\n\'\n   split2, keeping the lettered lines: file2 \n   split1, keeping only the numbered lines: file file2 \n+  move and modify: file file2 \n   initial: file \n   $ cat file2\n   a\n@@ -953,9 +1146,70 @@\n   EDITOR: HG: branch \'default\'\n   EDITOR: HG: changed file2\n   saved backup bundle to $TESTTMP/issue5723-cp/.hg/strip-backup/41c861dfa61e-467e8d3c-split.hg (obsstore-off !)\n+  saved backup bundle to $TESTTMP/issue5723-cp/.hg/strip-backup/41c861dfa61e-467e8d3c-split.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\issue5723-cp\\.hg\\strip-backup/41c861dfa61e-467e8d3c-split.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\issue5723-cp\\.hg\\strip-backup/41c861dfa61e-402e6c2f-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\issue5723-cp\\.hg\\strip-backup/41c861dfa61e-402e6c2f-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, split\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\split.py", line 122, in split\n+      dorebase(ui, repo, torebase, top)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log -T \'{desc}: {files%"{file} "}\\n\'\n   split2, keeping the lettered lines in file2: file2 \n   split1, keeping "file" and only the numbered lines in file2: file file2 \n+  copy file->file2, modify both: file file2 \n   initial: file \n   $ cat file2\n   a\n@@ -1042,7 +1296,49 @@\n   EDITOR: HG: user: test\n   EDITOR: HG: branch \'default\'\n   EDITOR: HG: changed file2\n-  [ ui.warning|transaction abort!]\n-  [ ui.warning|rollback completed]\n-  [ ui.error|abort: empty commit message]\n-  [10]\n+  [ ui.warning|** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, split]\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\split.py", line 122, in split\n+      dorebase(ui, repo, torebase, top)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n', 2311, 2313, 'truncated \\uXXXX escape') decoding diff, sorry

test-split.t#obsstore-on

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-split.t\n+++ c:/hgdev/src/tests/test-split.t#obsstore-on.err\n@@ -50,8 +50,52 @@\n \n   $ hg commit -m empty --config ui.allowemptycommit=1\n   $ hg split\n-  abort: cannot split an empty revision\n-  [10]\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, split\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\split.py", line 122, in split\n+      dorebase(ui, repo, torebase, top)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ rm -rf .hg\n   $ hg init\n@@ -59,37 +103,99 @@\n Cannot split working directory\n \n   $ hg split -r \'wdir()\'\n-  abort: cannot split working directory\n-  [10]\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, split\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\split.py", line 122, in split\n+      dorebase(ui, repo, torebase, top)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Generate some content.  The sed filter drop CR on Windows, which is dropped in\n the a > b line.\n \n   $ $TESTDIR/seq.py 1 5 | sed \'s/\\r$//\' >> a\n+  /usr/bin/env: python3: $ENOENT$\n   $ hg ci -m a1 -A a -q\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark -i r1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ sed \'s/1/11/;s/3/33/;s/5/55/\' a > b\n   $ mv b a\n   $ hg ci -m a2 -q\n+  [1]\n   $ hg bookmark -i r2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Cannot split a public changeset\n \n   $ hg phase --public -r \'all()\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg split .\n-  abort: cannot split public changesets\n-  (see \'hg help phases\' for details)\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg phase --draft -f -r \'all()\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Cannot split while working directory is dirty\n \n   $ touch dirty\n   $ hg add dirty\n   $ hg split .\n-  abort: uncommitted changes\n-  [20]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg forget dirty\n   $ rm dirty\n \n@@ -100,10 +206,14 @@\n Split a head\n \n   $ hg bookmark r3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg split \'all()\'\n-  abort: cannot split multiple revisions\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n This function splits a bit strangely primarily to avoid changing the behavior of\n the test after a bug was fixed with how split/commit --interactive handled\n@@ -133,125 +243,18 @@\n   > }\n \n   $ HGEDITOR=false runsplit\n-  diff --git a/a b/a\n-  3 hunks, 3 lines changed\n-  examine changes to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,1 +1,1 @@\n-  -1\n-  +11\n-  record change 1/3 to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] n\n-  \n-  @@ -3,1 +3,1 @@ 2\n-  -3\n-  +33\n-  record change 2/3 to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] n\n-  \n-  @@ -5,1 +5,1 @@ 4\n-  -5\n-  +55\n-  record change 3/3 to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  transaction abort!\n-  rollback completed\n-  abort: edit failed: false exited with status 1\n-  [250]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n+  ? a\n \n   $ HGEDITOR="\\"$PYTHON\\" $TESTTMP/editor.py"\n   $ runsplit\n-  diff --git a/a b/a\n-  3 hunks, 3 lines changed\n-  examine changes to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,1 +1,1 @@\n-  -1\n-  +11\n-  record change 1/3 to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] n\n-  \n-  @@ -3,1 +3,1 @@ 2\n-  -3\n-  +33\n-  record change 2/3 to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] n\n-  \n-  @@ -5,1 +5,1 @@ 4\n-  -5\n-  +55\n-  record change 3/3 to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  EDITOR: HG: Splitting 1df0d5c5a3ab. Write commit message for the first split changeset.\n-  EDITOR: a2\n-  EDITOR: \n-  EDITOR: \n-  EDITOR: HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  EDITOR: HG: Leave message empty to abort commit.\n-  EDITOR: HG: --\n-  EDITOR: HG: user: test\n-  EDITOR: HG: branch \'default\'\n-  EDITOR: HG: changed a\n-  created new head\n-  diff --git a/a b/a\n-  2 hunks, 2 lines changed\n-  examine changes to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,1 +1,1 @@\n-  -1\n-  +11\n-  record change 1/2 to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] n\n-  \n-  @@ -3,1 +3,1 @@ 2\n-  -3\n-  +33\n-  record change 2/2 to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  EDITOR: HG: Splitting 1df0d5c5a3ab. So far it has been split into:\n-  EDITOR: HG: - 2:e704349bd21b tip "split 1"\n-  EDITOR: HG: Write commit message for the next split changeset.\n-  EDITOR: a2\n-  EDITOR: \n-  EDITOR: \n-  EDITOR: HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  EDITOR: HG: Leave message empty to abort commit.\n-  EDITOR: HG: --\n-  EDITOR: HG: user: test\n-  EDITOR: HG: branch \'default\'\n-  EDITOR: HG: changed a\n-  diff --git a/a b/a\n-  1 hunks, 1 lines changed\n-  examine changes to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  @@ -1,1 +1,1 @@\n-  -1\n-  +11\n-  record this change to \'a\'?\n-  (enter ? for help) [Ynesfdaq?] y\n-  \n-  EDITOR: HG: Splitting 1df0d5c5a3ab. So far it has been split into:\n-  EDITOR: HG: - 2:e704349bd21b tip "split 1"\n-  EDITOR: HG: - 3:a09ad58faae3 "split 2"\n-  EDITOR: HG: Write commit message for the next split changeset.\n-  EDITOR: a2\n-  EDITOR: \n-  EDITOR: \n-  EDITOR: HG: Enter commit message.  Lines beginning with \'HG:\' are removed.\n-  EDITOR: HG: Leave message empty to abort commit.\n-  EDITOR: HG: --\n-  EDITOR: HG: user: test\n-  EDITOR: HG: branch \'default\'\n-  EDITOR: HG: changed a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   saved backup bundle to $TESTTMP/a/.hg/strip-backup/1df0d5c5a3ab-8341b760-split.hg (obsstore-off !)\n+  [255]\n \n #if obsstore-off\n   $ hg bookmark\n@@ -297,18 +300,8 @@\n   \n #else\n   $ hg bookmark\n-     r1                        0:a61bcde8c529\n-     r2                        4:00eebaf8d2e2\n-   * r3                        4:00eebaf8d2e2\n+  no bookmarks set\n   $ hg glog\n-  @  4:00eebaf8d2e2 split 3 r2 r3\n-  |\n-  o  3:a09ad58faae3 split 2\n-  |\n-  o  2:e704349bd21b split 1\n-  |\n-  o  0:a61bcde8c529 a1 r1\n-  \n #endif\n \n Split a head while working parent is not that head\n@@ -318,8 +311,14 @@\n \n   $ hg up 0 -q\n   $ hg bookmark r3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ runsplit tip >/dev/null\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n #if obsstore-off\n   $ hg bookmark\n@@ -337,18 +336,8 @@\n   \n #else\n   $ hg bookmark\n-     r1                        0:a61bcde8c529\n-     r2                        4:00eebaf8d2e2\n-   * r3                        0:a61bcde8c529\n+  no bookmarks set\n   $ hg glog\n-  o  4:00eebaf8d2e2 split 3 r2\n-  |\n-  o  3:a09ad58faae3 split 2\n-  |\n-  o  2:e704349bd21b split 1\n-  |\n-  @  0:a61bcde8c529 a1 r1 r3\n-  \n #endif\n \n Split a non-head\n@@ -357,20 +346,38 @@\n   $ cd $TESTTMP/c\n   $ echo d > d\n   $ hg ci -m d1 -A d\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark -i d1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo 2 >> d\n   $ hg ci -m d2\n+  nothing changed\n+  [1]\n   $ echo 3 >> d\n   $ hg ci -m d3\n+  nothing changed\n+  [1]\n   $ hg bookmark -i d3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up \'.^\' -q\n+  abort: empty revision set\n+  [255]\n   $ hg bookmark d2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cp -R . ../d\n \n   $ runsplit -r 1 | grep rebasing\n-  rebasing 2:b5c5ea414030 d1 "d1"\n-  rebasing 3:f4a0a8d004cc d2 "d2"\n-  rebasing 4:777940761eba d3 "d3"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [1]\n #if obsstore-off\n   $ hg bookmark\n      d1                        4:c4b449ef030e\n@@ -439,26 +446,8 @@\n   \n #else\n   $ hg bookmark\n-     d1                        8:c4b449ef030e\n-   * d2                        9:c9dd00ab36a3\n-     d3                        10:19f476bc865c\n-     r1                        0:a61bcde8c529\n-     r2                        7:00eebaf8d2e2\n+  no bookmarks set\n   $ hg glog\n-  o  10:19f476bc865c d3 d3\n-  |\n-  @  9:c9dd00ab36a3 d2 d2\n-  |\n-  o  8:c4b449ef030e d1 d1\n-  |\n-  o  7:00eebaf8d2e2 split 3 r2\n-  |\n-  o  6:a09ad58faae3 split 2\n-  |\n-  o  5:e704349bd21b split 1\n-  |\n-  o  0:a61bcde8c529 a1 r1\n-  \n #endif\n \n Split a non-head without rebase\n@@ -470,31 +459,13 @@\n   [10]\n #else\n   $ runsplit -r 1 --no-rebase >/dev/null\n-  3 new orphan changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg bookmark\n-     d1                        2:b5c5ea414030\n-   * d2                        3:f4a0a8d004cc\n-     d3                        4:777940761eba\n-     r1                        0:a61bcde8c529\n-     r2                        7:00eebaf8d2e2\n+  no bookmarks set\n \n   $ hg glog\n-  o  7:00eebaf8d2e2 split 3 r2\n-  |\n-  o  6:a09ad58faae3 split 2\n-  |\n-  o  5:e704349bd21b split 1\n-  |\n-  | *  4:777940761eba d3 d3\n-  | |\n-  | @  3:f4a0a8d004cc d2 d2\n-  | |\n-  | *  2:b5c5ea414030 d1 d1\n-  | |\n-  | x  1:1df0d5c5a3ab a2\n-  |/\n-  o  0:a61bcde8c529 a1 r1\n-  \n #endif\n \n Split a non-head with obsoleted descendants\n@@ -589,15 +560,15 @@\n   $ cp -R $TESTTMP/clean $TESTTMP/phases1\n   $ cd $TESTTMP/phases1\n   $ hg phase --secret -fr tip\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -T \'{short(node)} {phase}\\n\'\n-  1df0d5c5a3ab secret\n-  a61bcde8c529 draft\n   $ runsplit tip >/dev/null\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -T \'{short(node)} {phase}\\n\'\n-  00eebaf8d2e2 secret\n-  a09ad58faae3 secret\n-  e704349bd21b secret\n-  a61bcde8c529 draft\n \n Do not move things to secret even if phases.new-commit=secret\n \n@@ -608,14 +579,11 @@\n   > new-commit=secret\n   > EOF\n   $ hg log -T \'{short(node)} {phase}\\n\'\n-  1df0d5c5a3ab draft\n-  a61bcde8c529 draft\n   $ runsplit tip >/dev/null\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -T \'{short(node)} {phase}\\n\'\n-  00eebaf8d2e2 draft\n-  a09ad58faae3 draft\n-  e704349bd21b draft\n-  a61bcde8c529 draft\n \n `hg split` with ignoreblanklines=1 does not infinite loop\n \n@@ -673,6 +641,66 @@\n   EDITOR: HG: branch \'default\'\n   EDITOR: HG: changed foo\n   saved backup bundle to $TESTTMP/f/a/.hg/strip-backup/dd3c45017cbf-463441b5-split.hg (obsstore-off !)\n+  saved backup bundle to $TESTTMP/f/a/.hg/strip-backup/dd3c45017cbf-463441b5-split.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\f\\a\\.hg\\strip-backup/dd3c45017cbf-463441b5-split.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\f\\a\\.hg\\strip-backup/dd3c45017cbf-eaccd2c1-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\f\\a\\.hg\\strip-backup/dd3c45017cbf-eaccd2c1-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, split\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\split.py", line 122, in split\n+      dorebase(ui, repo, torebase, top)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Let\'s try that again, with a slightly different set of patches, to ensure that\n the ignoreblanklines thing isn\'t somehow position dependent.\n@@ -730,6 +758,66 @@\n   EDITOR: HG: branch \'default\'\n   EDITOR: HG: changed foo\n   saved backup bundle to $TESTTMP/f/b/.hg/strip-backup/904c80b40a4a-47fb907f-split.hg (obsstore-off !)\n+  saved backup bundle to $TESTTMP/f/b/.hg/strip-backup/904c80b40a4a-47fb907f-split.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\f\\b\\.hg\\strip-backup/904c80b40a4a-47fb907f-split.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\f\\b\\.hg\\strip-backup/904c80b40a4a-10bb67db-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\f\\b\\.hg\\strip-backup/904c80b40a4a-10bb67db-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, split\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\split.py", line 122, in split\n+      dorebase(ui, repo, torebase, top)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n \n Testing the case in split when commiting flag-only file changes (issue5864)\n@@ -786,8 +874,52 @@\n TODO: Fix this on Windows. See issue 2020 and 5883\n \n   $ printf \'y\\ny\\ny\\n\' | hg split\n-  abort: cannot split an empty revision\n-  [255]\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, split\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\split.py", line 122, in split\n+      dorebase(ui, repo, torebase, top)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n #endif\n \n Test that splitting moves works properly (issue5723)\n@@ -855,9 +987,70 @@\n   EDITOR: HG: branch \'default\'\n   EDITOR: HG: changed file2\n   saved backup bundle to $TESTTMP/issue5723-mv/.hg/strip-backup/8c42fa635116-a38044d4-split.hg (obsstore-off !)\n+  saved backup bundle to $TESTTMP/issue5723-mv/.hg/strip-backup/8c42fa635116-a38044d4-split.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\issue5723-mv\\.hg\\strip-backup/8c42fa635116-a38044d4-split.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\issue5723-mv\\.hg\\strip-backup/8c42fa635116-1e3e0ede-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\issue5723-mv\\.hg\\strip-backup/8c42fa635116-1e3e0ede-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, split\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\split.py", line 122, in split\n+      dorebase(ui, repo, torebase, top)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log -T \'{desc}: {files%"{file} "}\\n\'\n   split2, keeping the lettered lines: file2 \n   split1, keeping only the numbered lines: file file2 \n+  move and modify: file file2 \n   initial: file \n   $ cat file2\n   a\n@@ -953,9 +1146,70 @@\n   EDITOR: HG: branch \'default\'\n   EDITOR: HG: changed file2\n   saved backup bundle to $TESTTMP/issue5723-cp/.hg/strip-backup/41c861dfa61e-467e8d3c-split.hg (obsstore-off !)\n+  saved backup bundle to $TESTTMP/issue5723-cp/.hg/strip-backup/41c861dfa61e-467e8d3c-split.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\issue5723-cp\\.hg\\strip-backup/41c861dfa61e-467e8d3c-split.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\issue5723-cp\\.hg\\strip-backup/41c861dfa61e-402e6c2f-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\issue5723-cp\\.hg\\strip-backup/41c861dfa61e-402e6c2f-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, split\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\split.py", line 122, in split\n+      dorebase(ui, repo, torebase, top)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log -T \'{desc}: {files%"{file} "}\\n\'\n   split2, keeping the lettered lines in file2: file2 \n   split1, keeping "file" and only the numbered lines in file2: file file2 \n+  copy file->file2, modify both: file file2 \n   initial: file \n   $ cat file2\n   a\n@@ -1042,7 +1296,49 @@\n   EDITOR: HG: user: test\n   EDITOR: HG: branch \'default\'\n   EDITOR: HG: changed file2\n-  [ ui.warning|transaction abort!]\n-  [ ui.warning|rollback completed]\n-  [ ui.error|abort: empty commit message]\n-  [10]\n+  [ ui.warning|** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, split]\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\split.py", line 122, in split\n+      dorebase(ui, repo, torebase, top)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n', 2310, 2312, 'truncated \\uXXXX escape') decoding diff, sorry

test-ssh-bundle1.t#sshv1

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-ssh-bundle1.t\n+++ c:/hgdev/src/tests/test-ssh-bundle1.t#sshv1.err\n@@ -210,6 +210,8 @@\n   remote: adding manifests\n   remote: adding file changes\n   remote: added 1 changesets with 1 changes to 1 files\n+  remote: /usr/bin/env: python3: $ENOENT$\n+  remote: warning: changegroup hook exited with status 127\n   $ cd $TESTTMP/remote\n \n check remote tip\n@@ -301,6 +303,8 @@\n   remote: adding manifests\n   remote: adding file changes\n   remote: added 1 changesets with 1 changes to 1 files\n+  remote: /usr/bin/env: python3: $ENOENT$\n+  remote: warning: changegroup hook exited with status 127\n   remote: KABOOM\n   $ hg -R ../remote heads\n   changeset:   5:1383141674ec\n@@ -471,6 +475,8 @@\n   remote: adding manifests\n   remote: adding file changes\n   remote: added 1 changesets with 1 changes to 1 files\n+  remote: /usr/bin/env: python3: $ENOENT$\n+  remote: warning: changegroup hook exited with status 127\n   remote: KABOOM\n   local stdout\n \n@@ -484,8 +490,10 @@\n   sending between command\n   remote: 463 (sshv1 !)\n   protocol upgraded to exp-ssh-v2-0003 (sshv2 !)\n+  remote: 463\n+  remote: 1 (sshv1 !)\n   remote: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n-  remote: 1 (sshv1 !)\n+  remote: 1\n   sending protocaps command\n   preparing listkeys for "bookmarks"\n   sending listkeys command\n@@ -509,40 +517,21 @@\n   Got arguments 1:user@dummy 2:hg -R local-stream serve --stdio (no-reposimplestore !)\n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio (no-reposimplestore !)\n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio (no-reposimplestore !)\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n   Got arguments 1:user@dummy 2:hg -R doesnotexist serve --stdio\n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n   Got arguments 1:user@dummy 2:hg -R local serve --stdio\n   Got arguments 1:user@dummy 2:hg -R $TESTTMP/local serve --stdio\n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  changegroup-in-remote hook: HG_HOOKNAME=changegroup\n-  HG_HOOKTYPE=changegroup\n-  HG_NODE=a28a9d1a809cab7d4e2fde4bee738a9ede948b60\n-  HG_NODE_LAST=a28a9d1a809cab7d4e2fde4bee738a9ede948b60\n-  HG_SOURCE=serve\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=serve\n-  remote:ssh:$LOCALIP\n-  HG_URL=remote:ssh:$LOCALIP\n-  \n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  changegroup-in-remote hook: HG_HOOKNAME=changegroup\n-  HG_HOOKTYPE=changegroup\n-  HG_NODE=1383141674ec756a6056f6a9097618482fe0f4a6\n-  HG_NODE_LAST=1383141674ec756a6056f6a9097618482fe0f4a6\n-  HG_SOURCE=serve\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=serve\n-  remote:ssh:$LOCALIP\n-  HG_URL=remote:ssh:$LOCALIP\n-  \n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n   Got arguments 1:user@dummy 2:hg init \'a repo\'\n   Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n@@ -550,16 +539,6 @@\n   Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n   Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  changegroup-in-remote hook: HG_HOOKNAME=changegroup\n-  HG_HOOKTYPE=changegroup\n-  HG_NODE=65c38f4125f9602c8db4af56530cc221d93b8ef8\n-  HG_NODE_LAST=65c38f4125f9602c8db4af56530cc221d93b8ef8\n-  HG_SOURCE=serve\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=serve\n-  remote:ssh:$LOCALIP\n-  HG_URL=remote:ssh:$LOCALIP\n-  \n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n \n remote hook failure is attributed to remote\n@@ -584,15 +563,71 @@\n   remote: adding manifests\n   remote: adding file changes\n   remote: hook failure!\n-  remote: transaction abort!\n-  remote: rollback completed\n-  remote: abort: pretxnchangegroup.fail hook failed\n-  [1]\n+  remote: ** unknown exception encountered, please report by visiting\n+  remote: ** https://mercurial-scm.org/wiki/BugTracker\n+  remote: ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  remote: ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  remote: ** Extensions loaded: \n+  remote: Traceback (most recent call last):\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+  remote:     dispatch.run()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+  remote:     status = dispatch(req)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+  remote:     ret = _runcatch(req) or 0\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+  remote:     return _callcatch(ui, _runcatchfunc)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+  remote:     return scmutil.callcatch(ui, func)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+  remote:     return func()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+  remote:     return _dispatch(req)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+  remote:     lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+  remote:     ret = _runcommand(ui, options, cmd, d)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+  remote:     return cmdfunc()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+  remote:     d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+  remote:     return func(*args, **kwargs)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6403, in serve\n+  remote:     s.serve_forever()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 851, in serve_forever\n+  remote:     self.serveuntil(threading.Event())\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 856, in serveuntil\n+  remote:     _runsshserver(self._ui, self._repo, self._fin, self._fout, ev)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 699, in _runsshserver\n+  remote:     rsp = wireprotov1server.dispatch(repo, proto, request)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotov1server.py", line 83, in dispatch\n+  remote:     return func(repo, proto, *args)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotov1server.py", line 665, in unbundle\n+  remote:     repo, gen, their_heads, b\'serve\', proto.client()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 2591, in unbundle\n+  remote:     r = bundle2.combinechangegroupresults(op)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+  remote:     self.release()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+  remote:     self._abort()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+  remote:     entries = self.readjournal()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+  remote:     return func(self, *args, **kwds)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+  remote:     for l in self._file:\n+  remote: TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  abort: unexpected response: empty string\n+  [255]\n \n abort during pull is properly reported as such\n \n   $ echo morefoo >> ../remote/foo\n   $ hg -R ../remote commit --message "more foo to be pulled"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat >> ../remote/.hg/hgrc << EOF\n   > [extensions]\n   > crash = ${TESTDIR}/crashgetbundler.py\n@@ -600,9 +635,4 @@\n   $ hg --config ui.ssh="\\"$PYTHON\\" $TESTDIR/dummyssh" pull\n   pulling from ssh://user@dummy/remote\n   searching for changes\n-  adding changesets\n-  remote: abort: this is an exercise\n-  transaction abort!\n-  rollback completed\n-  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n-  [255]\n+  no changes found\n', 6925, 6927, 'truncated \\uXXXX escape') decoding diff, sorry

test-ssh-bundle1.t#sshv2

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-ssh-bundle1.t\n+++ c:/hgdev/src/tests/test-ssh-bundle1.t#sshv2.err\n@@ -210,6 +210,8 @@\n   remote: adding manifests\n   remote: adding file changes\n   remote: added 1 changesets with 1 changes to 1 files\n+  remote: /usr/bin/env: python3: $ENOENT$\n+  remote: warning: changegroup hook exited with status 127\n   $ cd $TESTTMP/remote\n \n check remote tip\n@@ -301,6 +303,8 @@\n   remote: adding manifests\n   remote: adding file changes\n   remote: added 1 changesets with 1 changes to 1 files\n+  remote: /usr/bin/env: python3: $ENOENT$\n+  remote: warning: changegroup hook exited with status 127\n   remote: KABOOM\n   $ hg -R ../remote heads\n   changeset:   5:1383141674ec\n@@ -471,6 +475,8 @@\n   remote: adding manifests\n   remote: adding file changes\n   remote: added 1 changesets with 1 changes to 1 files\n+  remote: /usr/bin/env: python3: $ENOENT$\n+  remote: warning: changegroup hook exited with status 127\n   remote: KABOOM\n   local stdout\n \n@@ -484,8 +490,10 @@\n   sending between command\n   remote: 463 (sshv1 !)\n   protocol upgraded to exp-ssh-v2-0003 (sshv2 !)\n+  remote: 463\n+  remote: 1 (sshv1 !)\n   remote: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n-  remote: 1 (sshv1 !)\n+  remote: 1\n   sending protocaps command\n   preparing listkeys for "bookmarks"\n   sending listkeys command\n@@ -509,40 +517,21 @@\n   Got arguments 1:user@dummy 2:hg -R local-stream serve --stdio (no-reposimplestore !)\n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio (no-reposimplestore !)\n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio (no-reposimplestore !)\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n   Got arguments 1:user@dummy 2:hg -R doesnotexist serve --stdio\n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n   Got arguments 1:user@dummy 2:hg -R local serve --stdio\n   Got arguments 1:user@dummy 2:hg -R $TESTTMP/local serve --stdio\n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  changegroup-in-remote hook: HG_HOOKNAME=changegroup\n-  HG_HOOKTYPE=changegroup\n-  HG_NODE=a28a9d1a809cab7d4e2fde4bee738a9ede948b60\n-  HG_NODE_LAST=a28a9d1a809cab7d4e2fde4bee738a9ede948b60\n-  HG_SOURCE=serve\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=serve\n-  remote:ssh:$LOCALIP\n-  HG_URL=remote:ssh:$LOCALIP\n-  \n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  changegroup-in-remote hook: HG_HOOKNAME=changegroup\n-  HG_HOOKTYPE=changegroup\n-  HG_NODE=1383141674ec756a6056f6a9097618482fe0f4a6\n-  HG_NODE_LAST=1383141674ec756a6056f6a9097618482fe0f4a6\n-  HG_SOURCE=serve\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=serve\n-  remote:ssh:$LOCALIP\n-  HG_URL=remote:ssh:$LOCALIP\n-  \n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n   Got arguments 1:user@dummy 2:hg init \'a repo\'\n   Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n@@ -550,16 +539,6 @@\n   Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n   Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  changegroup-in-remote hook: HG_HOOKNAME=changegroup\n-  HG_HOOKTYPE=changegroup\n-  HG_NODE=65c38f4125f9602c8db4af56530cc221d93b8ef8\n-  HG_NODE_LAST=65c38f4125f9602c8db4af56530cc221d93b8ef8\n-  HG_SOURCE=serve\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=serve\n-  remote:ssh:$LOCALIP\n-  HG_URL=remote:ssh:$LOCALIP\n-  \n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n \n remote hook failure is attributed to remote\n@@ -584,15 +563,71 @@\n   remote: adding manifests\n   remote: adding file changes\n   remote: hook failure!\n-  remote: transaction abort!\n-  remote: rollback completed\n-  remote: abort: pretxnchangegroup.fail hook failed\n-  [1]\n+  remote: ** unknown exception encountered, please report by visiting\n+  remote: ** https://mercurial-scm.org/wiki/BugTracker\n+  remote: ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  remote: ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  remote: ** Extensions loaded: \n+  remote: Traceback (most recent call last):\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+  remote:     dispatch.run()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+  remote:     status = dispatch(req)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+  remote:     ret = _runcatch(req) or 0\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+  remote:     return _callcatch(ui, _runcatchfunc)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+  remote:     return scmutil.callcatch(ui, func)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+  remote:     return func()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+  remote:     return _dispatch(req)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+  remote:     lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+  remote:     ret = _runcommand(ui, options, cmd, d)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+  remote:     return cmdfunc()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+  remote:     d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+  remote:     return func(*args, **kwargs)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6403, in serve\n+  remote:     s.serve_forever()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 851, in serve_forever\n+  remote:     self.serveuntil(threading.Event())\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 856, in serveuntil\n+  remote:     _runsshserver(self._ui, self._repo, self._fin, self._fout, ev)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 699, in _runsshserver\n+  remote:     rsp = wireprotov1server.dispatch(repo, proto, request)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotov1server.py", line 83, in dispatch\n+  remote:     return func(repo, proto, *args)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotov1server.py", line 665, in unbundle\n+  remote:     repo, gen, their_heads, b\'serve\', proto.client()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 2591, in unbundle\n+  remote:     r = bundle2.combinechangegroupresults(op)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+  remote:     self.release()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+  remote:     self._abort()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+  remote:     entries = self.readjournal()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+  remote:     return func(self, *args, **kwds)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+  remote:     for l in self._file:\n+  remote: TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  abort: unexpected response: empty string\n+  [255]\n \n abort during pull is properly reported as such\n \n   $ echo morefoo >> ../remote/foo\n   $ hg -R ../remote commit --message "more foo to be pulled"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat >> ../remote/.hg/hgrc << EOF\n   > [extensions]\n   > crash = ${TESTDIR}/crashgetbundler.py\n@@ -600,9 +635,4 @@\n   $ hg --config ui.ssh="\\"$PYTHON\\" $TESTDIR/dummyssh" pull\n   pulling from ssh://user@dummy/remote\n   searching for changes\n-  adding changesets\n-  remote: abort: this is an exercise\n-  transaction abort!\n-  rollback completed\n-  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n-  [255]\n+  no changes found\n', 6925, 6927, 'truncated \\uXXXX escape') decoding diff, sorry

test-ssh-proto-unbundle.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-ssh-proto-unbundle.t\n+++ c:/hgdev/src/tests/test-ssh-proto-unbundle.t.err\n@@ -265,21 +265,67 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 151:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     ui.write 1 line\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook failed\\n\n+  o> readline() -> 0: \n+  remote: adding changesets\n+  remote: adding manifests\n+  remote: adding file changes\n+  remote: ui.write 1 line\n+  remote: ** unknown exception encountered, please report by visiting\n+  remote: ** https://mercurial-scm.org/wiki/BugTracker\n+  remote: ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  remote: ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  remote: ** Extensions loaded: \n+  remote: Traceback (most recent call last):\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+  remote:     dispatch.run()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+  remote:     status = dispatch(req)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+  remote:     ret = _runcatch(req) or 0\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+  remote:     return _callcatch(ui, _runcatchfunc)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+  remote:     return scmutil.callcatch(ui, func)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+  remote:     return func()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+  remote:     return _dispatch(req)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+  remote:     lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+  remote:     ret = _runcommand(ui, options, cmd, d)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+  remote:     return cmdfunc()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+  remote:     d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+  remote:     return func(*args, **kwargs)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\debugcommands.py", line 3385, in debugserve\n+  remote:     s.serve_forever()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 851, in serve_forever\n+  remote:     self.serveuntil(threading.Event())\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 856, in serveuntil\n+  remote:     _runsshserver(self._ui, self._repo, self._fin, self._fout, ev)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 699, in _runsshserver\n+  remote:     rsp = wireprotov1server.dispatch(repo, proto, request)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotov1server.py", line 83, in dispatch\n+  remote:     return func(repo, proto, *args)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotov1server.py", line 665, in unbundle\n+  remote:     repo, gen, their_heads, b\'serve\', proto.client()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 2591, in unbundle\n+  remote:     r = bundle2.combinechangegroupresults(op)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+  remote:     self.release()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+  remote:     self._abort()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+  remote:     entries = self.readjournal()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+  remote:     return func(self, *args, **kwds)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+  remote:     for l in self._file:\n+  remote: TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  abort: unexpected response: empty string\n   \n   testing ssh2\n   creating ssh peer from handshake results\n@@ -320,21 +366,10 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 151:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     ui.write 1 line\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook failed\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n \n And a variation that writes multiple lines using ui.write\n \n@@ -389,34 +424,22 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 173:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     ui.write 2 lines 1\\n\n-  e>     ui.write 2 lines 2\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook failed\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n   \n   testing ssh2\n   creating ssh peer from handshake results\n   i> write(171) -> 171:\n-  i>     upgrade * proto=exp-ssh-v2-0003\\n (glob)\n+  i>     upgrade 420412e2-4fc2-43a4-b8bc-1fb20951f249 proto=exp-ssh-v2-0003\\n\n   i>     hello\\n\n   i>     between\\n\n   i>     pairs 81\\n\n   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000\n   i> flush() -> None\n   o> readline() -> 62:\n-  o>     upgraded * exp-ssh-v2-0003\\n (glob)\n+  o>     upgraded 420412e2-4fc2-43a4-b8bc-1fb20951f249 exp-ssh-v2-0003\\n\n   o> readline() -> 4:\n   o>     462\\n\n   o> read(462) -> 462: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n@@ -445,22 +468,10 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 173:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     ui.write 2 lines 1\\n\n-  e>     ui.write 2 lines 2\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook failed\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n \n And a variation that does a ui.flush() after writing output\n \n@@ -515,33 +526,22 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 157:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     ui.write 1 line flush\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook failed\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n   \n   testing ssh2\n   creating ssh peer from handshake results\n   i> write(171) -> 171:\n-  i>     upgrade * proto=exp-ssh-v2-0003\\n (glob)\n+  i>     upgrade 091fefd6-b62c-455f-874e-c620c7db3f6d proto=exp-ssh-v2-0003\\n\n   i>     hello\\n\n   i>     between\\n\n   i>     pairs 81\\n\n   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000\n   i> flush() -> None\n   o> readline() -> 62:\n-  o>     upgraded * exp-ssh-v2-0003\\n (glob)\n+  o>     upgraded 091fefd6-b62c-455f-874e-c620c7db3f6d exp-ssh-v2-0003\\n\n   o> readline() -> 4:\n   o>     462\\n\n   o> read(462) -> 462: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n@@ -570,21 +570,10 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 157:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     ui.write 1 line flush\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook failed\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n \n Multiple writes + flush\n \n@@ -639,34 +628,22 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 161:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     ui.write 1st\\n\n-  e>     ui.write 2nd\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook failed\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n   \n   testing ssh2\n   creating ssh peer from handshake results\n   i> write(171) -> 171:\n-  i>     upgrade * proto=exp-ssh-v2-0003\\n (glob)\n+  i>     upgrade ebd7583e-b6de-4950-a6c8-cef34b652a5d proto=exp-ssh-v2-0003\\n\n   i>     hello\\n\n   i>     between\\n\n   i>     pairs 81\\n\n   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000\n   i> flush() -> None\n   o> readline() -> 62:\n-  o>     upgraded * exp-ssh-v2-0003\\n (glob)\n+  o>     upgraded ebd7583e-b6de-4950-a6c8-cef34b652a5d exp-ssh-v2-0003\\n\n   o> readline() -> 4:\n   o>     462\\n\n   o> read(462) -> 462: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n@@ -695,22 +672,10 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 161:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     ui.write 1st\\n\n-  e>     ui.write 2nd\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook failed\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n \n ui.write() + ui.write_err() output is captured\n \n@@ -765,36 +730,22 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 187:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     ui.write 1\\n\n-  e>     ui.write_err 1\\n\n-  e>     ui.write 2\\n\n-  e>     ui.write_err 2\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook failed\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n   \n   testing ssh2\n   creating ssh peer from handshake results\n   i> write(171) -> 171:\n-  i>     upgrade * proto=exp-ssh-v2-0003\\n (glob)\n+  i>     upgrade 4a7d24f5-5768-49ae-901d-70216073f8d8 proto=exp-ssh-v2-0003\\n\n   i>     hello\\n\n   i>     between\\n\n   i>     pairs 81\\n\n   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000\n   i> flush() -> None\n   o> readline() -> 62:\n-  o>     upgraded * exp-ssh-v2-0003\\n (glob)\n+  o>     upgraded 4a7d24f5-5768-49ae-901d-70216073f8d8 exp-ssh-v2-0003\\n\n   o> readline() -> 4:\n   o>     462\\n\n   o> read(462) -> 462: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n@@ -823,24 +774,10 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 187:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     ui.write 1\\n\n-  e>     ui.write_err 1\\n\n-  e>     ui.write 2\\n\n-  e>     ui.write_err 2\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook failed\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n \n print() output is captured\n \n@@ -895,33 +832,22 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 148:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     printed line\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook failed\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n   \n   testing ssh2\n   creating ssh peer from handshake results\n   i> write(171) -> 171:\n-  i>     upgrade * proto=exp-ssh-v2-0003\\n (glob)\n+  i>     upgrade 760b7f71-6303-4e70-ad45-5e248ba07ef2 proto=exp-ssh-v2-0003\\n\n   i>     hello\\n\n   i>     between\\n\n   i>     pairs 81\\n\n   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000\n   i> flush() -> None\n   o> readline() -> 62:\n-  o>     upgraded * exp-ssh-v2-0003\\n (glob)\n+  o>     upgraded 760b7f71-6303-4e70-ad45-5e248ba07ef2 exp-ssh-v2-0003\\n\n   o> readline() -> 4:\n   o>     462\\n\n   o> read(462) -> 462: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n@@ -950,21 +876,10 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 148:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     printed line\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook failed\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n \n Mixed print() and ui.write() are both captured\n \n@@ -1019,36 +934,22 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 173:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     print 1\\n\n-  e>     ui.write 1\\n\n-  e>     print 2\\n\n-  e>     ui.write 2\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook failed\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n   \n   testing ssh2\n   creating ssh peer from handshake results\n   i> write(171) -> 171:\n-  i>     upgrade * proto=exp-ssh-v2-0003\\n (glob)\n+  i>     upgrade 1486bf7c-0df9-4881-9c7d-fb13adda05f9 proto=exp-ssh-v2-0003\\n\n   i>     hello\\n\n   i>     between\\n\n   i>     pairs 81\\n\n   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000\n   i> flush() -> None\n   o> readline() -> 62:\n-  o>     upgraded * exp-ssh-v2-0003\\n (glob)\n+  o>     upgraded 1486bf7c-0df9-4881-9c7d-fb13adda05f9 exp-ssh-v2-0003\\n\n   o> readline() -> 4:\n   o>     462\\n\n   o> read(462) -> 462: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n@@ -1077,24 +978,10 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 173:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     print 1\\n\n-  e>     ui.write 1\\n\n-  e>     print 2\\n\n-  e>     ui.write 2\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook failed\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n \n print() to stdout and stderr both get captured\n \n@@ -1149,36 +1036,22 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 171:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     stdout 1\\n\n-  e>     stderr 1\\n\n-  e>     stdout 2\\n\n-  e>     stderr 2\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook failed\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n   \n   testing ssh2\n   creating ssh peer from handshake results\n   i> write(171) -> 171:\n-  i>     upgrade * proto=exp-ssh-v2-0003\\n (glob)\n+  i>     upgrade 19fbabfb-28b2-4b9a-a942-f39c91352088 proto=exp-ssh-v2-0003\\n\n   i>     hello\\n\n   i>     between\\n\n   i>     pairs 81\\n\n   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000\n   i> flush() -> None\n   o> readline() -> 62:\n-  o>     upgraded * exp-ssh-v2-0003\\n (glob)\n+  o>     upgraded 19fbabfb-28b2-4b9a-a942-f39c91352088 exp-ssh-v2-0003\\n\n   o> readline() -> 4:\n   o>     462\\n\n   o> read(462) -> 462: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n@@ -1207,24 +1080,10 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 171:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     stdout 1\\n\n-  e>     stderr 1\\n\n-  e>     stdout 2\\n\n-  e>     stderr 2\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook failed\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n \n Shell hook writing to stdout has output captured\n \n@@ -1285,34 +1144,22 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 167:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     stdout 1\\n\n-  e>     stdout 2\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook exited with status 1\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n   \n   testing ssh2\n   creating ssh peer from handshake results\n   i> write(171) -> 171:\n-  i>     upgrade * proto=exp-ssh-v2-0003\\n (glob)\n+  i>     upgrade 2b5d6457-53bc-41fb-a34e-1c34d3d022ef proto=exp-ssh-v2-0003\\n\n   i>     hello\\n\n   i>     between\\n\n   i>     pairs 81\\n\n   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000\n   i> flush() -> None\n   o> readline() -> 62:\n-  o>     upgraded * exp-ssh-v2-0003\\n (glob)\n+  o>     upgraded 2b5d6457-53bc-41fb-a34e-1c34d3d022ef exp-ssh-v2-0003\\n\n   o> readline() -> 4:\n   o>     462\\n\n   o> read(462) -> 462: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n@@ -1341,22 +1188,10 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 167:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     stdout 1\\n\n-  e>     stdout 2\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook exited with status 1\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n \n Shell hook writing to stderr has output captured\n \n@@ -1412,34 +1247,22 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 167:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     stderr 1\\n\n-  e>     stderr 2\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook exited with status 1\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n   \n   testing ssh2\n   creating ssh peer from handshake results\n   i> write(171) -> 171:\n-  i>     upgrade * proto=exp-ssh-v2-0003\\n (glob)\n+  i>     upgrade 9c754a0d-a4b0-4635-9999-0b12e65769bc proto=exp-ssh-v2-0003\\n\n   i>     hello\\n\n   i>     between\\n\n   i>     pairs 81\\n\n   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000\n   i> flush() -> None\n   o> readline() -> 62:\n-  o>     upgraded * exp-ssh-v2-0003\\n (glob)\n+  o>     upgraded 9c754a0d-a4b0-4635-9999-0b12e65769bc exp-ssh-v2-0003\\n\n   o> readline() -> 4:\n   o>     462\\n\n   o> read(462) -> 462: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n@@ -1468,22 +1291,10 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 167:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     stderr 1\\n\n-  e>     stderr 2\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook exited with status 1\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n \n Shell hook writing to stdout and stderr has output captured\n \n@@ -1541,36 +1352,22 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 185:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     stdout 1\\n\n-  e>     stderr 1\\n\n-  e>     stdout 2\\n\n-  e>     stderr 2\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook exited with status 1\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n   \n   testing ssh2\n   creating ssh peer from handshake results\n   i> write(171) -> 171:\n-  i>     upgrade * proto=exp-ssh-v2-0003\\n (glob)\n+  i>     upgrade 005a7fdc-4759-4a80-8bbe-15318226f735 proto=exp-ssh-v2-0003\\n\n   i>     hello\\n\n   i>     between\\n\n   i>     pairs 81\\n\n   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000\n   i> flush() -> None\n   o> readline() -> 62:\n-  o>     upgraded * exp-ssh-v2-0003\\n (glob)\n+  o>     upgraded 005a7fdc-4759-4a80-8bbe-15318226f735 exp-ssh-v2-0003\\n\n   o> readline() -> 4:\n   o>     462\\n\n   o> read(462) -> 462: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n@@ -1599,24 +1396,10 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 185:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     stdout 1\\n\n-  e>     stderr 1\\n\n-  e>     stdout 2\\n\n-  e>     stderr 2\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.fail hook exited with status 1\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n \n Shell and Python hooks writing to stdout and stderr have output captured\n \n@@ -1680,40 +1463,22 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 228:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     shell stdout 1\\n\n-  e>     shell stderr 1\\n\n-  e>     shell stdout 2\\n\n-  e>     shell stderr 2\\n\n-  e>     stdout 1\\n\n-  e>     stderr 1\\n\n-  e>     stdout 2\\n\n-  e>     stderr 2\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.b hook failed\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n   \n   testing ssh2\n   creating ssh peer from handshake results\n   i> write(171) -> 171:\n-  i>     upgrade * proto=exp-ssh-v2-0003\\n (glob)\n+  i>     upgrade 9cb8880b-3022-4e81-b47a-a6fc988cfda1 proto=exp-ssh-v2-0003\\n\n   i>     hello\\n\n   i>     between\\n\n   i>     pairs 81\\n\n   i>     0000000000000000000000000000000000000000-0000000000000000000000000000000000000000\n   i> flush() -> None\n   o> readline() -> 62:\n-  o>     upgraded * exp-ssh-v2-0003\\n (glob)\n+  o>     upgraded 9cb8880b-3022-4e81-b47a-a6fc988cfda1 exp-ssh-v2-0003\\n\n   o> readline() -> 4:\n   o>     462\\n\n   o> read(462) -> 462: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n@@ -1742,28 +1507,10 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 0\n-  result: 0\n-  remote output: \n-  e> read(-1) -> 228:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     shell stdout 1\\n\n-  e>     shell stderr 1\\n\n-  e>     shell stdout 2\\n\n-  e>     shell stderr 2\\n\n-  e>     stdout 1\\n\n-  e>     stderr 1\\n\n-  e>     stdout 2\\n\n-  e>     stderr 2\\n\n-  e>     transaction abort!\\n\n-  e>     rollback completed\\n\n-  e>     abort: pretxnchangegroup.b hook failed\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n \n   $ cd ..\n \n@@ -1830,6 +1577,53 @@\n   e>     adding manifests\\n\n   e>     adding file changes\\n\n   e>     added 1 changesets with 1 changes to 1 files\\n\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   \n   testing ssh2\n   creating ssh peer from handshake results\n@@ -1870,18 +1664,13 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 1\n-  result: 1\n-  remote output: \n-  e> read(-1) -> 100:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     added 1 changesets with 1 changes to 1 files\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ cd ..\n \n@@ -1964,6 +1753,53 @@\n   e>     ui.write 2\\n\n   e>     ui.write_err 2\\n\n   e>     added 1 changesets with 1 changes to 1 files\\n\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   \n   testing ssh2\n   creating ssh peer from handshake results\n@@ -2004,19 +1840,10 @@\n   i> write(2) -> 2:\n   i>     0\\n\n   i> flush() -> None\n-  o> readline() -> 2:\n-  o>     0\\n\n-  o> readline() -> 2:\n-  o>     1\\n\n-  o> read(1) -> 1: 1\n-  result: 1\n-  remote output: \n-  e> read(-1) -> 152:\n-  e>     adding changesets\\n\n-  e>     adding manifests\\n\n-  e>     adding file changes\\n\n-  e>     ui.write 1\\n\n-  e>     ui.write_err 1\\n\n-  e>     ui.write 2\\n\n-  e>     ui.write_err 2\\n\n-  e>     added 1 changesets with 1 changes to 1 files\\n\n+  o> readline() -> 0: \n+  remote: abort: abandoned transaction found\n+  remote: (run \'hg recover\' to clean up transaction)\n+  abort: unexpected response: empty string\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n', 2835, 2837, 'truncated \\uXXXX escape') decoding diff, sorry

test-ssh.t#sshv1

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-ssh.t\n+++ c:/hgdev/src/tests/test-ssh.t#sshv1.err\n@@ -198,6 +198,8 @@\n   remote: adding manifests\n   remote: adding file changes\n   remote: added 1 changesets with 1 changes to 1 files\n+  remote: /usr/bin/env: python3: $ENOENT$\n+  remote: warning: changegroup hook exited with status 127\n   $ cd $TESTTMP/remote\n \n check remote tip\n@@ -300,6 +302,8 @@\n   remote: adding manifests\n   remote: adding file changes\n   remote: added 1 changesets with 1 changes to 1 files\n+  remote: /usr/bin/env: python3: $ENOENT$\n+  remote: warning: changegroup hook exited with status 127\n   remote: KABOOM\n   remote: KABOOM IN PROCESS\n   $ hg -R ../remote heads\n@@ -503,6 +507,8 @@\n   remote: adding manifests\n   remote: adding file changes\n   remote: added 1 changesets with 1 changes to 1 files\n+  remote: /usr/bin/env: python3: $ENOENT$\n+  remote: warning: changegroup hook exited with status 127\n   remote: KABOOM\n   remote: KABOOM IN PROCESS\n   local stdout\n@@ -519,8 +525,10 @@\n   sending between command\n   remote: 463 (sshv1 !)\n   protocol upgraded to exp-ssh-v2-0003 (sshv2 !)\n+  remote: 463\n+  remote: 1 (sshv1 !)\n   remote: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n-  remote: 1 (sshv1 !)\n+  remote: 1\n   devel-peer-request: protocaps\n   devel-peer-request:   caps: * bytes (glob)\n   sending protocaps command\n@@ -563,40 +571,29 @@\n   Got arguments 1:user@dummy 2:hg -R local-stream serve --stdio (no-reposimplestore !)\n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio (no-reposimplestore !)\n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio (no-reposimplestore !)\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n   Got arguments 1:user@dummy 2:hg -R doesnotexist serve --stdio\n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n   Got arguments 1:user@dummy 2:hg -R local serve --stdio\n   Got arguments 1:user@dummy 2:hg -R $TESTTMP/local serve --stdio\n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  changegroup-in-remote hook: HG_BUNDLE2=1\n-  HG_HOOKNAME=changegroup\n-  HG_HOOKTYPE=changegroup\n-  HG_NODE=a28a9d1a809cab7d4e2fde4bee738a9ede948b60\n-  HG_NODE_LAST=a28a9d1a809cab7d4e2fde4bee738a9ede948b60\n-  HG_SOURCE=serve\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=serve\n-  HG_URL=remote:ssh:$LOCALIP\n-  \n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  changegroup-in-remote hook: HG_BUNDLE2=1\n-  HG_HOOKNAME=changegroup\n-  HG_HOOKTYPE=changegroup\n-  HG_NODE=1383141674ec756a6056f6a9097618482fe0f4a6\n-  HG_NODE_LAST=1383141674ec756a6056f6a9097618482fe0f4a6\n-  HG_SOURCE=serve\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=serve\n-  HG_URL=remote:ssh:$LOCALIP\n-  \n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg init \'a repo\'\n+  Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n   Got arguments 1:user@dummy 2:chg -R remote serve --stdio (chg !)\n   changegroup-in-remote hook: HG_BUNDLE2=1 (chg !)\n   HG_HOOKNAME=changegroup (chg !)\n@@ -608,24 +605,6 @@\n   HG_TXNNAME=serve (chg !)\n   HG_URL=remote:ssh:$LOCALIP (chg !)\n    (chg !)\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg init \'a repo\'\n-  Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  changegroup-in-remote hook: HG_BUNDLE2=1\n-  HG_HOOKNAME=changegroup\n-  HG_HOOKTYPE=changegroup\n-  HG_NODE=65c38f4125f9602c8db4af56530cc221d93b8ef8\n-  HG_NODE_LAST=65c38f4125f9602c8db4af56530cc221d93b8ef8\n-  HG_SOURCE=serve\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=serve\n-  HG_URL=remote:ssh:$LOCALIP\n-  \n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n \n \n remote hook failure is attributed to remote\n@@ -650,16 +629,71 @@\n   remote: adding manifests\n   remote: adding file changes\n   remote: hook failure!\n-  remote: transaction abort!\n-  remote: rollback completed\n-  remote: pretxnchangegroup.fail hook failed\n-  abort: push failed on remote\n+  remote: ** unknown exception encountered, please report by visiting\n+  remote: ** https://mercurial-scm.org/wiki/BugTracker\n+  remote: ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  remote: ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  remote: ** Extensions loaded: \n+  remote: Traceback (most recent call last):\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+  remote:     dispatch.run()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+  remote:     status = dispatch(req)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+  remote:     ret = _runcatch(req) or 0\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+  remote:     return _callcatch(ui, _runcatchfunc)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+  remote:     return scmutil.callcatch(ui, func)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+  remote:     return func()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+  remote:     return _dispatch(req)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+  remote:     lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+  remote:     ret = _runcommand(ui, options, cmd, d)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+  remote:     return cmdfunc()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+  remote:     d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+  remote:     return func(*args, **kwargs)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6403, in serve\n+  remote:     s.serve_forever()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 851, in serve_forever\n+  remote:     self.serveuntil(threading.Event())\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 856, in serveuntil\n+  remote:     _runsshserver(self._ui, self._repo, self._fin, self._fout, ev)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 699, in _runsshserver\n+  remote:     rsp = wireprotov1server.dispatch(repo, proto, request)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotov1server.py", line 83, in dispatch\n+  remote:     return func(repo, proto, *args)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotov1server.py", line 665, in unbundle\n+  remote:     repo, gen, their_heads, b\'serve\', proto.client()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 2645, in unbundle\n+  remote:     lockmod.release(lockandtr[2], lockandtr[1], lockandtr[0])\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+  remote:     lock.release()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+  remote:     self._abort()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+  remote:     entries = self.readjournal()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+  remote:     return func(self, *args, **kwds)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+  remote:     for l in self._file:\n+  remote: TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n   [255]\n \n abort during pull is properly reported as such\n \n   $ echo morefoo >> ../remote/foo\n   $ hg -R ../remote commit --message "more foo to be pulled"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat >> ../remote/.hg/hgrc << EOF\n   > [extensions]\n   > crash = ${TESTDIR}/crashgetbundler.py\n@@ -667,9 +701,7 @@\n   $ hg --config ui.ssh="\\"$PYTHON\\" $TESTDIR/dummyssh" pull\n   pulling from ssh://user@dummy/remote\n   searching for changes\n-  remote: abort: this is an exercise\n-  abort: pull failed on remote\n-  [255]\n+  no changes found\n \n abort with no error hint when there is a ssh problem when pulling\n \n', 7710, 7712, 'truncated \\uXXXX escape') decoding diff, sorry

test-ssh.t#sshv2

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-ssh.t\n+++ c:/hgdev/src/tests/test-ssh.t#sshv2.err\n@@ -198,6 +198,8 @@\n   remote: adding manifests\n   remote: adding file changes\n   remote: added 1 changesets with 1 changes to 1 files\n+  remote: /usr/bin/env: python3: $ENOENT$\n+  remote: warning: changegroup hook exited with status 127\n   $ cd $TESTTMP/remote\n \n check remote tip\n@@ -300,6 +302,8 @@\n   remote: adding manifests\n   remote: adding file changes\n   remote: added 1 changesets with 1 changes to 1 files\n+  remote: /usr/bin/env: python3: $ENOENT$\n+  remote: warning: changegroup hook exited with status 127\n   remote: KABOOM\n   remote: KABOOM IN PROCESS\n   $ hg -R ../remote heads\n@@ -503,6 +507,8 @@\n   remote: adding manifests\n   remote: adding file changes\n   remote: added 1 changesets with 1 changes to 1 files\n+  remote: /usr/bin/env: python3: $ENOENT$\n+  remote: warning: changegroup hook exited with status 127\n   remote: KABOOM\n   remote: KABOOM IN PROCESS\n   local stdout\n@@ -519,8 +525,10 @@\n   sending between command\n   remote: 463 (sshv1 !)\n   protocol upgraded to exp-ssh-v2-0003 (sshv2 !)\n+  remote: 463\n+  remote: 1 (sshv1 !)\n   remote: capabilities: batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset getbundle known lookup protocaps pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash\n-  remote: 1 (sshv1 !)\n+  remote: 1\n   devel-peer-request: protocaps\n   devel-peer-request:   caps: * bytes (glob)\n   sending protocaps command\n@@ -563,40 +571,29 @@\n   Got arguments 1:user@dummy 2:hg -R local-stream serve --stdio (no-reposimplestore !)\n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio (no-reposimplestore !)\n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio (no-reposimplestore !)\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n   Got arguments 1:user@dummy 2:hg -R doesnotexist serve --stdio\n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n   Got arguments 1:user@dummy 2:hg -R local serve --stdio\n   Got arguments 1:user@dummy 2:hg -R $TESTTMP/local serve --stdio\n   Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  changegroup-in-remote hook: HG_BUNDLE2=1\n-  HG_HOOKNAME=changegroup\n-  HG_HOOKTYPE=changegroup\n-  HG_NODE=a28a9d1a809cab7d4e2fde4bee738a9ede948b60\n-  HG_NODE_LAST=a28a9d1a809cab7d4e2fde4bee738a9ede948b60\n-  HG_SOURCE=serve\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=serve\n-  HG_URL=remote:ssh:$LOCALIP\n-  \n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  changegroup-in-remote hook: HG_BUNDLE2=1\n-  HG_HOOKNAME=changegroup\n-  HG_HOOKTYPE=changegroup\n-  HG_NODE=1383141674ec756a6056f6a9097618482fe0f4a6\n-  HG_NODE_LAST=1383141674ec756a6056f6a9097618482fe0f4a6\n-  HG_SOURCE=serve\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=serve\n-  HG_URL=remote:ssh:$LOCALIP\n-  \n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg init \'a repo\'\n+  Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n+  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n   Got arguments 1:user@dummy 2:chg -R remote serve --stdio (chg !)\n   changegroup-in-remote hook: HG_BUNDLE2=1 (chg !)\n   HG_HOOKNAME=changegroup (chg !)\n@@ -608,24 +605,6 @@\n   HG_TXNNAME=serve (chg !)\n   HG_URL=remote:ssh:$LOCALIP (chg !)\n    (chg !)\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  Got arguments 1:user@dummy 2:hg init \'a repo\'\n-  Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R \'a repo\' serve --stdio\n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n-  changegroup-in-remote hook: HG_BUNDLE2=1\n-  HG_HOOKNAME=changegroup\n-  HG_HOOKTYPE=changegroup\n-  HG_NODE=65c38f4125f9602c8db4af56530cc221d93b8ef8\n-  HG_NODE_LAST=65c38f4125f9602c8db4af56530cc221d93b8ef8\n-  HG_SOURCE=serve\n-  HG_TXNID=TXN:$ID$\n-  HG_TXNNAME=serve\n-  HG_URL=remote:ssh:$LOCALIP\n-  \n-  Got arguments 1:user@dummy 2:hg -R remote serve --stdio\n \n \n remote hook failure is attributed to remote\n@@ -650,16 +629,71 @@\n   remote: adding manifests\n   remote: adding file changes\n   remote: hook failure!\n-  remote: transaction abort!\n-  remote: rollback completed\n-  remote: pretxnchangegroup.fail hook failed\n-  abort: push failed on remote\n+  remote: ** unknown exception encountered, please report by visiting\n+  remote: ** https://mercurial-scm.org/wiki/BugTracker\n+  remote: ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  remote: ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  remote: ** Extensions loaded: \n+  remote: Traceback (most recent call last):\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+  remote:     dispatch.run()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+  remote:     status = dispatch(req)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+  remote:     ret = _runcatch(req) or 0\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+  remote:     return _callcatch(ui, _runcatchfunc)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+  remote:     return scmutil.callcatch(ui, func)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+  remote:     return func()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+  remote:     return _dispatch(req)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+  remote:     lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+  remote:     ret = _runcommand(ui, options, cmd, d)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+  remote:     return cmdfunc()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+  remote:     d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+  remote:     return func(*args, **kwargs)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 6403, in serve\n+  remote:     s.serve_forever()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 851, in serve_forever\n+  remote:     self.serveuntil(threading.Event())\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 856, in serveuntil\n+  remote:     _runsshserver(self._ui, self._repo, self._fin, self._fout, ev)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotoserver.py", line 699, in _runsshserver\n+  remote:     rsp = wireprotov1server.dispatch(repo, proto, request)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotov1server.py", line 83, in dispatch\n+  remote:     return func(repo, proto, *args)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\wireprotov1server.py", line 665, in unbundle\n+  remote:     repo, gen, their_heads, b\'serve\', proto.client()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\exchange.py", line 2645, in unbundle\n+  remote:     lockmod.release(lockandtr[2], lockandtr[1], lockandtr[0])\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\lock.py", line 397, in release\n+  remote:     lock.release()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+  remote:     self._abort()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+  remote:     entries = self.readjournal()\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+  remote:     return func(self, *args, **kwds)\n+  remote:   File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+  remote:     for l in self._file:\n+  remote: TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  abort: stream ended unexpectedly (got 0 bytes, expected 4)\n   [255]\n \n abort during pull is properly reported as such\n \n   $ echo morefoo >> ../remote/foo\n   $ hg -R ../remote commit --message "more foo to be pulled"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat >> ../remote/.hg/hgrc << EOF\n   > [extensions]\n   > crash = ${TESTDIR}/crashgetbundler.py\n@@ -667,9 +701,7 @@\n   $ hg --config ui.ssh="\\"$PYTHON\\" $TESTDIR/dummyssh" pull\n   pulling from ssh://user@dummy/remote\n   searching for changes\n-  remote: abort: this is an exercise\n-  abort: pull failed on remote\n-  [255]\n+  no changes found\n \n abort with no error hint when there is a ssh problem when pulling\n \n', 7710, 7712, 'truncated \\uXXXX escape') decoding diff, sorry

test-state-extension.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-state-extension.t\n+++ c:/hgdev/src/tests/test-state-extension.t.err\n@@ -96,41 +96,101 @@\n   rebasing f8596309dff8 onto 8430cfdf77c2\n   rebasing 2:f8596309dff8 "add other file"\n   saved backup bundle to $TESTTMP/* (glob)\n-  rebasing a858b338b3e9 onto 83c722183a8e\n-  rebasing 2:a858b338b3e9 "add conflicting file"\n-  merging file1\n-  warning: conflicts while merging file1! (edit, then use \'hg resolve --mark\')\n-  unresolved conflicts (see \'hg resolve\', then \'hg chainify --continue\')\n-  [240]\n+  strip failed, backup bundle stored in \'$TESTTMP\\a\\.hg\\strip-backup/f8596309dff8-fcff66e2-rebase.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\a\\.hg\\strip-backup/f8596309dff8-dc0ae8ff-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\a\\.hg\\strip-backup/f8596309dff8-dc0ae8ff-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "chainify" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "chainify" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: chainify, rebase\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "$TESTTMP/chainify/chainify.py", line 53, in chainify\n+      rc = rebase.rebase(ui, repo, rev=[revs[0]], dest=tip)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1125, in rebase\n+      return _dorebase(ui, repo, action, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1190, in _dorebase\n+      return _origrebase(ui, repo, action, opts, rbsrt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 1268, in _origrebase\n+      rbsrt._finishrebase()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 775, in _finishrebase\n+      backup=self.backupf,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\rebase.py", line 2100, in clearrebased\n+      scmutil.cleanupnodes(repo, replacements, b\'rebase\', moves, backup=backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 1229, in cleanupnodes\n+      repo.ui, repo, tostrip, operation, backup=backup\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg status --config commands.status.verbose=True\n-  M file1\n-  ? file1.orig\n   # The repository is in an unfinished *chainify* state.\n-  \n-  # Unresolved merge conflicts:\n-  # \n-  #     file1\n-  # \n-  # To mark files as resolved:  hg resolve --mark FILE\n   \n   # To continue:    hg chainify --continue\n   # To abort:       hg chainify --abort\n   \n   $ echo foo3 > file1\n   $ hg resolve --mark file1\n-  (no more unresolved files)\n-  continue: hg chainify --continue\n+  abort: resolve command not applicable when not merging\n+  [20]\n   $ hg chainify --continue\n-  rebasing a858b338b3e9 onto 83c722183a8e\n-  rebasing 2:a858b338b3e9 "add conflicting file"\n-  saved backup bundle to $TESTTMP/* (glob)\n-  done chainifying\n+  rebasing f8596309dff8 onto 8430cfdf77c2\n+  already rebased 2:f8596309dff8 "add other file" as 83c722183a8e\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log --graph --template \'{rev} {files}\'\n-  o  3 file1\n+  o  4 file2\n   |\n-  o  2 file2\n-  |\n-  o  1 file1\n-  |\n+  | o  3 file1\n+  | |\n+  | | o  2 file2\n+  | |/\n+  o |  1 file1\n+  |/\n   @  0 base.txt\n   \n', 2947, 2949, 'truncated \\uXXXX escape') decoding diff, sorry

test-strip-cross.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-strip-cross.t\n+++ c:/hgdev/src/tests/test-strip-cross.t.err\n@@ -85,30 +85,183 @@\n   > done\n   % Trying to strip revision 0\n   saved backup bundle to $TESTTMP/files/0/.hg/strip-backup/cbb8c2f0a2e3-239800b9-backup.hg\n-  % Verifying\n-  checking changesets\n-  checking manifests\n-  crosschecking files in changesets and manifests\n-  checking files\n-  checked 2 changesets with 12 changes to 6 files\n+  strip failed, backup bundle stored in \'$TESTTMP\\files\\0\\.hg\\strip-backup/cbb8c2f0a2e3-239800b9-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\files\\0\\.hg\\strip-backup/cbb8c2f0a2e3-dcecb982-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\files\\0\\.hg\\strip-backup/cbb8c2f0a2e3-dcecb982-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  % Verifying\n+  abandoned transaction found - run hg recover\n+  checking changesets\n+  checking manifests\n+  crosschecking files in changesets and manifests\n+  checking files\n+  checked 3 changesets with 18 changes to 6 files\n   \n   % Trying to strip revision 1\n   saved backup bundle to $TESTTMP/files/1/.hg/strip-backup/124ecc0cbec9-6104543f-backup.hg\n-  % Verifying\n-  checking changesets\n-  checking manifests\n-  crosschecking files in changesets and manifests\n-  checking files\n-  checked 2 changesets with 12 changes to 6 files\n+  strip failed, backup bundle stored in \'$TESTTMP\\files\\1\\.hg\\strip-backup/124ecc0cbec9-6104543f-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\files\\1\\.hg\\strip-backup/124ecc0cbec9-a177c694-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\files\\1\\.hg\\strip-backup/124ecc0cbec9-a177c694-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  % Verifying\n+  abandoned transaction found - run hg recover\n+  checking changesets\n+  checking manifests\n+  crosschecking files in changesets and manifests\n+  checking files\n+  checked 3 changesets with 18 changes to 6 files\n   \n   % Trying to strip revision 2\n   saved backup bundle to $TESTTMP/files/2/.hg/strip-backup/f6439b304a1a-c6505a5f-backup.hg\n-  % Verifying\n-  checking changesets\n-  checking manifests\n-  crosschecking files in changesets and manifests\n-  checking files\n-  checked 2 changesets with 12 changes to 6 files\n+  strip failed, backup bundle stored in \'$TESTTMP\\files\\2\\.hg\\strip-backup/f6439b304a1a-c6505a5f-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\files\\2\\.hg\\strip-backup/f6439b304a1a-1bf162b8-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\files\\2\\.hg\\strip-backup/f6439b304a1a-1bf162b8-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  % Verifying\n+  abandoned transaction found - run hg recover\n+  checking changesets\n+  checking manifests\n+  crosschecking files in changesets and manifests\n+  checking files\n+  checked 3 changesets with 18 changes to 6 files\n   \n   $ cd ..\n \n@@ -144,21 +297,121 @@\n   > done\n   % Trying to strip revision 2\n   saved backup bundle to $TESTTMP/manifests/2/.hg/strip-backup/f3015ad03c03-4d98bdc2-backup.hg\n-  % Verifying\n-  checking changesets\n-  checking manifests\n-  crosschecking files in changesets and manifests\n-  checking files\n-  checked 3 changesets with 3 changes to 2 files\n+  strip failed, backup bundle stored in \'$TESTTMP\\manifests\\2\\.hg\\strip-backup/f3015ad03c03-4d98bdc2-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\manifests\\2\\.hg\\strip-backup/f3015ad03c03-428bd4df-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\manifests\\2\\.hg\\strip-backup/f3015ad03c03-428bd4df-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  % Verifying\n+  abandoned transaction found - run hg recover\n+  checking changesets\n+  checking manifests\n+  crosschecking files in changesets and manifests\n+  checking files\n+  checked 4 changesets with 4 changes to 2 files\n   \n   % Trying to strip revision 3\n   saved backup bundle to $TESTTMP/manifests/3/.hg/strip-backup/9632aa303aa4-69192e3f-backup.hg\n-  % Verifying\n-  checking changesets\n-  checking manifests\n-  crosschecking files in changesets and manifests\n-  checking files\n-  checked 3 changesets with 3 changes to 2 files\n+  strip failed, backup bundle stored in \'$TESTTMP\\manifests\\3\\.hg\\strip-backup/9632aa303aa4-69192e3f-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  % Verifying\n+  abandoned transaction found - run hg recover\n+  checking changesets\n+  checking manifests\n+  crosschecking files in changesets and manifests\n+  checking files\n+  checked 4 changesets with 4 changes to 2 files\n   \n   $ cd ..\n \n@@ -199,22 +452,122 @@\n   > done\n   % Trying to strip revision 2\n   saved backup bundle to $TESTTMP/treemanifests/2/.hg/strip-backup/145f5c75f9ac-a105cfbe-backup.hg\n-  % Verifying\n+  strip failed, backup bundle stored in \'$TESTTMP\\treemanifests\\2\\.hg\\strip-backup/145f5c75f9ac-a105cfbe-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\treemanifests\\2\\.hg\\strip-backup/145f5c75f9ac-4db3cdbb-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\treemanifests\\2\\.hg\\strip-backup/145f5c75f9ac-4db3cdbb-temp.hg\'")\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  % Verifying\n+  abandoned transaction found - run hg recover\n   checking changesets\n   checking manifests\n   checking directory manifests\n   crosschecking files in changesets and manifests\n   checking files\n-  checked 3 changesets with 4 changes to 3 files\n+  checked 4 changesets with 6 changes to 3 files\n   \n   % Trying to strip revision 3\n   saved backup bundle to $TESTTMP/treemanifests/3/.hg/strip-backup/e4e3de5c3cb2-f4c70376-backup.hg\n-  % Verifying\n+  strip failed, backup bundle stored in \'$TESTTMP\\treemanifests\\3\\.hg\\strip-backup/e4e3de5c3cb2-f4c70376-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  % Verifying\n+  abandoned transaction found - run hg recover\n   checking changesets\n   checking manifests\n   checking directory manifests\n   crosschecking files in changesets and manifests\n   checking files\n-  checked 3 changesets with 4 changes to 3 files\n-  \n-  $ cd ..\n+  checked 4 changesets with 6 changes to 3 files\n+  \n+  $ cd ..\n', 2682, 2684, 'truncated \\uXXXX escape') decoding diff, sorry

test-strip.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-strip.t\n+++ c:/hgdev/src/tests/test-strip.t.err\n@@ -82,7 +82,91 @@\n   \n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\test\\.hg\\strip-backup/443431ffac4f-2fc5398a-backup.hg\'\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n   % after update 4, strip 4\n+  o  4:443431ffac4f5b5a19b0b6c298a21b7ba736bcce\n+  |\n   @  3:65bd5f99a4a376cdea23a1153f07856b0d881d64\n   |\n   | o  2:264128213d290d868c54642d13aeaa3675551a78\n@@ -91,6 +175,8 @@\n   |\n   o  0:9ab35a2d17cb64271241ea881efcc19dd953215b\n   \n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   $ teststrip 4 3\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   % before update 4, strip 3\n@@ -106,13 +192,46 @@\n   \n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\test\\.hg\\strip-backup/65bd5f99a4a3-0eb9aae0-backup.hg\'\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 207, in strip\n+      with repo.transaction(b"strip") as tr:\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2153, in transaction\n+      hint=_(b"run \'hg recover\' to clean up transaction"),\n+  RepoError: abandoned transaction found\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   % after update 4, strip 3\n-  o  2:264128213d290d868c54642d13aeaa3675551a78\n-  |\n+  o  4:443431ffac4f5b5a19b0b6c298a21b7ba736bcce\n+  |\n+  o  3:65bd5f99a4a376cdea23a1153f07856b0d881d64\n+  |\n+  | o  2:264128213d290d868c54642d13aeaa3675551a78\n+  |/\n   @  1:ef3a871183d7199c541cc140218298bbfcc6c28a\n   |\n   o  0:9ab35a2d17cb64271241ea881efcc19dd953215b\n   \n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   $ teststrip 1 4\n   0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   % before update 1, strip 4\n@@ -127,7 +246,36 @@\n   o  0:9ab35a2d17cb64271241ea881efcc19dd953215b\n   \n   saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\test\\.hg\\strip-backup/443431ffac4f-2fc5398a-backup.hg\'\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 207, in strip\n+      with repo.transaction(b"strip") as tr:\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2153, in transaction\n+      hint=_(b"run \'hg recover\' to clean up transaction"),\n+  RepoError: abandoned transaction found\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   % after update 1, strip 4\n+  o  4:443431ffac4f5b5a19b0b6c298a21b7ba736bcce\n+  |\n   o  3:65bd5f99a4a376cdea23a1153f07856b0d881d64\n   |\n   | o  2:264128213d290d868c54642d13aeaa3675551a78\n@@ -136,6 +284,8 @@\n   |\n   o  0:9ab35a2d17cb64271241ea881efcc19dd953215b\n   \n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   $ teststrip 4 2\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   % before update 4, strip 2\n@@ -150,74 +300,175 @@\n   o  0:9ab35a2d17cb64271241ea881efcc19dd953215b\n   \n   saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\test\\.hg\\strip-backup/264128213d29-0b39d6bf-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\test\\.hg\\strip-backup/264128213d29-0eb9aae0-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\test\\.hg\\strip-backup/264128213d29-0eb9aae0-temp.hg\'")\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 207, in strip\n+      with repo.transaction(b"strip") as tr:\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2153, in transaction\n+      hint=_(b"run \'hg recover\' to clean up transaction"),\n+  RepoError: abandoned transaction found\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   % after update 4, strip 2\n-  @  3:443431ffac4f5b5a19b0b6c298a21b7ba736bcce\n-  |\n-  o  2:65bd5f99a4a376cdea23a1153f07856b0d881d64\n-  |\n-  o  1:ef3a871183d7199c541cc140218298bbfcc6c28a\n-  |\n-  o  0:9ab35a2d17cb64271241ea881efcc19dd953215b\n-  \n-  $ teststrip 4 1\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  % before update 4, strip 1\n-  @  4:264128213d290d868c54642d13aeaa3675551a78\n-  |\n-  | o  3:443431ffac4f5b5a19b0b6c298a21b7ba736bcce\n-  | |\n-  | o  2:65bd5f99a4a376cdea23a1153f07856b0d881d64\n+  @  4:443431ffac4f5b5a19b0b6c298a21b7ba736bcce\n+  |\n+  o  3:65bd5f99a4a376cdea23a1153f07856b0d881d64\n+  |\n+  | o  2:264128213d290d868c54642d13aeaa3675551a78\n   |/\n   o  1:ef3a871183d7199c541cc140218298bbfcc6c28a\n   |\n   o  0:9ab35a2d17cb64271241ea881efcc19dd953215b\n   \n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  $ teststrip 4 1\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  % before update 4, strip 1\n+  @  4:443431ffac4f5b5a19b0b6c298a21b7ba736bcce\n+  |\n+  o  3:65bd5f99a4a376cdea23a1153f07856b0d881d64\n+  |\n+  | o  2:264128213d290d868c54642d13aeaa3675551a78\n+  |/\n+  o  1:ef3a871183d7199c541cc140218298bbfcc6c28a\n+  |\n+  o  0:9ab35a2d17cb64271241ea881efcc19dd953215b\n+  \n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\test\\.hg\\strip-backup/ef3a871183d7-7c4e7e70-backup.hg\'\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 207, in strip\n+      with repo.transaction(b"strip") as tr:\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2153, in transaction\n+      hint=_(b"run \'hg recover\' to clean up transaction"),\n+  RepoError: abandoned transaction found\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   % after update 4, strip 1\n+  o  4:443431ffac4f5b5a19b0b6c298a21b7ba736bcce\n+  |\n+  o  3:65bd5f99a4a376cdea23a1153f07856b0d881d64\n+  |\n+  | o  2:264128213d290d868c54642d13aeaa3675551a78\n+  |/\n+  o  1:ef3a871183d7199c541cc140218298bbfcc6c28a\n+  |\n   @  0:9ab35a2d17cb64271241ea881efcc19dd953215b\n   \n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   $ teststrip null 4\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n   % before update null, strip 4\n-  o  4:264128213d290d868c54642d13aeaa3675551a78\n-  |\n-  | o  3:443431ffac4f5b5a19b0b6c298a21b7ba736bcce\n-  | |\n-  | o  2:65bd5f99a4a376cdea23a1153f07856b0d881d64\n+  o  4:443431ffac4f5b5a19b0b6c298a21b7ba736bcce\n+  |\n+  o  3:65bd5f99a4a376cdea23a1153f07856b0d881d64\n+  |\n+  | o  2:264128213d290d868c54642d13aeaa3675551a78\n   |/\n   o  1:ef3a871183d7199c541cc140218298bbfcc6c28a\n   |\n   o  0:9ab35a2d17cb64271241ea881efcc19dd953215b\n   \n   saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\test\\.hg\\strip-backup/443431ffac4f-2fc5398a-backup.hg\'\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 207, in strip\n+      with repo.transaction(b"strip") as tr:\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2153, in transaction\n+      hint=_(b"run \'hg recover\' to clean up transaction"),\n+  RepoError: abandoned transaction found\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   % after update null, strip 4\n-  o  3:443431ffac4f5b5a19b0b6c298a21b7ba736bcce\n-  |\n-  o  2:65bd5f99a4a376cdea23a1153f07856b0d881d64\n-  |\n+  o  4:443431ffac4f5b5a19b0b6c298a21b7ba736bcce\n+  |\n+  o  3:65bd5f99a4a376cdea23a1153f07856b0d881d64\n+  |\n+  | o  2:264128213d290d868c54642d13aeaa3675551a78\n+  |/\n   o  1:ef3a871183d7199c541cc140218298bbfcc6c28a\n   |\n   o  0:9ab35a2d17cb64271241ea881efcc19dd953215b\n   \n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n \n   $ hg log\n-  changeset:   4:264128213d29\n+  changeset:   4:443431ffac4f\n   tag:         tip\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     e\n+  \n+  changeset:   3:65bd5f99a4a3\n   parent:      1:ef3a871183d7\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     c\n-  \n-  changeset:   3:443431ffac4f\n+  summary:     d\n+  \n+  changeset:   2:264128213d29\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     e\n-  \n-  changeset:   2:65bd5f99a4a3\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     d\n+  summary:     c\n   \n   changeset:   1:ef3a871183d7\n   user:        test\n@@ -232,57 +483,82 @@\n   $ hg up -C 4\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg parents\n-  changeset:   4:264128213d29\n+  changeset:   4:443431ffac4f\n   tag:         tip\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     e\n+  \n+\n+  $ hg --traceback strip 4\n+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  saved backup bundle to $TESTTMP/test/.hg/strip-backup/443431ffac4f-2fc5398a-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\test\\.hg\\strip-backup/443431ffac4f-2fc5398a-backup.hg\'\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 207, in strip\n+      with repo.transaction(b"strip") as tr:\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2153, in transaction\n+      hint=_(b"run \'hg recover\' to clean up transaction"),\n+  RepoError: abandoned transaction found\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg parents\n+  changeset:   3:65bd5f99a4a3\n   parent:      1:ef3a871183d7\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     c\n-  \n-\n-  $ hg --traceback strip 4\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  saved backup bundle to $TESTTMP/test/.hg/strip-backup/264128213d29-0b39d6bf-backup.hg\n-  $ hg parents\n-  changeset:   1:ef3a871183d7\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     b\n+  summary:     d\n   \n   $ hg debugbundle .hg/strip-backup/*\n   Stream params: {Compression: BZ}\n   changegroup -- {nbchanges: 1, version: 02} (mandatory: True)\n-      264128213d290d868c54642d13aeaa3675551a78\n+      443431ffac4f5b5a19b0b6c298a21b7ba736bcce\n   cache:rev-branch-cache -- {} (mandatory: False)\n   phase-heads -- {} (mandatory: True)\n-      264128213d290d868c54642d13aeaa3675551a78 draft\n+      443431ffac4f5b5a19b0b6c298a21b7ba736bcce draft\n   $ hg unbundle .hg/strip-backup/*\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 0 changes to 1 files (+1 heads)\n-  new changesets 264128213d29 (1 drafts)\n-  (run \'hg heads\' to see heads, \'hg merge\' to merge)\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ rm .hg/strip-backup/*\n   $ hg log --graph\n-  o  changeset:   4:264128213d29\n+  o  changeset:   4:443431ffac4f\n   |  tag:         tip\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     e\n+  |\n+  @  changeset:   3:65bd5f99a4a3\n   |  parent:      1:ef3a871183d7\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     c\n-  |\n-  | o  changeset:   3:443431ffac4f\n-  | |  user:        test\n-  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  | |  summary:     e\n-  | |\n-  | o  changeset:   2:65bd5f99a4a3\n+  |  summary:     d\n+  |\n+  | o  changeset:   2:264128213d29\n   |/   user:        test\n   |    date:        Thu Jan 01 00:00:00 1970 +0000\n-  |    summary:     d\n-  |\n-  @  changeset:   1:ef3a871183d7\n+  |    summary:     c\n+  |\n+  o  changeset:   1:ef3a871183d7\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     b\n@@ -293,25 +569,27 @@\n      summary:     a\n   \n   $ hg up -C 2\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg merge 4\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n+  merging bar\n+  warning: conflicts while merging bar! (edit, then use \'hg resolve --mark\')\n+  0 files updated, 0 files merged, 0 files removed, 1 files unresolved\n+  use \'hg resolve\' to retry unresolved file merges or \'hg merge --abort\' to abandon\n+  [1]\n \n before strip of merge parent\n \n   $ hg parents\n-  changeset:   2:65bd5f99a4a3\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     d\n-  \n-  changeset:   4:264128213d29\n-  tag:         tip\n-  parent:      1:ef3a871183d7\n+  changeset:   2:264128213d29\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n   summary:     c\n+  \n+  changeset:   4:443431ffac4f\n+  tag:         tip\n+  user:        test\n+  date:        Thu Jan 01 00:00:00 1970 +0000\n+  summary:     e\n   \n ##strip not allowed with merge in progress\n   $ hg strip 4\n@@ -322,38 +600,45 @@\n   $ hg strip 4 --force\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\test\\.hg\\strip-backup/443431ffac4f-2fc5398a-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n after strip of merge parent\n \n   $ hg parents\n-  changeset:   1:ef3a871183d7\n+  changeset:   3:65bd5f99a4a3\n+  parent:      1:ef3a871183d7\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     b\n+  summary:     d\n   \n   $ restore\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n \n   $ hg up\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  updated to "264128213d29: c"\n+  updated to "443431ffac4f: e"\n   1 other heads for branch "default"\n   $ hg log -G\n-  @  changeset:   4:264128213d29\n+  @  changeset:   4:443431ffac4f\n   |  tag:         tip\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     e\n+  |\n+  o  changeset:   3:65bd5f99a4a3\n   |  parent:      1:ef3a871183d7\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     c\n-  |\n-  | o  changeset:   3:443431ffac4f\n-  | |  user:        test\n-  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  | |  summary:     e\n-  | |\n-  | o  changeset:   2:65bd5f99a4a3\n+  |  summary:     d\n+  |\n+  | o  changeset:   2:264128213d29\n   |/   user:        test\n   |    date:        Thu Jan 01 00:00:00 1970 +0000\n-  |    summary:     d\n+  |    summary:     c\n   |\n   o  changeset:   1:ef3a871183d7\n   |  user:        test\n@@ -369,15 +654,31 @@\n 2 is parent of 3, only one strip should happen\n \n   $ hg strip "roots(2)" 3\n+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\test\\.hg\\strip-backup/65bd5f99a4a3-113a8fc8-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -G\n-  @  changeset:   2:264128213d29\n+  o  changeset:   4:443431ffac4f\n   |  tag:         tip\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     c\n-  |\n-  o  changeset:   1:ef3a871183d7\n+  |  summary:     e\n+  |\n+  o  changeset:   3:65bd5f99a4a3\n+  |  parent:      1:ef3a871183d7\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     d\n+  |\n+  | o  changeset:   2:264128213d29\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     c\n+  |\n+  @  changeset:   1:ef3a871183d7\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     b\n@@ -388,6 +689,8 @@\n      summary:     a\n   \n   $ restore\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   $ hg log -G\n   o  changeset:   4:443431ffac4f\n   |  tag:         tip\n@@ -401,12 +704,12 @@\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     d\n   |\n-  | @  changeset:   2:264128213d29\n+  | o  changeset:   2:264128213d29\n   |/   user:        test\n   |    date:        Thu Jan 01 00:00:00 1970 +0000\n   |    summary:     c\n   |\n-  o  changeset:   1:ef3a871183d7\n+  @  changeset:   1:ef3a871183d7\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     b\n@@ -419,16 +722,16 @@\n Failed hook while applying "saveheads" bundle.\n \n   $ hg strip 2 --config hooks.pretxnchangegroup.bad=false\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)\n-  transaction abort!\n-  rollback completed\n-  strip failed, backup bundle stored in \'$TESTTMP/test/.hg/strip-backup/*-backup.hg\' (glob)\n-  strip failed, unrecovered changes stored in \'$TESTTMP/test/.hg/strip-backup/*-temp.hg\' (glob)\n+  saved backup bundle to $TESTTMP/test/.hg/strip-backup/264128213d29-0b39d6bf-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\test\\.hg\\strip-backup/264128213d29-0b39d6bf-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\test\\.hg\\strip-backup/264128213d29-0eb9aae0-temp.hg\'\n   (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP/test/.hg/strip-backup/*-temp.hg\'") (glob)\n-  abort: pretxnchangegroup.bad hook exited with status 1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ restore\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   $ hg log -G\n   o  changeset:   4:443431ffac4f\n   |  tag:         tip\n@@ -462,12 +765,29 @@\n \n   $ hg strip 2 4\n   saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\test\\.hg\\strip-backup/443431ffac4f-21215376-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\test\\.hg\\strip-backup/443431ffac4f-72c6ca94-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\test\\.hg\\strip-backup/443431ffac4f-72c6ca94-temp.hg\'")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -G\n-  o  changeset:   2:65bd5f99a4a3\n+  o  changeset:   4:443431ffac4f\n   |  tag:         tip\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     e\n+  |\n+  o  changeset:   3:65bd5f99a4a3\n+  |  parent:      1:ef3a871183d7\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     d\n+  |\n+  | o  changeset:   2:264128213d29\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     c\n   |\n   @  changeset:   1:ef3a871183d7\n   |  user:        test\n@@ -480,18 +800,29 @@\n      summary:     a\n   \n   $ restore\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n \n 2 different branches and a common ancestor: 1 strip\n \n   $ hg strip 1 "2|4"\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\test\\.hg\\strip-backup/ef3a871183d7-7c4e7e70-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ restore\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n \n verify fncache is kept up-to-date\n \n   $ touch a\n   $ hg ci -qAm a\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n #if repofncache\n   $ cat .hg/store/fncache | sort\n   data/a.i\n@@ -499,8 +830,11 @@\n #endif\n \n   $ hg strip tip\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)\n+  saved backup bundle to $TESTTMP/test/.hg/strip-backup/443431ffac4f-2fc5398a-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\test\\.hg\\strip-backup/443431ffac4f-2fc5398a-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n #if repofncache\n   $ cat .hg/store/fncache\n   data/bar.i\n@@ -516,6 +850,10 @@\n \n   $ hg strip 3\n   saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\test\\.hg\\strip-backup/65bd5f99a4a3-0eb9aae0-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n \n strip of applied mq should cleanup status file\n@@ -525,31 +863,33 @@\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ echo fooagain >> bar\n   $ hg ci -mf\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg qimport -r tip:2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n applied patches before strip\n \n   $ hg qapplied\n-  d\n-  e\n-  f\n \n stripping revision in queue\n \n   $ hg strip 3\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)\n+  abort: uncommitted changes\n+  [20]\n \n applied patches after stripping rev in queue\n \n   $ hg qapplied\n-  d\n \n stripping ancestor of queue\n \n   $ hg strip 1\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)\n+  abort: uncommitted changes\n+  [20]\n \n applied patches after stripping ancestor of queue\n \n@@ -561,9 +901,28 @@\n   $ echo bb > bar\n   $ hg add b\n   $ hg ci -m \'b\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log --graph\n-  @  changeset:   1:76dcf9fab855\n+  o  changeset:   4:443431ffac4f\n   |  tag:         tip\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     e\n+  |\n+  @  changeset:   3:65bd5f99a4a3\n+  |  parent:      1:ef3a871183d7\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     d\n+  |\n+  | o  changeset:   2:264128213d29\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     c\n+  |\n+  o  changeset:   1:ef3a871183d7\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     b\n@@ -574,104 +933,189 @@\n      summary:     a\n   \n   $ hg up 0\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  merging bar\n+  warning: conflicts while merging bar! (edit, then use \'hg resolve --mark\')\n+  0 files updated, 0 files merged, 0 files removed, 1 files unresolved\n+  use \'hg resolve\' to retry unresolved file merges\n+  [1]\n   $ echo c > bar\n   $ hg up -t false\n-  merging bar\n-  merging bar failed!\n-  1 files updated, 0 files merged, 0 files removed, 1 files unresolved\n-  use \'hg resolve\' to retry unresolved file merges\n-  [1]\n+  abort: outstanding merge conflicts\n+  (use \'hg resolve\' to resolve)\n+  [255]\n   $ hg sum\n-  parent: 1:76dcf9fab855 tip\n-   b\n+  parent: 0:9ab35a2d17cb \n+   a\n   branch: default\n-  commit: 1 modified, 1 unknown, 1 unresolved\n-  update: (current)\n-  phases: 2 draft\n-  mq:     3 unapplied\n+  commit: 1 modified, 1 added, 2 unknown, 1 unresolved (new branch head)\n+  update: 4 new changesets (update)\n+  phases: 5 draft\n \n   $ hg log --graph\n-  @  changeset:   1:76dcf9fab855\n+  o  changeset:   4:443431ffac4f\n   |  tag:         tip\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     e\n+  |\n+  %  changeset:   3:65bd5f99a4a3\n+  |  parent:      1:ef3a871183d7\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     d\n+  |\n+  | o  changeset:   2:264128213d29\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     c\n+  |\n+  o  changeset:   1:ef3a871183d7\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     b\n   |\n-  %  changeset:   0:9ab35a2d17cb\n+  @  changeset:   0:9ab35a2d17cb\n      user:        test\n      date:        Thu Jan 01 00:00:00 1970 +0000\n      summary:     a\n   \n   $ echo c > b\n   $ hg strip tip\n-  abort: uncommitted changes\n-  [20]\n+  saved backup bundle to $TESTTMP/test/.hg/strip-backup/443431ffac4f-2fc5398a-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\test\\.hg\\strip-backup/443431ffac4f-2fc5398a-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg strip tip --keep\n   saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\test\\.hg\\strip-backup/443431ffac4f-2fc5398a-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log --graph\n+  o  changeset:   4:443431ffac4f\n+  |  tag:         tip\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     e\n+  |\n+  %  changeset:   3:65bd5f99a4a3\n+  |  parent:      1:ef3a871183d7\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     d\n+  |\n+  | o  changeset:   2:264128213d29\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     c\n+  |\n+  o  changeset:   1:ef3a871183d7\n+  |  user:        test\n+  |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  |  summary:     b\n+  |\n   @  changeset:   0:9ab35a2d17cb\n-     tag:         tip\n      user:        test\n      date:        Thu Jan 01 00:00:00 1970 +0000\n      summary:     a\n   \n   $ hg status\n   M bar\n-  ? b\n+  A b\n+  ? a\n   ? bar.orig\n \n   $ rm bar.orig\n   $ hg sum\n-  parent: 0:9ab35a2d17cb tip\n+  parent: 0:9ab35a2d17cb \n    a\n   branch: default\n-  commit: 1 modified, 1 unknown\n-  update: (current)\n-  phases: 1 draft\n-  mq:     3 unapplied\n+  commit: 1 modified, 1 added, 1 unknown, 1 unresolved (new branch head)\n+  update: 4 new changesets (update)\n+  phases: 5 draft\n \n Strip adds, removes, modifies with --keep\n \n   $ touch b\n   $ hg add b\n+  b already tracked!\n   $ hg commit -mb\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n   $ touch c\n \n ... with a clean working dir\n \n   $ hg add c\n   $ hg rm bar\n+  not removing bar: file is modified (use -f to force removal)\n+  [1]\n   $ hg commit -mc\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n   $ hg status\n+  M bar\n+  A b\n+  A c\n+  ? a\n   $ hg strip --keep tip\n   saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\test\\.hg\\strip-backup/443431ffac4f-2fc5398a-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n-  ! bar\n-  ? c\n+  M bar\n+  A b\n+  A c\n+  ? a\n \n ... with a dirty working dir\n \n   $ hg add c\n+  c already tracked!\n   $ hg rm bar\n+  not removing bar: file is modified (use -f to force removal)\n+  [1]\n   $ hg commit -mc\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n   $ hg status\n+  M bar\n+  A b\n+  A c\n+  ? a\n   $ echo b > b\n   $ echo d > d\n   $ hg strip --keep tip\n   saved backup bundle to $TESTTMP/test/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\test\\.hg\\strip-backup/443431ffac4f-2fc5398a-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n-  M b\n-  ! bar\n-  ? c\n+  M bar\n+  A b\n+  A c\n+  ? a\n   ? d\n \n ... after updating the dirstate\n   $ hg add c\n+  c already tracked!\n   $ hg commit -mc\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n   $ hg rm c\n+  not removing c: file has been marked for add (use \'hg forget\' to undo add)\n+  [1]\n   $ hg commit -mc\n+  abort: unresolved merge conflicts (see \'hg help resolve\')\n+  [20]\n   $ hg strip --keep \'.^\' -q\n+  abort: empty revision set\n+  [255]\n   $ cd ..\n \n stripping many nodes on a complex graph (issue3299)\n@@ -681,6 +1125,63 @@\n   $ hg debugbuilddag \'@a.:a@b.:b.:x<a@a.:a<b@b.:b<a@a.:a\'\n   $ hg strip \'not ancestors(x)\'\n   saved backup bundle to $TESTTMP/issue3299/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\issue3299\\.hg\\strip-backup/dd1007507c45-ddf2ba44-backup.hg\'\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n test hg strip -B bookmark\n \n@@ -706,36 +1207,97 @@\n   $ hg strip -B todelete\n   0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/*-backup.hg (glob)\n-  bookmark \'todelete\' deleted\n+  strip failed, backup bundle stored in \'$TESTTMP\\bookmarks\\.hg\\strip-backup/dcbb326fdec2-96d74e72-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\bookmarks\\.hg\\strip-backup/dcbb326fdec2-f91b8bf6-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\bookmarks\\.hg\\strip-backup/dcbb326fdec2-f91b8bf6-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg id -ir dcbb326fdec2\n-  abort: unknown revision \'dcbb326fdec2\'\n-  [255]\n+  dcbb326fdec2\n   $ hg id -ir d62d843c9a01\n   d62d843c9a01\n   $ hg bookmarks\n-     B                         9:ff43616e5d0f\n+     B                         10:ff43616e5d0f\n      delete                    6:2702dd0c91e7\n-     multipledelete1           11:e46a4836065c\n-     multipledelete2           12:b4594d867745\n-     singlenode1               13:43227190fef8\n-     singlenode2               13:43227190fef8\n+     multipledelete1           12:e46a4836065c\n+     multipledelete2           13:b4594d867745\n+     singlenode1               14:43227190fef8\n+     singlenode2               14:43227190fef8\n+   * todelete                  9:dcbb326fdec2\n   $ hg strip -B multipledelete1 -B multipledelete2\n   saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/e46a4836065c-89ec65c2-backup.hg\n-  bookmark \'multipledelete1\' deleted\n-  bookmark \'multipledelete2\' deleted\n+  strip failed, backup bundle stored in \'$TESTTMP\\bookmarks\\.hg\\strip-backup/e46a4836065c-89ec65c2-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\bookmarks\\.hg\\strip-backup/e46a4836065c-8da858f2-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\bookmarks\\.hg\\strip-backup/e46a4836065c-8da858f2-temp.hg\'")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg id -ir e46a4836065c\n-  abort: unknown revision \'e46a4836065c\'\n-  [255]\n+  e46a4836065c\n   $ hg id -ir b4594d867745\n-  abort: unknown revision \'b4594d867745\'\n-  [255]\n+  b4594d867745\n   $ hg strip -B singlenode1 -B singlenode2\n   saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/43227190fef8-8da858f2-backup.hg\n-  bookmark \'singlenode1\' deleted\n-  bookmark \'singlenode2\' deleted\n+  strip failed, backup bundle stored in \'$TESTTMP\\bookmarks\\.hg\\strip-backup/43227190fef8-8da858f2-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg id -ir 43227190fef8\n-  abort: unknown revision \'43227190fef8\'\n-  [255]\n+  43227190fef8\n   $ hg strip -B unknownbookmark\n   abort: bookmark \'unknownbookmark\' not found\n   [255]\n@@ -747,10 +1309,14 @@\n   [255]\n   $ hg strip -B delete\n   saved backup bundle to $TESTTMP/bookmarks/.hg/strip-backup/*-backup.hg (glob)\n-  bookmark \'delete\' deleted\n+  strip failed, backup bundle stored in \'$TESTTMP\\bookmarks\\.hg\\strip-backup/4c748ffd1a46-a99e5f4b-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\bookmarks\\.hg\\strip-backup/4c748ffd1a46-d6a0fc8e-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\bookmarks\\.hg\\strip-backup/4c748ffd1a46-d6a0fc8e-temp.hg\'")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg id -ir 6:2702dd0c91e7\n-  abort: unknown revision \'2702dd0c91e7\'\n-  [255]\n+  2702dd0c91e7\n   $ hg update B\n   0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   (activating bookmark B)\n@@ -760,7 +1326,13 @@\n   abort: uncommitted changes\n   [20]\n   $ hg bookmarks\n-   * B                         6:ff43616e5d0f\n+   * B                         10:ff43616e5d0f\n+     delete                    6:2702dd0c91e7\n+     multipledelete1           12:e46a4836065c\n+     multipledelete2           13:b4594d867745\n+     singlenode1               14:43227190fef8\n+     singlenode2               14:43227190fef8\n+     todelete                  9:dcbb326fdec2\n \n Make sure no one adds back a -b option:\n \n@@ -797,6 +1369,63 @@\n   $ hg strip -r 0\n   0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/doublebundle/.hg/strip-backup/3903775176ed-e68910bd-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\doublebundle\\.hg\\strip-backup/3903775176ed-e68910bd-backup.hg\'\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ ls .hg/strip-backup\n   3903775176ed-e68910bd-backup.hg\n #if repobundlerepo\n@@ -911,14 +1540,82 @@\n   bundle2-output-part: "cache:rev-branch-cache" (advisory) streamed payload\n   bundle2-output-part: "phase-heads" 24 bytes payload\n   saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/6625a5168474-345bb43d-backup.hg\n-  updating the branch cache\n-  invalid branch cache (served): tip differs\n+  strip failed, backup bundle stored in \'$TESTTMP\\issue4736\\.hg\\strip-backup/6625a5168474-345bb43d-backup.hg\'\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg log -G\n-  o  changeset:   2:5c51d8d6557d\n-  |  tag:         tip\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     commitC\n+  o    changeset:   4:d8db9d137221\n+  |\\   tag:         tip\n+  | |  parent:      2:5c51d8d6557d\n+  | |  parent:      3:6625a5168474\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     mergeCD\n+  | |\n+  | o  changeset:   3:6625a5168474\n+  | |  parent:      1:eca11cf91c71\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     commitD\n+  | |\n+  o |  changeset:   2:5c51d8d6557d\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     commitC\n   |\n   @  changeset:   1:eca11cf91c71\n   |  user:        test\n@@ -978,13 +1675,22 @@\n   $ echo k > k\n   $ hg add k\n   $ hg commit -m commitK\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo l > l\n   $ hg add l\n   $ hg commit -m commitL\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg book -r tip blah\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg strip ".^" --config extensions.crash=$TESTTMP/stripstalephasecache.py\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n-  saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/8f0b4384875c-4fa10deb-backup.hg\n+  abort: uncommitted changes\n+  [20]\n   $ hg up -C 1\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n \n@@ -1004,16 +1710,35 @@\n   >     repo.__class__ = crashstriprepo\n   > EOF\n   $ hg strip tip --config extensions.crash=$TESTTMP/crashstrip.py\n-  saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/5c51d8d6557d-70daef06-backup.hg\n-  strip failed, backup bundle stored in \'$TESTTMP/issue4736/.hg/strip-backup/5c51d8d6557d-70daef06-backup.hg\'\n-  abort: boom\n+  saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/d8db9d137221-2aedf3f6-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\issue4736\\.hg\\strip-backup/d8db9d137221-2aedf3f6-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n test stripping a working directory parent doesn\'t switch named branches\n \n   $ hg log -G\n+  o    changeset:   4:d8db9d137221\n+  |\\   tag:         tip\n+  | |  parent:      2:5c51d8d6557d\n+  | |  parent:      3:6625a5168474\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     mergeCD\n+  | |\n+  | o  changeset:   3:6625a5168474\n+  | |  parent:      1:eca11cf91c71\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     commitD\n+  | |\n+  o |  changeset:   2:5c51d8d6557d\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     commitC\n+  |\n   @  changeset:   1:eca11cf91c71\n-  |  tag:         tip\n   |  user:        test\n   |  date:        Thu Jan 01 00:00:00 1970 +0000\n   |  summary:     commitB\n@@ -1028,36 +1753,46 @@\n   marked working directory as branch new-branch\n   (branches are permanent and global, did you want a bookmark?)\n   $ hg ci -m "start new branch"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo \'foo\' > foo.txt\n   $ hg ci -Aqm foo\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ echo \'bar\' > bar.txt\n   $ hg ci -Aqm bar\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up new-branch\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: unknown revision \'new\'\n+  [255]\n   $ hg merge default\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n+  abort: merging with a working directory ancestor has no effect\n+  [255]\n   $ hg log -G\n-  @  changeset:   4:35358f982181\n-  |  tag:         tip\n-  |  parent:      1:eca11cf91c71\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     bar\n-  |\n-  | @  changeset:   3:f62c6c09b707\n-  | |  branch:      new-branch\n+  @    changeset:   4:d8db9d137221\n+  |\\   tag:         tip\n+  | |  parent:      2:5c51d8d6557d\n+  | |  parent:      3:6625a5168474\n   | |  user:        test\n   | |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  | |  summary:     foo\n+  | |  summary:     mergeCD\n   | |\n-  | o  changeset:   2:b1d33a8cadd9\n-  |/   branch:      new-branch\n-  |    user:        test\n+  | o  changeset:   3:6625a5168474\n+  | |  parent:      1:eca11cf91c71\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     commitD\n+  | |\n+  o |  changeset:   2:5c51d8d6557d\n+  |/   user:        test\n   |    date:        Thu Jan 01 00:00:00 1970 +0000\n-  |    summary:     start new branch\n+  |    summary:     commitC\n   |\n   o  changeset:   1:eca11cf91c71\n   |  user:        test\n@@ -1071,21 +1806,27 @@\n   \n \n   $ hg strip --force -r 35358f982181\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/35358f982181-50d992d4-backup.hg\n+  abort: unknown revision \'35358f982181\'\n+  [255]\n   $ hg log -G\n-  @  changeset:   3:f62c6c09b707\n-  |  branch:      new-branch\n-  |  tag:         tip\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     foo\n-  |\n-  o  changeset:   2:b1d33a8cadd9\n-  |  branch:      new-branch\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     start new branch\n+  @    changeset:   4:d8db9d137221\n+  |\\   tag:         tip\n+  | |  parent:      2:5c51d8d6557d\n+  | |  parent:      3:6625a5168474\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     mergeCD\n+  | |\n+  | o  changeset:   3:6625a5168474\n+  | |  parent:      1:eca11cf91c71\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     commitD\n+  | |\n+  o |  changeset:   2:5c51d8d6557d\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     commitC\n   |\n   o  changeset:   1:eca11cf91c71\n   |  user:        test\n@@ -1099,42 +1840,40 @@\n   \n \n   $ hg up default\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ echo \'bar\' > bar.txt\n   $ hg ci -Aqm bar\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up new-branch\n-  1 files updated, 0 files merged, 1 files removed, 0 files unresolved\n+  abort: unknown revision \'new\'\n+  [255]\n   $ hg merge default\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n+  abort: merging with a working directory ancestor has no effect\n+  [255]\n   $ hg ci -m merge\n+  nothing changed\n+  [1]\n   $ hg log -G\n-  @    changeset:   5:4cf5e92caec2\n-  |\\   branch:      new-branch\n-  | |  tag:         tip\n-  | |  parent:      3:f62c6c09b707\n-  | |  parent:      4:35358f982181\n+  @    changeset:   4:d8db9d137221\n+  |\\   tag:         tip\n+  | |  parent:      2:5c51d8d6557d\n+  | |  parent:      3:6625a5168474\n   | |  user:        test\n   | |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  | |  summary:     merge\n+  | |  summary:     mergeCD\n   | |\n-  | o  changeset:   4:35358f982181\n+  | o  changeset:   3:6625a5168474\n   | |  parent:      1:eca11cf91c71\n   | |  user:        test\n   | |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  | |  summary:     bar\n+  | |  summary:     commitD\n   | |\n-  o |  changeset:   3:f62c6c09b707\n-  | |  branch:      new-branch\n-  | |  user:        test\n-  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  | |  summary:     foo\n-  | |\n-  o |  changeset:   2:b1d33a8cadd9\n-  |/   branch:      new-branch\n-  |    user:        test\n+  o |  changeset:   2:5c51d8d6557d\n+  |/   user:        test\n   |    date:        Thu Jan 01 00:00:00 1970 +0000\n-  |    summary:     start new branch\n+  |    summary:     commitC\n   |\n   o  changeset:   1:eca11cf91c71\n   |  user:        test\n@@ -1148,21 +1887,27 @@\n   \n \n   $ hg strip -r 35358f982181\n-  0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n-  saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/35358f982181-a6f020aa-backup.hg\n+  abort: unknown revision \'35358f982181\'\n+  [255]\n   $ hg log -G\n-  @  changeset:   3:f62c6c09b707\n-  |  branch:      new-branch\n-  |  tag:         tip\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     foo\n-  |\n-  o  changeset:   2:b1d33a8cadd9\n-  |  branch:      new-branch\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     start new branch\n+  @    changeset:   4:d8db9d137221\n+  |\\   tag:         tip\n+  | |  parent:      2:5c51d8d6557d\n+  | |  parent:      3:6625a5168474\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     mergeCD\n+  | |\n+  | o  changeset:   3:6625a5168474\n+  | |  parent:      1:eca11cf91c71\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     commitD\n+  | |\n+  o |  changeset:   2:5c51d8d6557d\n+  |/   user:        test\n+  |    date:        Thu Jan 01 00:00:00 1970 +0000\n+  |    summary:     commitC\n   |\n   o  changeset:   1:eca11cf91c71\n   |  user:        test\n@@ -1184,72 +1929,43 @@\n The added file is moved to unknown, which is the behavior we have been seeing for other `hg strip --keep` call.\n \n   $ hg unbundle -u $TESTTMP/issue4736/.hg/strip-backup/35358f982181-a6f020aa-backup.hg\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 2 changesets with 1 changes to 1 files\n-  new changesets 35358f982181:4cf5e92caec2 (2 drafts)\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: $TESTTMP/issue4736/.hg/strip-backup/35358f982181-a6f020aa-backup.hg: $ENOENT$\n+  [255]\n \n   $ hg id\n-  4cf5e92caec2 (new-branch) tip\n+  d8db9d137221 tip\n   $ hg status --rev "f62c6c09b707"\n-  A bar.txt\n+  abort: unknown revision \'f62c6c09b707\'\n+  [255]\n   $ hg diff --rev "f62c6c09b707"\n-  diff -r f62c6c09b707 bar.txt\n-  --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-  +++ b/bar.txt\tThu Jan 01 00:00:00 1970 +0000\n-  @@ -0,0 +1,1 @@\n-  +bar\n+  abort: unknown revision \'f62c6c09b707\'\n+  [255]\n   $ hg log -G -v --rev 35358f982181:: --patch\n-  @    changeset:   5:4cf5e92caec2\n-  |\\   branch:      new-branch\n-  | ~  tag:         tip\n-  |    parent:      3:f62c6c09b707\n-  |    parent:      4:35358f982181\n-  |    user:        test\n+  abort: unknown revision \'35358f982181\'\n+  [255]\n+\n+  $ hg strip -k -r 35358f982181\n+  abort: unknown revision \'35358f982181\'\n+  [255]\n+  $ hg log -G\n+  @    changeset:   4:d8db9d137221\n+  |\\   tag:         tip\n+  | |  parent:      2:5c51d8d6557d\n+  | |  parent:      3:6625a5168474\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     mergeCD\n+  | |\n+  | o  changeset:   3:6625a5168474\n+  | |  parent:      1:eca11cf91c71\n+  | |  user:        test\n+  | |  date:        Thu Jan 01 00:00:00 1970 +0000\n+  | |  summary:     commitD\n+  | |\n+  o |  changeset:   2:5c51d8d6557d\n+  |/   user:        test\n   |    date:        Thu Jan 01 00:00:00 1970 +0000\n-  |    description:\n-  |    merge\n-  |\n-  |\n-  |    diff -r f62c6c09b707 -r 4cf5e92caec2 bar.txt\n-  |    --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-  |    +++ b/bar.txt\tThu Jan 01 00:00:00 1970 +0000\n-  |    @@ -0,0 +1,1 @@\n-  |    +bar\n-  |\n-  o  changeset:   4:35358f982181\n-  |  parent:      1:eca11cf91c71\n-  ~  user:        test\n-     date:        Thu Jan 01 00:00:00 1970 +0000\n-     files:       bar.txt\n-     description:\n-     bar\n-  \n-  \n-     diff -r eca11cf91c71 -r 35358f982181 bar.txt\n-     --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-     +++ b/bar.txt\tThu Jan 01 00:00:00 1970 +0000\n-     @@ -0,0 +1,1 @@\n-     +bar\n-  \n-\n-  $ hg strip -k -r 35358f982181\n-  saved backup bundle to $TESTTMP/issue4736/.hg/strip-backup/35358f982181-a6f020aa-backup.hg\n-  $ hg log -G\n-  @  changeset:   3:f62c6c09b707\n-  |  branch:      new-branch\n-  |  tag:         tip\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     foo\n-  |\n-  o  changeset:   2:b1d33a8cadd9\n-  |  branch:      new-branch\n-  |  user:        test\n-  |  date:        Thu Jan 01 00:00:00 1970 +0000\n-  |  summary:     start new branch\n+  |    summary:     commitC\n   |\n   o  changeset:   1:eca11cf91c71\n   |  user:        test\n@@ -1264,9 +1980,13 @@\n \n   $ hg status -A\n   ? bar.txt\n+  ? foo.txt\n+  ? k\n+  ? l\n   C a\n   C b\n-  C foo.txt\n+  C c\n+  C d\n   $ cat bar.txt\n   bar\n \n@@ -1308,20 +2028,93 @@\n   $ hg testdelayedstrip --config extensions.t=$TESTTMP/delayedstrip.py\n   warning: orphaned descendants detected, not stripping 08ebfeb61bac, 112478962961, 7fb047a69f22\n   saved backup bundle to $TESTTMP/delayedstrip/.hg/strip-backup/f585351a92f8-17475721-I.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\delayedstrip\\.hg\\strip-backup/f585351a92f8-17475721-I.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\delayedstrip\\.hg\\strip-backup/f585351a92f8-08ce7a79-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\delayedstrip\\.hg\\strip-backup/f585351a92f8-08ce7a79-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, mq, strip, t\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "$TESTTMP/delayedstrip.py", line 14, in testdelayedstrip\n+      commands.commit(ui, repo, message=b\'J\', date=b\'0 0\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg log -G -T \'{rev}:{node|short} {desc}\' -r \'sort(all(), topo)\'\n-  @  6:2f2d51af6205 J\n-  |\n-  o  3:08ebfeb61bac I\n-  |\n-  | o  5:64a8289d2492 F\n+  @  10:2f2d51af6205 J\n+  |\n+  o  5:08ebfeb61bac I\n+  |\n+  | o    8:5cb05ba470a7 H\n+  | |\\\n+  | | | o  7:64a8289d2492 F\n+  | | |/\n+  +---o  4:7fb047a69f22 E\n   | |\n-  | o  2:7fb047a69f22 E\n-  |/\n-  | o  4:26805aba1e60 C\n+  | | o  9:f585351a92f8 D\n+  | | |\n+  | | o  6:26805aba1e60 C\n+  | | |\n+  +---o  3:112478962961 B\n   | |\n-  | o  1:112478962961 B\n-  |/\n+  | o  1:1fc8102cda62 G\n+  |\n+  | o  2:48b9aae0607f Z\n+  |\n   o  0:426bada5c675 A\n   \n Test high-level scmutil.cleanupnodes API\n@@ -1363,34 +2156,107 @@\n   $ hg testnodescleanup --config extensions.t=$TESTTMP/scmutilcleanup.py\n   warning: orphaned descendants detected, not stripping 112478962961, 1fc8102cda62, 26805aba1e60\n   saved backup bundle to $TESTTMP/scmutilcleanup/.hg/strip-backup/f585351a92f8-73fb7c03-replace.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\scmutilcleanup\\.hg\\strip-backup/f585351a92f8-73fb7c03-replace.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\scmutilcleanup\\.hg\\strip-backup/f585351a92f8-3629f12a-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\scmutilcleanup\\.hg\\strip-backup/f585351a92f8-3629f12a-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, mq, strip, t\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "$TESTTMP/scmutilcleanup.py", line 18, in testnodescleanup\n+      b\'replace\')\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1359, in __exit__\n+      self.close()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 620, in close\n+      self._postclosecallback[cat](self)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 393, in __call__\n+      strip(self.ui, self.repo, roots, self.backup, self.topic)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ hg log -G -T \'{rev}:{node|short} {desc} {bookmarks}\' -r \'sort(all(), topo)\'\n-  o  8:1473d4b996d1 G2 b-F@divergent3 b-G\n-  |\n-  | o  7:d11b3456a873 F2 b-F\n+  o  12:1473d4b996d1 G2 b-F@divergent3 b-G\n+  |\n+  | o  11:d11b3456a873 F2 b-F\n   | |\n-  | o  5:5cb05ba470a7 H\n+  | o  8:5cb05ba470a7 H\n   |/|\n-  | o  3:7fb047a69f22 E b-F@divergent1\n+  | | o  7:64a8289d2492 F\n+  | |/\n+  | o  4:7fb047a69f22 E b-F@divergent1\n   | |\n-  | | o  6:7c78f703e465 D2 b-D\n+  | | o  10:7c78f703e465 D2 b-D\n   | | |\n-  | | o  4:26805aba1e60 C\n+  | | | o  9:f585351a92f8 D\n+  | | |/\n+  | | o  6:26805aba1e60 C\n   | | |\n-  | | o  2:112478962961 B\n+  | | o  3:112478962961 B\n   | |/\n   o |  1:1fc8102cda62 G\n    /\n+  | o  2:48b9aae0607f Z\n+  |\n+  | o  5:08ebfeb61bac I\n+  |/\n   o  0:426bada5c675 A b-B b-C b-I\n   \n   $ hg bookmark\n      b-B                       0:426bada5c675\n      b-C                       0:426bada5c675\n-     b-D                       6:7c78f703e465\n-     b-F                       7:d11b3456a873\n-     b-F@divergent1            3:7fb047a69f22\n-     b-F@divergent3            8:1473d4b996d1\n-     b-G                       8:1473d4b996d1\n+     b-D                       10:7c78f703e465\n+     b-F                       11:d11b3456a873\n+     b-F@divergent1            4:7fb047a69f22\n+     b-F@divergent3            12:1473d4b996d1\n+     b-G                       12:1473d4b996d1\n      b-I                       0:426bada5c675\n      b-Z                       -1:000000000000\n \n@@ -1453,7 +2319,67 @@\n   $ hg strip .\n   0 files updated, 0 files merged, 1 files removed, 0 files unresolved\n   saved backup bundle to $TESTTMP/issue5678/.hg/strip-backup/489bac576828-bef27e14-backup.hg\n+  strip failed, backup bundle stored in \'$TESTTMP\\issue5678\\.hg\\strip-backup/489bac576828-bef27e14-backup.hg\'\n+  ** Unknown exception encountered with possibly-broken third-party extension "drawdag" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "drawdag" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: drawdag, mq, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg unbundle -q .hg/strip-backup/*\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg debugobsolete\n   cb9a9f314b8b07ba71012fcdbc544b5a4d82ff5b 489bac576828490c0bb8d45eac9e5e172e4ec0a8 0 (Thu Jan 01 00:00:00 1970 +0000) {\'ef1\': \'1\', \'operation\': \'amend\', \'user\': \'test\'}\n   $ cd ..\n', 1319, 1321, 'truncated \\uXXXX escape') decoding diff, sorry

test-subrepo-deep-nested-change.t

--- c:/hgdev/src/tests/test-subrepo-deep-nested-change.t
+++ c:/hgdev/src/tests/test-subrepo-deep-nested-change.t.err
@@ -196,6 +196,12 @@
   linking [              <=>                              ] 4
 (no-eol) (esc) (reposimplestore !)
   linking [               <=>                             ] 5
 (no-eol) (esc) (reposimplestore !)
   linking [                <=>                            ] 6
 (no-eol) (esc) (reposimplestore !)
+  linking [         <=>                                   ] 1
 (no-eol) (esc)
+  linking [          <=>                                  ] 2
 (no-eol) (esc)
+  linking [           <=>                                 ] 3
 (no-eol) (esc)
+  linking [            <=>                                ] 4
 (no-eol) (esc)
+  linking [             <=>                               ] 5
 (no-eol) (esc)
+  linking [              <=>                              ] 6
 (no-eol) (esc)
   updating [===========================================>] 1/1
 (no-eol) (esc)
                                                               
 (no-eol) (esc)
   updating to branch default

test-subrepo-missing.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-subrepo-missing.t\n+++ c:/hgdev/src/tests/test-subrepo-missing.t.err\n@@ -111,6 +111,55 @@\n \n   $ hg ci -m "amended subrepo (again)"\n   $ hg --config extensions.strip= --hidden strip -R subrepo -qr \'tip\' --config devel.strip-obsmarkers=no\n+  strip failed, backup bundle stored in \'$TESTTMP\\repo\\subrepo\\.hg\\strip-backup/143ee824a2ef-ac732f06-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg verify\n   checking changesets\n   checking manifests\n@@ -120,7 +169,6 @@\n   checking subrepo links\n   subrepo \'subrepo\' is hidden in revision a66de08943b6\n   subrepo \'subrepo\' is hidden in revision 674d05939c1e\n-  subrepo \'subrepo\' not found in revision a7d05d9055a4\n \n verifying shouldn\'t init a new subrepo if the reference doesn\'t exist\n \n', 2281, 2283, 'truncated \\uXXXX escape') decoding diff, sorry

test-subrepo-recursion.t

--- c:/hgdev/src/tests/test-subrepo-recursion.t
+++ c:/hgdev/src/tests/test-subrepo-recursion.t.err
@@ -471,7 +471,15 @@
 #else
   $ hg clone -U . ../empty
   
 (no-eol) (esc)
-  linking [ <=>                                           ] 1 (no-eol)
+  linking [ <=>                                           ] 1
 (no-eol) (esc)
+  linking [  <=>                                          ] 2
 (no-eol) (esc)
+  linking [   <=>                                         ] 3
 (no-eol) (esc)
+  linking [    <=>                                        ] 4
 (no-eol) (esc)
+  linking [     <=>                                       ] 5
 (no-eol) (esc)
+  linking [      <=>                                      ] 6
 (no-eol) (esc)
+  linking [       <=>                                     ] 7
 (no-eol) (esc)
+  linking [        <=>                                    ] 8
 (no-eol) (esc)
+                                                              
 (no-eol) (esc)
 #endif
 
   $ cd ../empty
@@ -536,6 +544,33 @@
                                                               
 (no-eol) (esc)
   
 (no-eol) (esc)
   linking [ <=>                                           ] 1
 (no-eol) (esc)
+  linking [  <=>                                          ] 2
 (no-eol) (esc)
+  linking [   <=>                                         ] 3
 (no-eol) (esc)
+  linking [    <=>                                        ] 4
 (no-eol) (esc)
+  linking [     <=>                                       ] 5
 (no-eol) (esc)
+  linking [      <=>                                      ] 6
 (no-eol) (esc)
+  linking [       <=>                                     ] 7
 (no-eol) (esc)
+  linking [        <=>                                    ] 8
 (no-eol) (esc)
+                                                              
 (no-eol) (esc)
+  
 (no-eol) (esc)
+  archiving (foo) [                                     ] 0/3
 (no-eol) (esc)
+  archiving (foo) [===========>                         ] 1/3
 (no-eol) (esc)
+  archiving (foo) [=======================>             ] 2/3
 (no-eol) (esc)
+  archiving (foo) [====================================>] 3/3
 (no-eol) (esc)
+                                                              
 (no-eol) (esc)
+  
 (no-eol) (esc)
+  linking [ <=>                                           ] 1
 (no-eol) (esc)
+  linking [  <=>                                          ] 2
 (no-eol) (esc)
+  linking [   <=>                                         ] 3
 (no-eol) (esc)
+  linking [    <=>                                        ] 4
 (no-eol) (esc)
+  linking [     <=>                                       ] 5
 (no-eol) (esc)
+  linking [      <=>                                      ] 6
 (no-eol) (esc)
+                                                              
 (no-eol) (esc)
+  
 (no-eol) (esc)
+  archiving (foo\bar) [                                 ] 0/1
 (no-eol) (esc)
+  archiving (foo\bar) [================================>] 1/1
 (no-eol) (esc)
+                                                              
 (no-eol) (esc)
+  cloning subrepo foo from $TESTTMP/repo/foo
   cloning subrepo foo/bar from $TESTTMP/repo/foo/bar
 #endif
 

test-subrepo-relative-path.t

--- c:/hgdev/src/tests/test-subrepo-relative-path.t
+++ c:/hgdev/src/tests/test-subrepo-relative-path.t.err
@@ -183,6 +183,8 @@
   3 files updated, 0 files merged, 0 files removed, 0 files unresolved
 
   $ killdaemons.py
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
 subrepo paths with ssh urls
 

test-subrepo.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-subrepo.t\n+++ c:/hgdev/src/tests/test-subrepo.t.err\n@@ -315,8 +315,9 @@\n   resolving manifests\n    branchmerge: True, force: False, partial: False\n    ancestor: 6747d179aa9a, local: 20a0db6fbf6c+, remote: 7af322bc1198\n+  starting 4 threads for background file closing\n+  starting 4 threads for background file closing (?)\n    preserving t for resolve of t\n-  starting 4 threads for background file closing (?)\n    t: versions differ -> m (premerge)\n   picked tool \':merge\' for t (binary False symlink False changedelete False)\n   merging t\n@@ -471,6 +472,55 @@\n   > EOF\n   $ hg strip -r 11:15\n   saved backup bundle to $TESTTMP/t/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\t\\.hg\\strip-backup/7b4cc7fa91c4-9a50d1bc-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n clone\n \n@@ -478,17 +528,12 @@\n   $ hg clone t tc\n   updating to branch default\n   cloning subrepo s from $TESTTMP/t/s\n-  cloning subrepo s/ss from $TESTTMP/t/s/ss\n-  cloning subrepo t from $TESTTMP/t/t\n   3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ cd tc\n   $ hg debugsub\n   path s\n    source   s\n-   revision fc627a69481fcbe5f1135069e8a3881c023e4cf5\n-  path t\n-   source   t\n-   revision 20a0db6fbf6c3d2836e6519a642ae929bfc67c0e\n+   revision e4ece1bf43360ddc8f6a96432201a37b7cd27ae4\n   $ cd ..\n \n clone with subrepo disabled (update should fail)\n@@ -543,23 +588,19 @@\n \n   $ cd tc\n   $ echo bah > t/t\n+  $TESTTMP.sh: line 313: t/t: $ENOENT$\n+  [1]\n   $ hg ci -m11\n-  committing subrepository t\n+  nothing changed\n+  [1]\n   $ hg push\n   pushing to $TESTTMP/t\n-  no changes made to subrepo s/ss since last push to $TESTTMP/t/s/ss\n   no changes made to subrepo s since last push to $TESTTMP/t/s\n-  pushing subrepo t to $TESTTMP/t/t\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n+  searching for changes\n+  no changes found\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n push -f\n \n@@ -568,48 +609,36 @@\n   committing subrepository s\n   $ hg push\n   pushing to $TESTTMP/t\n-  no changes made to subrepo s/ss since last push to $TESTTMP/t/s/ss\n   pushing subrepo s to $TESTTMP/t/s\n   searching for changes\n-  abort: push creates new remote head 12a213df6fa9 (in subrepository "s")\n+  abort: push creates new remote head 0fba05b21d19 (in subrepository "s")\n   (merge or see \'hg help push\' for details about pushing new heads)\n   [255]\n   $ hg push -f\n   pushing to $TESTTMP/t\n-  pushing subrepo s/ss to $TESTTMP/t/s/ss\n-  searching for changes\n-  no changes found\n   pushing subrepo s to $TESTTMP/t/s\n   searching for changes\n   adding changesets\n   adding manifests\n   adding file changes\n   added 1 changesets with 1 changes to 1 files (+1 heads)\n-  pushing subrepo t to $TESTTMP/t/t\n-  searching for changes\n-  no changes found\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n+  searching for changes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n check that unmodified subrepos are not pushed\n \n   $ hg clone . ../tcc\n   updating to branch default\n   cloning subrepo s from $TESTTMP/tc/s\n-  cloning subrepo s/ss from $TESTTMP/tc/s/ss\n-  cloning subrepo t from $TESTTMP/tc/t\n   3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n \n the subrepos on the new clone have nothing to push to its source\n \n   $ hg push -R ../tcc .\n   pushing to .\n-  no changes made to subrepo s/ss since last push to s/ss\n   no changes made to subrepo s since last push to s\n-  no changes made to subrepo t since last push to t\n   searching for changes\n   no changes found\n   [1]\n@@ -619,13 +648,7 @@\n \n   $ hg push ../tcc\n   pushing to ../tcc\n-  pushing subrepo s/ss to ../tcc/s/ss\n-  searching for changes\n-  no changes found\n   pushing subrepo s to ../tcc/s\n-  searching for changes\n-  no changes found\n-  pushing subrepo t to ../tcc/t\n   searching for changes\n   no changes found\n   searching for changes\n@@ -636,9 +659,7 @@\n \n   $ hg push ../tcc\n   pushing to ../tcc\n-  no changes made to subrepo s/ss since last push to ../tcc/s/ss\n   no changes made to subrepo s since last push to ../tcc/s\n-  no changes made to subrepo t since last push to ../tcc/t\n   searching for changes\n   no changes found\n   [1]\n@@ -650,108 +671,93 @@\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg push\n   pushing to $TESTTMP/t\n-  no changes made to subrepo s/ss since last push to $TESTTMP/t/s/ss\n   no changes made to subrepo s since last push to $TESTTMP/t/s\n-  no changes made to subrepo t since last push to $TESTTMP/t/t\n-  searching for changes\n-  no changes found\n-  [1]\n+  searching for changes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo foo >> s/a\n   $ hg push\n   pushing to $TESTTMP/t\n-  no changes made to subrepo s/ss since last push to $TESTTMP/t/s/ss\n   no changes made to subrepo s since last push to $TESTTMP/t/s\n-  no changes made to subrepo t since last push to $TESTTMP/t/t\n-  searching for changes\n-  no changes found\n+  searching for changes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg -R s update -C tip\n+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+\n+committing into a subrepo makes its store (but not its parent\'s store) dirty\n+\n+  $ echo foo >> s/ss/a\n+  $TESTTMP.sh: line 345: s/ss/a: $ENOENT$\n   [1]\n-  $ hg -R s update -C tip\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-\n-committing into a subrepo makes its store (but not its parent\'s store) dirty\n-\n-  $ echo foo >> s/ss/a\n   $ hg -R s/ss commit -m \'test dirty store detection\'\n+  abort: repository s/ss not found\n+  [255]\n \n   $ hg out -S -r `hg log -r tip -T "{node|short}"`\n   comparing with $TESTTMP/t\n   searching for changes\n-  no changes found\n-  comparing with $TESTTMP/t/s\n-  searching for changes\n-  no changes found\n-  comparing with $TESTTMP/t/s/ss\n-  searching for changes\n-  changeset:   1:79ea5566a333\n+  changeset:   16:25b829acfcdc\n   tag:         tip\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     test dirty store detection\n+  summary:     12\n   \n-  comparing with $TESTTMP/t/t\n+  comparing with $TESTTMP/t/s\n   searching for changes\n   no changes found\n \n   $ hg push\n   pushing to $TESTTMP/t\n-  pushing subrepo s/ss to $TESTTMP/t/s/ss\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n   no changes made to subrepo s since last push to $TESTTMP/t/s\n-  no changes made to subrepo t since last push to $TESTTMP/t/t\n+  searching for changes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+a subrepo store may be clean versus one repo but not versus another\n+\n+  $ hg push\n+  pushing to $TESTTMP/t\n+  no changes made to subrepo s since last push to $TESTTMP/t/s\n+  searching for changes\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg push ../tcc\n+  pushing to ../tcc\n+  no changes made to subrepo s since last push to ../tcc/s\n   searching for changes\n   no changes found\n   [1]\n \n-a subrepo store may be clean versus one repo but not versus another\n-\n-  $ hg push\n-  pushing to $TESTTMP/t\n-  no changes made to subrepo s/ss since last push to $TESTTMP/t/s/ss\n-  no changes made to subrepo s since last push to $TESTTMP/t/s\n-  no changes made to subrepo t since last push to $TESTTMP/t/t\n-  searching for changes\n-  no changes found\n-  [1]\n-  $ hg push ../tcc\n-  pushing to ../tcc\n-  pushing subrepo s/ss to ../tcc/s/ss\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  no changes made to subrepo s since last push to ../tcc/s\n-  no changes made to subrepo t since last push to ../tcc/t\n-  searching for changes\n-  no changes found\n-  [1]\n-\n update\n \n   $ cd ../t\n   $ hg up -C # discard our earlier merge\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  updated to "c373c8102e68: 12"\n-  2 other heads for branch "default"\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  updated to "e45c8b14af55: 10"\n+  6 other heads for branch "default"\n   $ echo blah > t/t\n   $ hg ci -m13\n   committing subrepository t\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n backout calls revert internally with minimal opts, which should not raise\n KeyError\n \n   $ hg backout ".^" --no-commit\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  changeset c373c8102e68 backed out, don\'t forget to commit.\n+  abort: uncommitted changes\n+  [20]\n \n   $ hg up -C # discard changes\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  updated to "925c17564ef8: 13"\n-  2 other heads for branch "default"\n+  updated to "e45c8b14af55: 10"\n+  6 other heads for branch "default"\n \n pull\n \n@@ -759,46 +765,22 @@\n   $ hg pull\n   pulling from $TESTTMP/t\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  new changesets 925c17564ef8\n-  (run \'hg update\' to get a working copy)\n+  no changes found\n \n should pull t\n \n   $ hg incoming -S -r `hg log -r tip -T "{node|short}"`\n   comparing with $TESTTMP/t\n-  no changes found\n-  comparing with $TESTTMP/t/s\n-  searching for changes\n-  no changes found\n-  comparing with $TESTTMP/t/s/ss\n-  searching for changes\n-  no changes found\n-  comparing with $TESTTMP/t/t\n-  searching for changes\n-  changeset:   5:52c0adc0515a\n-  tag:         tip\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     13\n-  \n+  abort: unknown revision \'25b829acfcdc\'\n+  [255]\n \n   $ hg up\n-  pulling subrepo t from $TESTTMP/t/t\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 1 changesets with 1 changes to 1 files\n-  new changesets 52c0adc0515a\n   0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  updated to "925c17564ef8: 13"\n-  2 other heads for branch "default"\n+  updated to "25b829acfcdc: 12"\n+  6 other heads for branch "default"\n   $ cat t/t\n-  blah\n+  cat: t/t: $ENOENT$\n+  [1]\n \n bogus subrepo path aborts\n \n@@ -1278,6 +1260,7 @@\n   ../shared/subrepo-2/.hg/wcache/checklink (symlink !)\n   ../shared/subrepo-2/.hg/wcache/checklink-target (symlink !)\n   ../shared/subrepo-2/.hg/wcache/manifestfulltextcache (reporevlogstore !)\n+  ../shared/subrepo-2/.hg/wcache/manifestfulltextcache\n   ../shared/subrepo-2/file\n   $ hg -R ../shared in\n   abort: repository default not found\n@@ -1315,8 +1298,8 @@\n   ? s/c\n   $ hg update -C\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  updated to "925c17564ef8: 13"\n-  2 other heads for branch "default"\n+  updated to "e45c8b14af55: 10"\n+  6 other heads for branch "default"\n   $ hg status -S\n   ? s/b\n   ? s/c\n@@ -1324,81 +1307,64 @@\n Sticky subrepositories, no changes\n   $ cd $TESTTMP/t\n   $ hg id\n-  925c17564ef8 tip\n-  $ hg -R s id\n-  12a213df6fa9 tip\n-  $ hg -R t id\n-  52c0adc0515a tip\n-  $ hg update 11\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  $ hg id\n-  365661e5936a\n+  e45c8b14af55\n   $ hg -R s id\n   fc627a69481f\n   $ hg -R t id\n-  e95bcfa18a35\n+  20a0db6fbf6c\n+  $ hg update 11\n+  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  $ hg id\n+  7b4cc7fa91c4\n+  $ hg -R s id\n+  e4ece1bf4336\n+  $ hg -R t id\n+  000000000000\n \n Sticky subrepositories, file changes\n   $ touch s/f1\n   $ touch t/f1\n   $ hg add -S s/f1\n   $ hg add -S t/f1\n+  abort: path \'t\\f1\' is inside nested repo \'t\'\n+  [255]\n   $ hg id\n-  365661e5936a+\n+  7b4cc7fa91c4+\n   $ hg -R s id\n-  fc627a69481f+\n+  e4ece1bf4336+\n   $ hg -R t id\n-  e95bcfa18a35+\n+  000000000000\n   $ hg update tip\n-   subrepository s diverged (local revision: fc627a69481f, remote revision: 12a213df6fa9)\n-  you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination].\n-  what do you want to do? m\n-   subrepository sources for s differ\n-  you can use (l)ocal source (fc627a69481f) or (r)emote source (12a213df6fa9).\n-  what do you want to do? l\n-   subrepository t diverged (local revision: e95bcfa18a35, remote revision: 52c0adc0515a)\n-  you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination].\n-  what do you want to do? m\n-   subrepository sources for t differ\n-  you can use (l)ocal source (e95bcfa18a35) or (r)emote source (52c0adc0515a).\n-  what do you want to do? l\n   0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg id\n-  925c17564ef8+ tip\n+  0c90e2be51d6+ tip\n   $ hg -R s id\n-  fc627a69481f+\n+  e4ece1bf4336+\n   $ hg -R t id\n-  e95bcfa18a35+\n+  000000000000\n   $ hg update --clean tip\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n \n Sticky subrepository, revision updates\n   $ hg id\n-  925c17564ef8 tip\n+  0c90e2be51d6 tip\n   $ hg -R s id\n-  12a213df6fa9 tip\n+  e4ece1bf4336\n   $ hg -R t id\n-  52c0adc0515a tip\n+  000000000000\n   $ cd s\n   $ hg update -r -2\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ cd ../t\n   $ hg update -r 2\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ cd ..\n   $ hg update 10\n-   subrepository s diverged (local revision: 12a213df6fa9, remote revision: fc627a69481f)\n-  you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination].\n-  what do you want to do? m\n-   subrepository t diverged (local revision: 52c0adc0515a, remote revision: 20a0db6fbf6c)\n-  you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination].\n-  what do you want to do? m\n-   subrepository sources for t differ (in checked out version)\n-  you can use (l)ocal source (7af322bc1198) or (r)emote source (20a0db6fbf6c).\n-  what do you want to do? l\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: uncommitted changes\n+  (commit or update --clean to discard changes)\n+  [255]\n   $ hg id\n-  e45c8b14af55+\n+  0c90e2be51d6+ tip\n   $ hg -R s id\n   02dcf1d70411\n   $ hg -R t id\n@@ -1409,75 +1375,64 @@\n   $ touch t/f1\n   $ hg add -S s/f1\n   $ hg add -S t/f1\n+  abort: path \'t\\f1\' is inside nested repo \'t\'\n+  [255]\n   $ hg id\n-  e45c8b14af55+\n+  0c90e2be51d6+ tip\n   $ hg -R s id\n   02dcf1d70411+\n   $ hg -R t id\n-  7af322bc1198+\n+  7af322bc1198\n   $ hg update tip\n-   subrepository s diverged (local revision: 12a213df6fa9, remote revision: 12a213df6fa9)\n-  you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination].\n-  what do you want to do? m\n-   subrepository sources for s differ\n-  you can use (l)ocal source (02dcf1d70411) or (r)emote source (12a213df6fa9).\n-  what do you want to do? l\n-   subrepository t diverged (local revision: 52c0adc0515a, remote revision: 52c0adc0515a)\n-  you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination].\n-  what do you want to do? m\n-   subrepository sources for t differ\n-  you can use (l)ocal source (7af322bc1198) or (r)emote source (52c0adc0515a).\n-  what do you want to do? l\n   0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg id\n-  925c17564ef8+ tip\n+  0c90e2be51d6+ tip\n   $ hg -R s id\n   02dcf1d70411+\n   $ hg -R t id\n-  7af322bc1198+\n+  7af322bc1198\n \n Sticky repository, update --clean\n   $ hg update --clean tip\n   1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg id\n-  925c17564ef8 tip\n+  0c90e2be51d6 tip\n   $ hg -R s id\n-  12a213df6fa9 tip\n+  e4ece1bf4336\n   $ hg -R t id\n-  52c0adc0515a tip\n+  7af322bc1198\n \n Test subrepo already at intended revision:\n   $ cd s\n   $ hg update fc627a69481f\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ cd ..\n   $ hg update 11\n-   subrepository s diverged (local revision: 12a213df6fa9, remote revision: fc627a69481f)\n-  you can (m)erge, keep (l)ocal [working copy] or keep (r)emote [destination].\n-  what do you want to do? m\n-  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg id -n\n   11+\n   $ hg -R s id\n   fc627a69481f\n   $ hg -R t id\n-  e95bcfa18a35\n+  7af322bc1198\n \n Test that removing .hgsubstate doesn\'t break anything:\n \n   $ hg rm -f .hgsubstate\n   $ hg ci -mrm\n-  nothing changed\n-  [1]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -vr tip\n-  changeset:   13:925c17564ef8\n+  changeset:   15:0c90e2be51d6\n   tag:         tip\n+  parent:      6:1831e14459c4\n+  parent:      11:7b4cc7fa91c4\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n   files:       .hgsubstate\n   description:\n-  13\n+  local changed, remote removed, keep removed\n   \n   \n \n@@ -1485,33 +1440,42 @@\n \n   $ hg rm .hgsub\n   $ hg ci -mrm2\n-  created new head\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -vr tip\n-  changeset:   14:2400bccd50af\n+  changeset:   15:0c90e2be51d6\n   tag:         tip\n-  parent:      11:365661e5936a\n+  parent:      6:1831e14459c4\n+  parent:      11:7b4cc7fa91c4\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  files:       .hgsub .hgsubstate\n+  files:       .hgsubstate\n   description:\n-  rm2\n+  local changed, remote removed, keep removed\n   \n   \n Test issue3153: diff -S with deleted subrepos\n \n   $ hg diff --nodates -S -c .\n-  diff -r 365661e5936a -r 2400bccd50af .hgsub\n+  diff -r 1f14a2e2d3ec -r 7b4cc7fa91c4 .hgsub\n   --- a/.hgsub\n-  +++ /dev/null\n-  @@ -1,2 +0,0 @@\n-  -s = s\n+  +++ b/.hgsub\n+  @@ -1,2 +1,1 @@\n+   s = s\n   -t = t\n-  diff -r 365661e5936a -r 2400bccd50af .hgsubstate\n+  diff -r 1f14a2e2d3ec -r 7b4cc7fa91c4 .hgsubstate\n   --- a/.hgsubstate\n-  +++ /dev/null\n-  @@ -1,2 +0,0 @@\n-  -fc627a69481fcbe5f1135069e8a3881c023e4cf5 s\n-  -e95bcfa18a358dc4936da981ebf4147b4cad1362 t\n+  +++ b/.hgsubstate\n+  @@ -1,2 +1,1 @@\n+   e4ece1bf43360ddc8f6a96432201a37b7cd27ae4 s\n+  -60ca1237c19474e7a3978b0dc1ca4e6f36d51382 t\n+  diff -r 60ca1237c194 t/t\n+  --- a/t/t\n+  +++ b/t/t\n+  @@ -1,1 +1,1 @@\n+  -t\n+  +t3\n \n Test behavior of add for explicit path in subrepo:\n   $ cd ..\n@@ -1691,25 +1655,80 @@\n   $ echo phasecheck1 >> s/ss/a\n   $ hg -R s commit -S --config phases.checksubrepos=abort -m phasecheck1\n   committing subrepository ss\n-  transaction abort!\n-  rollback completed\n-  abort: can\'t commit in draft phase conflicting secret from subrepository ss\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2127, in _docommit\n+      node = cmdutil.commit(ui, repo, commitfunc, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2754, in commit\n+      return commitfunc(ui, repo, message, matcher, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2124, in commitfunc\n+      extra=extra,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ echo phasecheck2 >> s/ss/a\n   $ hg -R s commit -S --config phases.checksubrepos=ignore -m phasecheck2\n   committing subrepository ss\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg -R s/ss phase tip\n+  2: secret\n+  $ hg -R s phase tip\n+  5: public\n+  $ echo phasecheck3 >> s/ss/a\n+  $ hg -R s commit -S -m phasecheck3\n+  committing subrepository ss\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg -R s/ss phase tip\n   3: secret\n   $ hg -R s phase tip\n-  6: draft\n-  $ echo phasecheck3 >> s/ss/a\n-  $ hg -R s commit -S -m phasecheck3\n-  committing subrepository ss\n-  warning: changes are committed in secret phase from subrepository ss\n-  $ hg -R s/ss phase tip\n-  4: secret\n-  $ hg -R s phase tip\n-  7: secret\n+  5: public\n \n   $ cat >> t/.hg/hgrc <<EOF\n   > [phases]\n@@ -1722,20 +1741,17 @@\n   $ echo phasecheck4 >>   s/ss/a\n   $ echo phasecheck4 >>   t/t\n   $ hg commit -S -m phasecheck4\n-  committing subrepository s\n-  committing subrepository s/ss\n-  warning: changes are committed in secret phase from subrepository ss\n-  committing subrepository t\n-  warning: changes are committed in secret phase from subrepository s\n-  created new head\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg -R s/ss phase tip\n-  5: secret\n+  3: secret\n   $ hg -R s phase tip\n-  8: secret\n+  5: public\n   $ hg -R t phase tip\n-  6: draft\n+  4: draft\n   $ hg phase tip\n-  15: secret\n+  15: draft\n \n   $ cd ..\n \n@@ -1758,11 +1774,16 @@\n \n   $ cd t\n   $ hg update -q 15\n+  abort: uncommitted changes\n+  (commit or update --clean to discard changes)\n+  [255]\n   $ cat > .hgsub <<EOF\n   > s = s\n   > EOF\n   $ hg commit -m "16"\n-  warning: changes are committed in secret phase from subrepository s\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n (addition of ".hgsub" itself)\n \n@@ -1805,15 +1826,11 @@\n (removal of existing entry)\n \n   $ hg diff --nodates -c 16 .hgsubstate\n-  diff -r 8bec38d2bd0b -r f2f70bc3d3c9 .hgsubstate\n-  --- a/.hgsubstate\n-  +++ b/.hgsubstate\n-  @@ -1,2 +1,1 @@\n-   0731af8ca9423976d3743119d0865097c07bdc1b s\n-  -e202dc79b04c88a636ea8913d9182a1346d9b3dc t\n+  abort: unknown revision \'16\'\n+  [255]\n   $ hg log -r 16 --template "{p1node|short} {p2node|short}\\n{subrepos % \'{subrepo}\\n\'}"\n-  8bec38d2bd0b 000000000000\n-  t\n+  abort: unknown revision \'16\'\n+  [255]\n \n (merging)\n \n@@ -1860,58 +1877,42 @@\n   default = $TESTTMP/t/s\n   default-push = /foo/bar/s\n   $ cat s/ss/.hg/hgrc\n-  [paths]\n-  default = $TESTTMP/t/s/ss\n-  default-push = /foo/bar/s/ss\n+  cat: s/ss/.hg/hgrc: $ENOENT$\n+  [1]\n   $ cat t/.hg/hgrc\n-  [paths]\n-  default = $TESTTMP/t/t\n-  default-push = /foo/bar/t\n+  cat: t/.hg/hgrc: $ENOENT$\n+  [1]\n \n   $ cd $TESTTMP/t\n   $ hg up -qC 0\n   $ echo \'bar\' > bar.txt\n   $ hg ci -Am \'branch before subrepo add\'\n+  adding .hgsub\n+  adding .hgsubstate\n   adding bar.txt\n-  created new head\n+  committing subrepository s\n+  committing subrepository s\\ss\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg merge -r "first(subrepo(\'s\'))"\n-  2 files updated, 0 files merged, 0 files removed, 0 files unresolved\n-  (branch merge, don\'t forget to commit)\n+  abort: nothing to merge\n+  (use \'hg update\' or check \'hg heads\')\n+  [255]\n   $ hg status -S -X \'.hgsub*\'\n-  A s/a\n-  ? s/b\n-  ? s/c\n-  ? s/f1\n+  ? bar.txt\n   $ hg status -S --rev \'p2()\'\n-  A bar.txt\n-  ? s/b\n-  ? s/c\n-  ? s/f1\n+  abort: empty revision range\n+  [255]\n   $ hg diff -S -X \'.hgsub*\' --nodates\n-  diff -r 000000000000 s/a\n-  --- /dev/null\n-  +++ b/s/a\n-  @@ -0,0 +1,1 @@\n-  +a\n   $ hg diff -S --rev \'p2()\' --nodates\n-  diff -r 7cf8cfea66e4 bar.txt\n-  --- /dev/null\n-  +++ b/bar.txt\n-  @@ -0,0 +1,1 @@\n-  +bar\n+  abort: empty revision range\n+  [255]\n \n   $ hg diff -X \'.hgsub*\' --nodates s\n-  diff -r 000000000000 s/a\n-  --- /dev/null\n-  +++ b/s/a\n-  @@ -0,0 +1,1 @@\n-  +a\n   $ hg diff -X \'.hgsub*\' --nodates s/a\n-  diff -r 000000000000 s/a\n-  --- /dev/null\n-  +++ b/s/a\n-  @@ -0,0 +1,1 @@\n-  +a\n+  abort: path \'s\\a\' is inside nested repo \'s\'\n+  [255]\n \n   $ cd ..\n \n@@ -2007,24 +2008,22 @@\n   scanning source...\n   sorting...\n   converting...\n-  17 0\n-  16 1\n-  15 2\n-  14 3\n-  13 4\n-  12 5\n-  11 6\n-  10 7\n-  9 8\n-  8 9\n-  7 10\n-  6 11\n-  5 12\n-  4 13\n-  3 rm2\n-  2 phasecheck4\n-  1 16\n-  0 branch before subrepo add\n+  15 0\n+  14 1\n+  13 2\n+  12 3\n+  11 4\n+  10 5\n+  9 6\n+  8 7\n+  7 8\n+  6 9\n+  5 10\n+  4 11\n+  3 local removed, remote changed, keep changed\n+  2 local removed, remote changed, keep removed\n+  1 local changed, remote removed, keep changed\n+  0 local changed, remote removed, keep removed\n \n  converted .hgsubstate should point to valid nodes:\n \n', 2699, 2701, 'truncated \\uXXXX escape') decoding diff, sorry

test-tag.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-tag.t\n+++ c:/hgdev/src/tests/test-tag.t.err\n@@ -320,12 +320,60 @@\n   HG: branch \'tag-and-branch-same-name\'\n   HG: changed .hgtags\n   ====\n-  transaction abort!\n-  rollback completed\n   note: commit message saved in .hg/last-message.txt\n   note: use \'hg commit --logfile .hg/last-message.txt --edit\' to reuse it\n-  abort: pretxncommit.unexpectedabort hook exited with status 1\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 7264, in tag\n+      editor=editor,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\tags.py", line 592, in tag\n+      _tag(repo, names, node, message, local, user, date, editor=editor)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\tags.py", line 662, in _tag\n+      message, user, date, extra=extra, match=m, editor=editor\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cat .hg/last-message.txt\n   custom tag message\n   second line\n@@ -352,21 +400,24 @@\n   HG: branch \'tag-and-branch-same-name\'\n   HG: changed .hgtags\n   ====\n-  hook: tag changes detected\n-  hook: +A 75a534207be6b03576e0c7a4fa5708d045f1c876 custom-tag\n+  note: commit message saved in .hg/last-message.txt\n+  note: use \'hg commit --logfile .hg/last-message.txt --edit\' to reuse it\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -l1 --template "{desc}\\n"\n-  custom tag message\n-  second line\n+  Added tag tag-and-branch-same-name for changeset fc93d2ea1cd7\n \n \n local tag with .hgtags modified\n \n   $ hg tag hgtags-modified\n-  hook: tag changes detected\n-  hook: +A 0f26aaea6f74c3ed6c4aad8844403c9ba128d23a hgtags-modified\n+  abort: working copy of .hgtags is changed\n+  (please commit .hgtags manually)\n+  [255]\n   $ hg rollback\n-  repository tip rolled back to revision 13 (undo commit)\n-  working directory now based on revision 13\n+  repository tip rolled back to revision 11 (undo commit)\n+  working directory now based on revision 11\n   $ hg st\n   M .hgtags\n   ? .hgtags.orig\n@@ -378,30 +429,29 @@\n tagging when at named-branch-head that\'s not a topo-head\n \n   $ hg up default\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ hg merge -t internal:local\n   0 files updated, 1 files merged, 0 files removed, 0 files unresolved\n   (branch merge, don\'t forget to commit)\n   $ hg ci -m \'merge named branch\'\n-  hook: tag changes detected\n-  hook: -R acb14030fe0a21b60322c440ad2d20cf7685a376 bleah\n-  hook: -R acb14030fe0a21b60322c440ad2d20cf7685a376 bleah bleah\n-  hook: -R acb14030fe0a21b60322c440ad2d20cf7685a376 bleah0\n-  hook: -R acb14030fe0a21b60322c440ad2d20cf7685a376 bleahbleah\n-  hook: -R 336fccc858a4eb69609a291105009e484a6b6b8d gawk\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up 13\n-  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: unknown revision \'13\'\n+  [255]\n   $ hg tag new-topo-head\n-  hook: tag changes detected\n-  hook: +A 0f26aaea6f74c3ed6c4aad8844403c9ba128d23a new-topo-head\n+  abort: uncommitted merge\n+  [20]\n \n tagging on null rev\n \n   $ hg up null\n-  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  abort: outstanding uncommitted merge\n+  [255]\n   $ hg tag nullrev\n-  abort: working directory is not at a branch head (use -f to force)\n-  [10]\n+  abort: uncommitted merge\n+  [20]\n \n   $ hg init empty\n   $ hg tag -R empty nullrev\n@@ -420,52 +470,61 @@\n   > evolution.createmarkers=True\n   > EOF\n   $ hg up e4d483960b9b --quiet\n+  abort: unknown revision \'e4d483960b9b\'\n+  [255]\n   $ echo aaa >>a\n   $ hg ci -maaa\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -r . -T "{node}\\n"\n-  743b3afd5aa69f130c246806e48ad2e699f490d2\n+  2bba354f91afd1982ff5e7b5053621937acdd330\n   $ hg tag issue5539\n-  hook: tag changes detected\n-  hook: +A 743b3afd5aa69f130c246806e48ad2e699f490d2 issue5539\n+  abort: uncommitted merge\n+  [20]\n   $ cat .hgtags\n   acb14030fe0a21b60322c440ad2d20cf7685a376 foobar\n   a0eea09de1eeec777b46f2085260a373b2fbc293 newline\n-  743b3afd5aa69f130c246806e48ad2e699f490d2 issue5539\n   $ hg log -r . -T "{node}\\n"\n-  abeb261f0508ecebcd345ce21e7a25112df417aa\n+  2bba354f91afd1982ff5e7b5053621937acdd330\n (mimic \'hg prune\' command by obsoleting current changeset and then moving to its parent)\n   $ hg debugobsolete abeb261f0508ecebcd345ce21e7a25112df417aa --record-parents\n-  1 new obsolescence markers\n-  obsoleted 1 changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg up ".^" --quiet\n+  abort: outstanding uncommitted merge\n+  [255]\n   $ cat .hgtags\n   acb14030fe0a21b60322c440ad2d20cf7685a376 foobar\n   a0eea09de1eeec777b46f2085260a373b2fbc293 newline\n   $ echo bbb >>a\n   $ hg ci -mbbb\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -r . -T "{node}\\n"\n-  089dd20da58cae34165c37b064539c6ac0c6a0dd\n+  2bba354f91afd1982ff5e7b5053621937acdd330\n   $ hg tag issue5539\n-  hook: tag changes detected\n-  hook: -M 743b3afd5aa69f130c246806e48ad2e699f490d2 issue5539\n-  hook: +M 089dd20da58cae34165c37b064539c6ac0c6a0dd issue5539\n+  abort: uncommitted merge\n+  [20]\n   $ hg id\n-  0accf560a709 tip\n+  2bba354f91af+5b446958a3d0+\n   $ cat .hgtags\n   acb14030fe0a21b60322c440ad2d20cf7685a376 foobar\n   a0eea09de1eeec777b46f2085260a373b2fbc293 newline\n-  089dd20da58cae34165c37b064539c6ac0c6a0dd issue5539\n   $ hg tags\n-  tip                               19:0accf560a709\n-  issue5539                         18:089dd20da58c\n-  new-topo-head                     13:0f26aaea6f74\n-  baz                               13:0f26aaea6f74\n-  custom-tag                        12:75a534207be6\n-  tag-and-branch-same-name          11:fc93d2ea1cd7\n+  tip                               11:fc93d2ea1cd7\n+  baz                               11:fc93d2ea1cd7\n   newline                            9:a0eea09de1ee\n   localnewline                       8:c2899151f4e7\n+  gawk                               2:336fccc858a4\n   localblah                          0:acb14030fe0a\n   foobar                             0:acb14030fe0a\n+  bleahbleah                         0:acb14030fe0a\n+  bleah0                             0:acb14030fe0a\n+  bleah bleah                        0:acb14030fe0a\n+  bleah                              0:acb14030fe0a\n \n   $ cd ..\n \n', 2310, 2312, 'truncated \\uXXXX escape') decoding diff, sorry

test-tags.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-tags.t\n+++ c:/hgdev/src/tests/test-tags.t.err\n@@ -99,10 +99,8 @@\n   $ fnodescacheexists\n   fnodes cache exists\n   $ f --size --hexdump .hg/cache/hgtagsfnodes1\n-  .hg/cache/hgtagsfnodes1: size=48\n-  0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  0010: ff ff ff ff ff ff ff ff b9 15 46 36 26 b7 b4 a7 |..........F6&...|\n-  0020: 73 e0 9e e3 c5 2f 51 0e 19 e0 5e 1f f9 66 d8 59 |s..../Q...^..f.Y|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n   $ hg debugtagscache\n   0 acb14030fe0a21b60322c440ad2d20cf7685a376 missing/invalid\n   1 b9154636be938d3d431e75a7c906504a079bfe07 26b7b4a773e09ee3c52f510e19e05e1ff966d859\n@@ -116,10 +114,8 @@\n   $ fnodescacheexists\n   fnodes cache exists\n   $ f --size --hexdump .hg/cache/hgtagsfnodes1\n-  .hg/cache/hgtagsfnodes1: size=48\n-  0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  0010: ff ff ff ff ff ff ff ff b9 15 46 36 26 b7 b4 a7 |..........F6&...|\n-  0020: 73 e0 9e e3 c5 2f 51 0e 19 e0 5e 1f f9 66 d8 59 |s..../Q...^..f.Y|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n And again, but now unable to write tag cache or lock file:\n \n@@ -202,10 +198,8 @@\n tags info is accessed\n \n   $ f --size --hexdump .hg/cache/hgtagsfnodes1\n-  .hg/cache/hgtagsfnodes1: size=48\n-  0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  0010: ff ff ff ff ff ff ff ff b9 15 46 36 26 b7 b4 a7 |..........F6&...|\n-  0020: 73 e0 9e e3 c5 2f 51 0e 19 e0 5e 1f f9 66 d8 59 |s..../Q...^..f.Y|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n   $ hg id\n   c8edf04160c7 tip\n@@ -213,12 +207,8 @@\n First 4 bytes of record 3 are changeset fragment\n \n   $ f --size --hexdump .hg/cache/hgtagsfnodes1\n-  .hg/cache/hgtagsfnodes1: size=72\n-  0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  0010: ff ff ff ff ff ff ff ff b9 15 46 36 26 b7 b4 a7 |..........F6&...|\n-  0020: 73 e0 9e e3 c5 2f 51 0e 19 e0 5e 1f f9 66 d8 59 |s..../Q...^..f.Y|\n-  0030: c8 ed f0 41 00 00 00 00 00 00 00 00 00 00 00 00 |...A............|\n-  0040: 00 00 00 00 00 00 00 00                         |........|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n Merge the two heads:\n \n@@ -342,15 +332,8 @@\n   78391a272241d70354aa14c874552cad6b51bb42 bar\n \n   $ f --size --hexdump .hg/cache/hgtagsfnodes1\n-  .hg/cache/hgtagsfnodes1: size=120\n-  0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  0010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  0020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  0030: 7a 94 12 77 0c 04 f2 a8 af 31 de 17 fa b7 42 28 |z..w.....1....B(|\n-  0040: 78 ee 5a 2d ad bc 94 3d 6f a4 50 21 7d 3b 71 8c |x.Z-...=o.P!};q.|\n-  0050: 96 4e f3 7b 89 e5 50 eb da fd 57 89 e7 6c e1 b0 |.N.{..P...W..l..|\n-  0060: 0c 19 2d 7d 0c 04 f2 a8 af 31 de 17 fa b7 42 28 |..-}.....1....B(|\n-  0070: 78 ee 5a 2d ad bc 94 3d                         |x.Z-...=|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n Corrupt the .hgtags fnodes cache\n Extra junk data at the end should get overwritten on next cache update\n@@ -439,67 +422,130 @@\n   bar                                1:78391a272241\n \n   $ f --size .hg/cache/hgtagsfnodes1\n-  .hg/cache/hgtagsfnodes1: size=144\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n   $ hg -q --config extensions.strip= strip -r 5 --no-backup\n-  $ hg tags\n-  tip                                4:0c192d7d5e6b\n+  ** Unknown exception encountered with possibly-broken third-party extension "mock" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "mock" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: blackbox, mock, strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n+  $ hg tags\n+  tip                                5:8dbfe60eff30\n   bar                                1:78391a272241\n \n   $ hg blackbox -l 5\n-  1970/01/01 00:00:00 bob @0c192d7d5e6b78a714de54a2e9627952a877e25a (5000)> writing 24 bytes to cache/hgtagsfnodes1\n-  1970/01/01 00:00:00 bob @0c192d7d5e6b78a714de54a2e9627952a877e25a (5000)> 2/4 cache hits/lookups in * seconds (glob)\n-  1970/01/01 00:00:00 bob @0c192d7d5e6b78a714de54a2e9627952a877e25a (5000)> writing .hg/cache/tags2-visible with 1 tags\n+  1970/01/01 00:00:00 bob @8dbfe60eff306a54259cfe007db9e330e7ecf866 (5000)> -q --config "extensions.strip=" strip -r 5 --no-backup\n+  1970/01/01 00:00:00 bob @0c192d7d5e6b78a714de54a2e9627952a877e25a (5000)> -q --config "extensions.strip=" strip -r 5 --no-backup exited 1 after 0.13 seconds\n+  1970/01/01 00:00:00 bob @0c192d7d5e6b78a714de54a2e9627952a877e25a (5000)> tags\n   1970/01/01 00:00:00 bob @0c192d7d5e6b78a714de54a2e9627952a877e25a (5000)> tags exited 0 after * seconds (glob)\n   1970/01/01 00:00:00 bob @0c192d7d5e6b78a714de54a2e9627952a877e25a (5000)> blackbox -l 5\n \n   $ f --size .hg/cache/hgtagsfnodes1\n-  .hg/cache/hgtagsfnodes1: size=120\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n   $ echo dummy > foo\n   $ hg commit -m throwaway3\n-\n-  $ hg tags\n-  tip                                5:035f65efb448\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+  $ hg tags\n+  tip                                5:8dbfe60eff30\n   bar                                1:78391a272241\n \n   $ hg blackbox -l 6\n-  1970/01/01 00:00:00 bob @035f65efb448350f4772141702a81ab1df48c465 (5000)> tags\n-  1970/01/01 00:00:00 bob @035f65efb448350f4772141702a81ab1df48c465 (5000)> writing 24 bytes to cache/hgtagsfnodes1\n-  1970/01/01 00:00:00 bob @035f65efb448350f4772141702a81ab1df48c465 (5000)> 3/4 cache hits/lookups in * seconds (glob)\n-  1970/01/01 00:00:00 bob @035f65efb448350f4772141702a81ab1df48c465 (5000)> writing .hg/cache/tags2-visible with 1 tags\n-  1970/01/01 00:00:00 bob @035f65efb448350f4772141702a81ab1df48c465 (5000)> tags exited 0 after * seconds (glob)\n-  1970/01/01 00:00:00 bob @035f65efb448350f4772141702a81ab1df48c465 (5000)> blackbox -l 6\n+  1970/01/01 00:00:00 bob @0c192d7d5e6b78a714de54a2e9627952a877e25a (5000)> blackbox -l 5 exited 0 after 0.08 seconds\n+  1970/01/01 00:00:00 bob @0c192d7d5e6b78a714de54a2e9627952a877e25a (5000)> commit -m throwaway3\n+  1970/01/01 00:00:00 bob @0c192d7d5e6b78a714de54a2e9627952a877e25a (5000)> commit -m throwaway3 exited 255 after 0.09 seconds\n+  1970/01/01 00:00:00 bob @0c192d7d5e6b78a714de54a2e9627952a877e25a (5000)> tags\n+  1970/01/01 00:00:00 bob @0c192d7d5e6b78a714de54a2e9627952a877e25a (5000)> tags exited 0 after 0.07 seconds\n+  1970/01/01 00:00:00 bob @0c192d7d5e6b78a714de54a2e9627952a877e25a (5000)> blackbox -l 6\n   $ f --size .hg/cache/hgtagsfnodes1\n-  .hg/cache/hgtagsfnodes1: size=144\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n   $ hg -q --config extensions.strip= strip -r 5 --no-backup\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Test tag removal:\n \n   $ hg tag --remove bar     # rev 5\n+  abort: working directory is not at a branch head (use -f to force)\n+  [10]\n   $ hg tip -vp\n-  changeset:   5:5f6e8655b1c7\n+  changeset:   5:8dbfe60eff30\n   tag:         tip\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  files:       .hgtags\n+  files:       foo\n   description:\n-  Removed tag bar\n-  \n-  \n-  diff -r 0c192d7d5e6b -r 5f6e8655b1c7 .hgtags\n-  --- a/.hgtags\tThu Jan 01 00:00:00 1970 +0000\n-  +++ b/.hgtags\tThu Jan 01 00:00:00 1970 +0000\n-  @@ -1,1 +1,3 @@\n-   bbd179dfa0a71671c253b3ae0aa1513b60d199fa bar\n-  +78391a272241d70354aa14c874552cad6b51bb42 bar\n-  +0000000000000000000000000000000000000000 bar\n-  \n-  $ hg tags\n-  tip                                5:5f6e8655b1c7\n+  throwaway1\n+  \n+  \n+  diff -r 0c192d7d5e6b -r 8dbfe60eff30 foo\n+  --- a/foo\tThu Jan 01 00:00:00 1970 +0000\n+  +++ b/foo\tThu Jan 01 00:00:00 1970 +0000\n+  @@ -1,2 +1,1 @@\n+  -foo\n+  -\n+  +dummy1\n+  \n+  $ hg tags\n+  tip                                5:8dbfe60eff30\n+  bar                                1:78391a272241\n   $ hg tags                 # again, try to expose cache bugs\n-  tip                                5:5f6e8655b1c7\n+  tip                                5:8dbfe60eff30\n+  bar                                1:78391a272241\n \n Remove nonexistent tag:\n \n@@ -507,23 +553,24 @@\n   abort: tag \'foobar\' does not exist\n   [10]\n   $ hg tip\n-  changeset:   5:5f6e8655b1c7\n+  changeset:   5:8dbfe60eff30\n   tag:         tip\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     Removed tag bar\n+  summary:     throwaway1\n   \n \n Undo a tag with rollback:\n \n   $ hg rollback             # destroy rev 5 (restore bar)\n-  repository tip rolled back to revision 4 (undo commit)\n-  working directory now based on revision 4\n-  $ hg tags\n-  tip                                4:0c192d7d5e6b\n-  bar                                1:78391a272241\n-  $ hg tags\n-  tip                                4:0c192d7d5e6b\n+  abort: rollback of last commit while not checked out may lose data\n+  (use -f to force)\n+  [255]\n+  $ hg tags\n+  tip                                5:8dbfe60eff30\n+  bar                                1:78391a272241\n+  $ hg tags\n+  tip                                5:8dbfe60eff30\n   bar                                1:78391a272241\n \n Test tag rank:\n@@ -564,23 +611,89 @@\n \n   $ hg --config extensions.mq= strip 5\n   saved backup bundle to $TESTTMP/t3/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\t3\\.hg\\strip-backup/85f05169d91d-2fd4b252-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\t3\\.hg\\strip-backup/85f05169d91d-06f0d12e-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\t3\\.hg\\strip-backup/85f05169d91d-06f0d12e-temp.hg\'")\n+  ** Unknown exception encountered with possibly-broken third-party extension "mock" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "mock" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: blackbox, mock, mq, strip\n+  warning: ignoring unknown working parent 735c3ca72986!\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg tags                  # partly stale cache\n-  tip                                5:735c3ca72986\n-  bar                                1:78391a272241\n+  tip                                6:735c3ca72986\n+  bar                                0:bbd179dfa0a7\n   $ hg tags                  # up-to-date cache\n-  tip                                5:735c3ca72986\n-  bar                                1:78391a272241\n+  tip                                6:735c3ca72986\n+  bar                                0:bbd179dfa0a7\n \n Strip 2: destroy whole branch, no old head exposed\n \n   $ hg --config extensions.mq= strip 4\n   saved backup bundle to $TESTTMP/t3/.hg/strip-backup/*-backup.hg (glob)\n+  strip failed, backup bundle stored in \'$TESTTMP\\t3\\.hg\\strip-backup/03708296c288-3ff8e60d-backup.hg\'\n+  strip failed, unrecovered changes stored in \'$TESTTMP\\t3\\.hg\\strip-backup/03708296c288-06f0d12e-temp.hg\'\n+  (fix the problem, then recover the changesets with "hg unbundle \'$TESTTMP\\t3\\.hg\\strip-backup/03708296c288-06f0d12e-temp.hg\'")\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg tags                  # partly stale\n-  tip                                4:735c3ca72986\n+  tip                                6:735c3ca72986\n   bar                                0:bbd179dfa0a7\n   $ rm -f .hg/cache/tags2-visible\n   $ hg tags                  # cold cache\n-  tip                                4:735c3ca72986\n+  tip                                6:735c3ca72986\n   bar                                0:bbd179dfa0a7\n \n Test tag rank with 3 heads:\n@@ -728,13 +841,8 @@\n Cache should contain the head only, even though other nodes have tags data\n \n   $ f --size --hexdump tagsclient/.hg/cache/hgtagsfnodes1\n-  tagsclient/.hg/cache/hgtagsfnodes1: size=96\n-  0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  0010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  0020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  0030: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  0040: ff ff ff ff ff ff ff ff 40 f0 35 8c 19 e0 a7 d3 |........@.5.....|\n-  0050: 8a 5c 6a 82 4d cf fb a5 87 d0 2f a3 1e 4f 2f 8a |.\\j.M...../..O/.|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n Running hg tags should produce tags2* file and not change cache\n \n@@ -751,13 +859,8 @@\n   tags2-visible\n \n   $ f --size --hexdump tagsclient/.hg/cache/hgtagsfnodes1\n-  tagsclient/.hg/cache/hgtagsfnodes1: size=96\n-  0000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  0010: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  0020: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  0030: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff |................|\n-  0040: ff ff ff ff ff ff ff ff 40 f0 35 8c 19 e0 a7 d3 |........@.5.....|\n-  0050: 8a 5c 6a 82 4d cf fb a5 87 d0 2f a3 1e 4f 2f 8a |.\\j.M...../..O/.|\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n Check that the bundle includes cache data\n \n', 5506, 5508, 'truncated \\uXXXX escape') decoding diff, sorry

test-template-map.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-template-map.t\n+++ c:/hgdev/src/tests/test-template-map.t.err\n@@ -139,7 +139,7 @@\n   $ mkdir somedir\n   $ echo "__base__ = somedir" > map-base-dir\n   $ hg log -l1 -T./map-base-dir\n-  abort: Is a directory: \'$TESTTMP/a/somedir\'\n+  abort: $TESTTMP\\a\\somedir: Access is denied\n   [255]\n \n Test including a built-in template map\n@@ -344,6 +344,55 @@\n tests.\n \n   $ hg --config extensions.strip= strip -q .\n+  strip failed, backup bundle stored in \'$TESTTMP\\a\\.hg\\strip-backup/505a602d9b4e-ae113124-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: strip\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Revision with no copies (used to print a traceback):\n \n@@ -353,7 +402,10 @@\n Compact style works:\n \n   $ hg log -Tcompact\n-  8[tip]   95c24699272e   2020-01-01 10:01 +0000   test\n+  9[tip]   505a602d9b4e   1970-01-01 00:00 +0000   test\n+    \n+  \n+  8   95c24699272e   2020-01-01 10:01 +0000   test\n     third\n   \n   7:-1   29114dbae42b   1970-01-12 13:46 +0000   user\n@@ -382,7 +434,10 @@\n   \n \n   $ hg log -v --style compact\n-  8[tip]   95c24699272e   2020-01-01 10:01 +0000   test\n+  9[tip]   505a602d9b4e   1970-01-01 00:00 +0000   test\n+    \n+  \n+  8   95c24699272e   2020-01-01 10:01 +0000   test\n     third\n   \n   7:-1   29114dbae42b   1970-01-12 13:46 +0000   User Name <user@hostname>\n@@ -415,7 +470,10 @@\n   \n \n   $ hg log --debug --style compact\n-  8[tip]:7,-1   95c24699272e   2020-01-01 10:01 +0000   test\n+  9[tip]:8,-1   505a602d9b4e   1970-01-01 00:00 +0000   test\n+    \n+  \n+  8:7,-1   95c24699272e   2020-01-01 10:01 +0000   test\n     third\n   \n   7:-1,-1   29114dbae42b   1970-01-12 13:46 +0000   User Name <user@hostname>\n@@ -457,8 +515,13 @@\n   $ hg log --style xml\n   <?xml version="1.0"?>\n   <log>\n+  <logentry revision="9" node="505a602d9b4ef254ef7beb9b4ed03a155210708e">\n+  <tag>tip</tag>\n+  <author email="test">test</author>\n+  <date>1970-01-01T00:00:00+00:00</date>\n+  <msg xml:space="preserve"></msg>\n+  </logentry>\n   <logentry revision="8" node="95c24699272ef57d062b8bccc32c878bf841784a">\n-  <tag>tip</tag>\n   <author email="test">test</author>\n   <date>2020-01-01T10:01:00+00:00</date>\n   <msg xml:space="preserve">third</msg>\n@@ -517,8 +580,16 @@\n   $ hg log -v --style xml\n   <?xml version="1.0"?>\n   <log>\n+  <logentry revision="9" node="505a602d9b4ef254ef7beb9b4ed03a155210708e">\n+  <tag>tip</tag>\n+  <author email="test">test</author>\n+  <date>1970-01-01T00:00:00+00:00</date>\n+  <msg xml:space="preserve"></msg>\n+  <paths>\n+  <path action="A">c</path>\n+  </paths>\n+  </logentry>\n   <logentry revision="8" node="95c24699272ef57d062b8bccc32c878bf841784a">\n-  <tag>tip</tag>\n   <author email="test">test</author>\n   <date>2020-01-01T10:01:00+00:00</date>\n   <msg xml:space="preserve">third</msg>\n@@ -607,8 +678,19 @@\n   $ hg log --debug --style xml\n   <?xml version="1.0"?>\n   <log>\n+  <logentry revision="9" node="505a602d9b4ef254ef7beb9b4ed03a155210708e">\n+  <tag>tip</tag>\n+  <parent revision="8" node="95c24699272ef57d062b8bccc32c878bf841784a" />\n+  <parent revision="-1" node="0000000000000000000000000000000000000000" />\n+  <author email="test">test</author>\n+  <date>1970-01-01T00:00:00+00:00</date>\n+  <msg xml:space="preserve"></msg>\n+  <paths>\n+  <path action="A">c</path>\n+  </paths>\n+  <extra key="branch">default</extra>\n+  </logentry>\n   <logentry revision="8" node="95c24699272ef57d062b8bccc32c878bf841784a">\n-  <tag>tip</tag>\n   <parent revision="7" node="29114dbae42b9f078cf2714dbe3a86bba8ec7453" />\n   <parent revision="-1" node="0000000000000000000000000000000000000000" />\n   <author email="test">test</author>\n@@ -778,9 +860,7 @@\n     ],\n     \'phase\': \'draft\',\n     \'rev\': 8,\n-    \'tags\': [\n-     \'tip\'\n-    ],\n+    \'tags\': [],\n     \'user\': \'test\'\n    }\n   ]\n@@ -826,7 +906,7 @@\n     "parents": ["29114dbae42b9f078cf2714dbe3a86bba8ec7453"],\n     "phase": "draft",\n     "rev": 8,\n-    "tags": ["tip"],\n+    "tags": [],\n     "user": "test"\n    }\n   ]\n@@ -845,13 +925,25 @@\n     "parents": ["29114dbae42b9f078cf2714dbe3a86bba8ec7453"],\n     "phase": "draft",\n     "rev": 8,\n+    "tags": [],\n+    "user": "test"\n+   }\n+  ]\n+\n+  $ hg log -T json\n+  [\n+   {\n+    "bookmarks": [],\n+    "branch": "default",\n+    "date": [0, 0],\n+    "desc": "",\n+    "node": "505a602d9b4ef254ef7beb9b4ed03a155210708e",\n+    "parents": ["95c24699272ef57d062b8bccc32c878bf841784a"],\n+    "phase": "draft",\n+    "rev": 9,\n     "tags": ["tip"],\n     "user": "test"\n-   }\n-  ]\n-\n-  $ hg log -T json\n-  [\n+   },\n    {\n     "bookmarks": [],\n     "branch": "default",\n@@ -861,7 +953,7 @@\n     "parents": ["29114dbae42b9f078cf2714dbe3a86bba8ec7453"],\n     "phase": "draft",\n     "rev": 8,\n-    "tags": ["tip"],\n+    "tags": [],\n     "user": "test"\n    },\n    {\n@@ -967,13 +1059,13 @@\n    {\n     "bookmarks": [],\n     "branch": "default",\n-    "date": [1577872860, 0],\n-    "desc": "third",\n-    "files": ["fourth", "second", "third"],\n-    "node": "95c24699272ef57d062b8bccc32c878bf841784a",\n-    "parents": ["29114dbae42b9f078cf2714dbe3a86bba8ec7453"],\n-    "phase": "draft",\n-    "rev": 8,\n+    "date": [0, 0],\n+    "desc": "",\n+    "files": ["c"],\n+    "node": "505a602d9b4ef254ef7beb9b4ed03a155210708e",\n+    "parents": ["95c24699272ef57d062b8bccc32c878bf841784a"],\n+    "phase": "draft",\n+    "rev": 9,\n     "tags": ["tip"],\n     "user": "test"\n    },\n@@ -1007,6 +1099,23 @@\n \n   $ hg log --debug -Tjson\n   [\n+   {\n+    "added": ["c"],\n+    "bookmarks": [],\n+    "branch": "default",\n+    "date": [0, 0],\n+    "desc": "",\n+    "extra": {"branch": "default"},\n+    "manifest": "991760a017190b0ea6c2341e6d75a1666b4d6d26",\n+    "modified": [],\n+    "node": "505a602d9b4ef254ef7beb9b4ed03a155210708e",\n+    "parents": ["95c24699272ef57d062b8bccc32c878bf841784a"],\n+    "phase": "draft",\n+    "removed": [],\n+    "rev": 9,\n+    "tags": ["tip"],\n+    "user": "test"\n+   },\n    {\n     "added": ["fourth", "third"],\n     "bookmarks": [],\n@@ -1021,7 +1130,7 @@\n     "phase": "draft",\n     "removed": ["second"],\n     "rev": 8,\n-    "tags": ["tip"],\n+    "tags": [],\n     "user": "test"\n    },\n    {\n@@ -1164,8 +1273,8 @@\n \n   $ hg log -l2 -T\'json(rev, parents)\'\n   [\n-   {"parents": ["29114dbae42b9f078cf2714dbe3a86bba8ec7453"], "rev": 8},\n-   {"parents": ["0000000000000000000000000000000000000000"], "rev": 7}\n+   {"parents": ["95c24699272ef57d062b8bccc32c878bf841784a"], "rev": 9},\n+   {"parents": ["29114dbae42b9f078cf2714dbe3a86bba8ec7453"], "rev": 8}\n   ]\n \n   $ hg log -qr. -T\'json(rev, parents)\'\n@@ -1219,7 +1328,8 @@\n   $ hg log -r\'.^:\' -T\'json(copies)\' --copies\n   [\n    {"copies": {}},\n-   {"copies": {"fourth": "second"}}\n+   {"copies": {"fourth": "second"}},\n+   {"copies": {}}\n   ]\n \n   $ hg log -r. -T\'json()\'\n@@ -1279,7 +1389,7 @@\n Error if style is a directory:\n \n   $ hg log --style somedir\n-  abort: Is a directory: \'somedir\'\n+  abort: somedir: Access is denied\n   [255]\n \n Error if style is a directory whose name is a built-in style:\n@@ -1317,6 +1427,7 @@\n \n   $ echo \'{rev}\' > q\n   $ hg log --style ./t\n+  9\n   8\n   7\n   6\n@@ -1328,7 +1439,13 @@\n   0\n \n   $ hg phase -r 5 --public\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg phase -r 7 --secret --force\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Missing non-standard names give no error (backward compatibility):\n \n@@ -1342,6 +1459,7 @@\n   > c = q\n   > EOF\n   $ hg log --style ./t\n+  9\n   8\n   7\n   6\n@@ -1357,6 +1475,7 @@\n   $ echo \'[ui]\' > .hg/hgrc\n   $ echo \'style = t\' >> .hg/hgrc\n   $ hg log\n+  9\n   8\n   7\n   6\n@@ -1372,11 +1491,17 @@\n   $ hg log --style=changelog > changelog\n \n   $ cat changelog\n+  1970-01-01  test  <test>\n+  \n+  \t* c:\n+  \t\n+  \t[505a602d9b4e] [tip]\n+  \n   2020-01-01  test  <test>\n   \n   \t* fourth, second, third:\n   \tthird\n-  \t[95c24699272e] [tip]\n+  \t[95c24699272e]\n   \n   1970-01-12  User Name  <user@hostname>\n   \n@@ -1428,11 +1553,11 @@\n Issue2130: xml output for \'hg heads\' is malformed\n \n   $ hg heads --style changelog\n-  2020-01-01  test  <test>\n-  \n-  \t* fourth, second, third:\n-  \tthird\n-  \t[95c24699272e] [tip]\n+  1970-01-01  test  <test>\n+  \n+  \t* c:\n+  \t\n+  \t[505a602d9b4e] [tip]\n   \n   1970-01-18  person  <person>\n   \n@@ -1450,6 +1575,9 @@\n   $ echo a > a\n   $ hg add a\n   $ hg ci -m future\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Add a commit that does all possible modifications at once\n \n@@ -1458,7 +1586,12 @@\n   $ hg add b\n   $ hg mv fourth fifth\n   $ hg rm a\n+  not removing a: file has been marked for add (use \'hg forget\' to undo add)\n+  [1]\n   $ hg ci -m "Modify, add, remove, rename"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Check the status template\n \n@@ -1468,137 +1601,91 @@\n   > EOF\n \n   $ hg log -T status -r 10\n-  changeset:   10:0f9759ec227a\n-  tag:         tip\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     Modify, add, remove, rename\n+  changeset:   3:10e46f2dcbf4\n+  user:        person\n+  date:        Fri Jan 16 01:06:40 1970 +0000\n+  summary:     no user, no domain\n   files:\n-  M third\n-  A b\n-  A fifth\n-  R a\n-  R fourth\n+  M c\n   \n   $ hg log -T status -C -r 10\n-  changeset:   10:0f9759ec227a\n-  tag:         tip\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  summary:     Modify, add, remove, rename\n+  changeset:   3:10e46f2dcbf4\n+  user:        person\n+  date:        Fri Jan 16 01:06:40 1970 +0000\n+  summary:     no user, no domain\n   files:\n-  M third\n-  A b\n-  A fifth\n-    fourth\n-  R a\n-  R fourth\n+  M c\n   \n   $ hg log -T status -C -r 10 -v\n-  changeset:   10:0f9759ec227a\n-  tag:         tip\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n+  changeset:   3:10e46f2dcbf4\n+  user:        person\n+  date:        Fri Jan 16 01:06:40 1970 +0000\n   description:\n-  Modify, add, remove, rename\n+  no user, no domain\n   \n   files:\n-  M third\n-  A b\n-  A fifth\n-    fourth\n-  R a\n-  R fourth\n+  M c\n   \n   $ hg log -T status -C -r 10 --debug\n-  changeset:   10:0f9759ec227a4859c2014a345cd8a859022b7c6c\n-  tag:         tip\n-  phase:       secret\n-  parent:      9:bf9dfba36635106d6a73ccc01e28b762da60e066\n+  changeset:   3:10e46f2dcbf4823578cf180f33ecf0b957964c47\n+  phase:       draft\n+  parent:      2:97054abb4ab824450e9164180baf491ae0078465\n   parent:      -1:0000000000000000000000000000000000000000\n-  manifest:    8:89dd546f2de0a9d6d664f58d86097eb97baba567\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n+  manifest:    3:cb5a1327723bada42f117e4c55a303246eaf9ccc\n+  user:        person\n+  date:        Fri Jan 16 01:06:40 1970 +0000\n   extra:       branch=default\n   description:\n-  Modify, add, remove, rename\n+  no user, no domain\n   \n   files:\n-  M third\n-  A b\n-  A fifth\n-    fourth\n-  R a\n-  R fourth\n+  M c\n   \n   $ hg log -T status -C -r 10 --quiet\n-  10:0f9759ec227a\n+  3:10e46f2dcbf4\n   $ hg --color=debug log -T status -r 10\n-  [log.changeset changeset.secret|changeset:   10:0f9759ec227a]\n-  [log.tag|tag:         tip]\n-  [log.user|user:        test]\n-  [log.date|date:        Thu Jan 01 00:00:00 1970 +0000]\n-  [log.summary|summary:     Modify, add, remove, rename]\n+  [log.changeset changeset.draft|changeset:   3:10e46f2dcbf4]\n+  [log.user|user:        person]\n+  [log.date|date:        Fri Jan 16 01:06:40 1970 +0000]\n+  [log.summary|summary:     no user, no domain]\n   [ui.note log.files|files:]\n-  [status.modified|M third]\n-  [status.added|A b]\n-  [status.added|A fifth]\n-  [status.removed|R a]\n-  [status.removed|R fourth]\n+  [status.modified|M c]\n   \n   $ hg --color=debug log -T status -C -r 10\n-  [log.changeset changeset.secret|changeset:   10:0f9759ec227a]\n-  [log.tag|tag:         tip]\n-  [log.user|user:        test]\n-  [log.date|date:        Thu Jan 01 00:00:00 1970 +0000]\n-  [log.summary|summary:     Modify, add, remove, rename]\n+  [log.changeset changeset.draft|changeset:   3:10e46f2dcbf4]\n+  [log.user|user:        person]\n+  [log.date|date:        Fri Jan 16 01:06:40 1970 +0000]\n+  [log.summary|summary:     no user, no domain]\n   [ui.note log.files|files:]\n-  [status.modified|M third]\n-  [status.added|A b]\n-  [status.added|A fifth]\n-  [status.copied|  fourth]\n-  [status.removed|R a]\n-  [status.removed|R fourth]\n+  [status.modified|M c]\n   \n   $ hg --color=debug log -T status -C -r 10 -v\n-  [log.changeset changeset.secret|changeset:   10:0f9759ec227a]\n-  [log.tag|tag:         tip]\n-  [log.user|user:        test]\n-  [log.date|date:        Thu Jan 01 00:00:00 1970 +0000]\n+  [log.changeset changeset.draft|changeset:   3:10e46f2dcbf4]\n+  [log.user|user:        person]\n+  [log.date|date:        Fri Jan 16 01:06:40 1970 +0000]\n   [ui.note log.description|description:]\n-  [ui.note log.description|Modify, add, remove, rename]\n+  [ui.note log.description|no user, no domain]\n   \n   [ui.note log.files|files:]\n-  [status.modified|M third]\n-  [status.added|A b]\n-  [status.added|A fifth]\n-  [status.copied|  fourth]\n-  [status.removed|R a]\n-  [status.removed|R fourth]\n+  [status.modified|M c]\n   \n   $ hg --color=debug log -T status -C -r 10 --debug\n-  [log.changeset changeset.secret|changeset:   10:0f9759ec227a4859c2014a345cd8a859022b7c6c]\n-  [log.tag|tag:         tip]\n-  [log.phase|phase:       secret]\n-  [log.parent changeset.secret|parent:      9:bf9dfba36635106d6a73ccc01e28b762da60e066]\n+  [log.changeset changeset.draft|changeset:   3:10e46f2dcbf4823578cf180f33ecf0b957964c47]\n+  [log.phase|phase:       draft]\n+  [log.parent changeset.draft|parent:      2:97054abb4ab824450e9164180baf491ae0078465]\n   [log.parent changeset.public|parent:      -1:0000000000000000000000000000000000000000]\n-  [ui.debug log.manifest|manifest:    8:89dd546f2de0a9d6d664f58d86097eb97baba567]\n-  [log.user|user:        test]\n-  [log.date|date:        Thu Jan 01 00:00:00 1970 +0000]\n+  [ui.debug log.manifest|manifest:    3:cb5a1327723bada42f117e4c55a303246eaf9ccc]\n+  [log.user|user:        person]\n+  [log.date|date:        Fri Jan 16 01:06:40 1970 +0000]\n   [ui.debug log.extra|extra:       branch=default]\n   [ui.note log.description|description:]\n-  [ui.note log.description|Modify, add, remove, rename]\n+  [ui.note log.description|no user, no domain]\n   \n   [ui.note log.files|files:]\n-  [status.modified|M third]\n-  [status.added|A b]\n-  [status.added|A fifth]\n-  [status.copied|  fourth]\n-  [status.removed|R a]\n-  [status.removed|R fourth]\n+  [status.modified|M c]\n   \n   $ hg --color=debug log -T status -C -r 10 --quiet\n-  [log.node|10:0f9759ec227a]\n+  [log.node|3:10e46f2dcbf4]\n \n Check the bisect template\n \n@@ -1640,7 +1727,7 @@\n   $ hg log --debug -T bisect -r 0:4\n   changeset:   0:1e4e1b8f71e05681d422154f5421e385fec3454f\n   bisect:      good (implicit)\n-  phase:       public\n+  phase:       draft\n   parent:      -1:0000000000000000000000000000000000000000\n   parent:      -1:0000000000000000000000000000000000000000\n   manifest:    0:a0c8bcbbb45c63b90b70ad007bf38961f64f2af0\n@@ -1655,7 +1742,7 @@\n   \n   changeset:   1:b608e9d1a3f0273ccf70fb85fd6866b3482bf965\n   bisect:      good\n-  phase:       public\n+  phase:       draft\n   parent:      0:1e4e1b8f71e05681d422154f5421e385fec3454f\n   parent:      -1:0000000000000000000000000000000000000000\n   manifest:    1:4e8d705b1e53e3f9375e0e60dc7b525d8211fe55\n@@ -1672,7 +1759,7 @@\n   \n   changeset:   2:97054abb4ab824450e9164180baf491ae0078465\n   bisect:      untested\n-  phase:       public\n+  phase:       draft\n   parent:      1:b608e9d1a3f0273ccf70fb85fd6866b3482bf965\n   parent:      -1:0000000000000000000000000000000000000000\n   manifest:    2:6e0e82995c35d0d57a52aca8da4e56139e06b4b1\n@@ -1686,7 +1773,7 @@\n   \n   changeset:   3:10e46f2dcbf4823578cf180f33ecf0b957964c47\n   bisect:      bad\n-  phase:       public\n+  phase:       draft\n   parent:      2:97054abb4ab824450e9164180baf491ae0078465\n   parent:      -1:0000000000000000000000000000000000000000\n   manifest:    3:cb5a1327723bada42f117e4c55a303246eaf9ccc\n@@ -1763,25 +1850,25 @@\n   \n   \n   $ hg --color=debug log -T bisect -r 0:4\n-  [log.changeset changeset.public|changeset:   0:1e4e1b8f71e0]\n+  [log.changeset changeset.draft|changeset:   0:1e4e1b8f71e0]\n   [log.bisect bisect.good|bisect:      good (implicit)]\n   [log.user|user:        User Name <user@hostname>]\n   [log.date|date:        Mon Jan 12 13:46:40 1970 +0000]\n   [log.summary|summary:     line 1]\n   \n-  [log.changeset changeset.public|changeset:   1:b608e9d1a3f0]\n+  [log.changeset changeset.draft|changeset:   1:b608e9d1a3f0]\n   [log.bisect bisect.good|bisect:      good]\n   [log.user|user:        A. N. Other <other@place>]\n   [log.date|date:        Tue Jan 13 17:33:20 1970 +0000]\n   [log.summary|summary:     other 1]\n   \n-  [log.changeset changeset.public|changeset:   2:97054abb4ab8]\n+  [log.changeset changeset.draft|changeset:   2:97054abb4ab8]\n   [log.bisect bisect.untested|bisect:      untested]\n   [log.user|user:        other@place]\n   [log.date|date:        Wed Jan 14 21:20:00 1970 +0000]\n   [log.summary|summary:     no person]\n   \n-  [log.changeset changeset.public|changeset:   3:10e46f2dcbf4]\n+  [log.changeset changeset.draft|changeset:   3:10e46f2dcbf4]\n   [log.bisect bisect.bad|bisect:      bad]\n   [log.user|user:        person]\n   [log.date|date:        Fri Jan 16 01:06:40 1970 +0000]\n@@ -1795,9 +1882,9 @@\n   [log.summary|summary:     new branch]\n   \n   $ hg --color=debug log --debug -T bisect -r 0:4\n-  [log.changeset changeset.public|changeset:   0:1e4e1b8f71e05681d422154f5421e385fec3454f]\n+  [log.changeset changeset.draft|changeset:   0:1e4e1b8f71e05681d422154f5421e385fec3454f]\n   [log.bisect bisect.good|bisect:      good (implicit)]\n-  [log.phase|phase:       public]\n+  [log.phase|phase:       draft]\n   [log.parent changeset.public|parent:      -1:0000000000000000000000000000000000000000]\n   [log.parent changeset.public|parent:      -1:0000000000000000000000000000000000000000]\n   [ui.debug log.manifest|manifest:    0:a0c8bcbbb45c63b90b70ad007bf38961f64f2af0]\n@@ -1810,10 +1897,10 @@\n   line 2]\n   \n   \n-  [log.changeset changeset.public|changeset:   1:b608e9d1a3f0273ccf70fb85fd6866b3482bf965]\n+  [log.changeset changeset.draft|changeset:   1:b608e9d1a3f0273ccf70fb85fd6866b3482bf965]\n   [log.bisect bisect.good|bisect:      good]\n-  [log.phase|phase:       public]\n-  [log.parent changeset.public|parent:      0:1e4e1b8f71e05681d422154f5421e385fec3454f]\n+  [log.phase|phase:       draft]\n+  [log.parent changeset.draft|parent:      0:1e4e1b8f71e05681d422154f5421e385fec3454f]\n   [log.parent changeset.public|parent:      -1:0000000000000000000000000000000000000000]\n   [ui.debug log.manifest|manifest:    1:4e8d705b1e53e3f9375e0e60dc7b525d8211fe55]\n   [log.user|user:        A. N. Other <other@place>]\n@@ -1827,10 +1914,10 @@\n   other 3]\n   \n   \n-  [log.changeset changeset.public|changeset:   2:97054abb4ab824450e9164180baf491ae0078465]\n+  [log.changeset changeset.draft|changeset:   2:97054abb4ab824450e9164180baf491ae0078465]\n   [log.bisect bisect.untested|bisect:      untested]\n-  [log.phase|phase:       public]\n-  [log.parent changeset.public|parent:      1:b608e9d1a3f0273ccf70fb85fd6866b3482bf965]\n+  [log.phase|phase:       draft]\n+  [log.parent changeset.draft|parent:      1:b608e9d1a3f0273ccf70fb85fd6866b3482bf965]\n   [log.parent changeset.public|parent:      -1:0000000000000000000000000000000000000000]\n   [ui.debug log.manifest|manifest:    2:6e0e82995c35d0d57a52aca8da4e56139e06b4b1]\n   [log.user|user:        other@place]\n@@ -1841,10 +1928,10 @@\n   [ui.note log.description|no person]\n   \n   \n-  [log.changeset changeset.public|changeset:   3:10e46f2dcbf4823578cf180f33ecf0b957964c47]\n+  [log.changeset changeset.draft|changeset:   3:10e46f2dcbf4823578cf180f33ecf0b957964c47]\n   [log.bisect bisect.bad|bisect:      bad]\n-  [log.phase|phase:       public]\n-  [log.parent changeset.public|parent:      2:97054abb4ab824450e9164180baf491ae0078465]\n+  [log.phase|phase:       draft]\n+  [log.parent changeset.draft|parent:      2:97054abb4ab824450e9164180baf491ae0078465]\n   [log.parent changeset.public|parent:      -1:0000000000000000000000000000000000000000]\n   [ui.debug log.manifest|manifest:    3:cb5a1327723bada42f117e4c55a303246eaf9ccc]\n   [log.user|user:        person]\n@@ -1859,7 +1946,7 @@\n   [log.bisect bisect.bad|bisect:      bad (implicit)]\n   [log.branch|branch:      foo]\n   [log.phase|phase:       draft]\n-  [log.parent changeset.public|parent:      3:10e46f2dcbf4823578cf180f33ecf0b957964c47]\n+  [log.parent changeset.draft|parent:      3:10e46f2dcbf4823578cf180f33ecf0b957964c47]\n   [log.parent changeset.public|parent:      -1:0000000000000000000000000000000000000000]\n   [ui.debug log.manifest|manifest:    3:cb5a1327723bada42f117e4c55a303246eaf9ccc]\n   [log.user|user:        person]\n@@ -1870,7 +1957,7 @@\n   \n   \n   $ hg --color=debug log -v -T bisect -r 0:4\n-  [log.changeset changeset.public|changeset:   0:1e4e1b8f71e0]\n+  [log.changeset changeset.draft|changeset:   0:1e4e1b8f71e0]\n   [log.bisect bisect.good|bisect:      good (implicit)]\n   [log.user|user:        User Name <user@hostname>]\n   [log.date|date:        Mon Jan 12 13:46:40 1970 +0000]\n@@ -1880,7 +1967,7 @@\n   line 2]\n   \n   \n-  [log.changeset changeset.public|changeset:   1:b608e9d1a3f0]\n+  [log.changeset changeset.draft|changeset:   1:b608e9d1a3f0]\n   [log.bisect bisect.good|bisect:      good]\n   [log.user|user:        A. N. Other <other@place>]\n   [log.date|date:        Tue Jan 13 17:33:20 1970 +0000]\n@@ -1892,7 +1979,7 @@\n   other 3]\n   \n   \n-  [log.changeset changeset.public|changeset:   2:97054abb4ab8]\n+  [log.changeset changeset.draft|changeset:   2:97054abb4ab8]\n   [log.bisect bisect.untested|bisect:      untested]\n   [log.user|user:        other@place]\n   [log.date|date:        Wed Jan 14 21:20:00 1970 +0000]\n@@ -1901,7 +1988,7 @@\n   [ui.note log.description|no person]\n   \n   \n-  [log.changeset changeset.public|changeset:   3:10e46f2dcbf4]\n+  [log.changeset changeset.draft|changeset:   3:10e46f2dcbf4]\n   [log.bisect bisect.bad|bisect:      bad]\n   [log.user|user:        person]\n   [log.date|date:        Fri Jan 16 01:06:40 1970 +0000]\n', 2435, 2437, 'truncated \\uXXXX escape') decoding diff, sorry

test-tools.t

--- c:/hgdev/src/tests/test-tools.t
+++ c:/hgdev/src/tests/test-tools.t.err
@@ -1,49 +1,36 @@
 Tests of the file helper tool
 
   $ f -h
-  ?sage: f [options] [filenames] (glob)
-  
-  ?ptions: (glob)
-    -h, --help            show this help message and exit
-    -t, --type            show file type (file or directory)
-    -m, --mode            show file mode
-    -l, --links           show number of links
-    -s, --size            show size of file
-    -n NEWER, --newer=NEWER
-                          check if file is newer (or same)
-    -r, --recurse         recurse into directories
-    -S, --sha1            show sha1 hash of the content
-    --sha256              show sha256 hash of the content
-    -M, --md5             show md5 hash of the content
-    -D, --dump            dump file content
-    -H, --hexdump         hexdump file content
-    -B BYTES, --bytes=BYTES
-                          number of characters to dump
-    -L LINES, --lines=LINES
-                          number of lines to dump
-    -q, --quiet           no default output
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
   $ mkdir dir
   $ cd dir
 
   $ f --size
-  size=0
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
   $ echo hello | f --md5 --size
-  size=6, md5=b1946ac92492d2347c6235b4d2611184
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
   $ f foo
-  foo: file not found
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
   $ echo foo > foo
   $ f foo
-  foo:
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
   $ f --sha1 foo
-  foo: sha1=f1d2d2f924e986ac86fdf7b36c94bcdf32beec15
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
   $ f --sha256 foo
-  foo: sha256=b5bb9d8014a0f9b1d61e21e796d78dccdf1352f23cd32812f4850b878ae4944c
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
 #if symlink
   $ f foo --mode
@@ -88,9 +75,8 @@
 #endif
 
   $ f --quiet bar -DL 3
-  1
-  2
-  3
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
   $ cd ..
 
@@ -98,11 +84,8 @@
   $ f -qr dir -HB 17
   dir: directory with 3 files (symlink !)
   dir: directory with 2 files (no-symlink !)
-  dir/bar:
-  0000: 31 0a 32 0a 33 0a 34 0a 35 0a 36 0a 37 0a 38 0a |1.2.3.4.5.6.7.8.|
-  0010: 39                                              |9|
-  dir/foo:
-  0000: 66 6f 6f 0a                                     |foo.|
+  /usr/bin/env: python3: $ENOENT$
   dir/l: (symlink !)
   0000: 79 61 64 64 61                                  |yadda| (symlink !)
+  [127]
 

test-transaction-rollback-on-sigpipe.t

--- c:/hgdev/src/tests/test-transaction-rollback-on-sigpipe.t
+++ c:/hgdev/src/tests/test-transaction-rollback-on-sigpipe.t.err
@@ -56,7 +56,7 @@
   $ cd local
   $ echo foo > foo ; hg commit -qAm "commit"
   $ hg push -q -e ""$PYTHON" "$TESTDIR/dummyssh"" --remotecmd $remotecmd 2>&1 | grep -v $killable_pipe
-  abort: stream ended unexpectedly (got 0 bytes, expected 4)
+  abort: no suitable response from remote hg
 
   $ check_for_abandoned_transaction
   [1]

test-transplant.t#commandmode

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-transplant.t\n+++ c:/hgdev/src/tests/test-transplant.t#commandmode.err\n@@ -513,6 +513,7 @@\n   $ hg continue\n   abort: no transplant to continue (continueflag !)\n   abort: no operation in progress (no-continueflag !)\n+  abort: no operation in progress\n   [20]\n   $ hg transplant --stop\n   abort: no interrupted transplant found\n@@ -648,19 +649,74 @@\n test "--merge" causing pull from source repository on local host\n \n   $ hg --config extensions.mq= -q strip 2\n+  strip failed, backup bundle stored in \'$TESTTMP\\empty\\.hg\\strip-backup/722f4667af76-32828176-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: graphlog, mq, strip, transplant\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg transplant -s ../t --merge tip\n   searching for changes\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  applying a53251cdf717\n-  4:a53251cdf717 merged at 4831f4dc831a\n-  added 2 changesets with 2 changes to 2 files\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n test interactive transplant\n \n   $ hg --config extensions.strip= -q strip 0\n+  strip failed, backup bundle stored in \'$TESTTMP\\empty\\.hg\\strip-backup/17ab29e464c6-aec1ae45-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg -R ../t log -G --template "{rev}:{node|short}"\n   @  4:a53251cdf717\n   |\n@@ -677,18 +733,8 @@\n   > x\n   > q\n   > EOF\n-  0:17ab29e464c6\n-  apply changeset? [ynmpcq?]: ?\n-  y: yes, transplant this changeset\n-  n: no, skip this changeset\n-  m: merge at this changeset\n-  p: show patch\n-  c: commit selected changesets\n-  q: quit and cancel transplant\n-  ?: ? (show this help)\n-  apply changeset? [ynmpcq?]: x\n-  unrecognized response\n-  apply changeset? [ynmpcq?]: q\n+  abort: no revision checked out\n+  [255]\n   $ hg transplant -q --config ui.interactive=true -s ../t <<EOF\n   > p\n   > y\n@@ -697,29 +743,15 @@\n   > m\n   > c\n   > EOF\n-  0:17ab29e464c6\n-  apply changeset? [ynmpcq?]: p\n-  diff -r 000000000000 -r 17ab29e464c6 r1\n-  --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-  +++ b/r1\tThu Jan 01 00:00:00 1970 +0000\n-  @@ -0,0 +1,1 @@\n-  +r1\n-  apply changeset? [ynmpcq?]: y\n-  1:d11e3596cc1a\n-  apply changeset? [ynmpcq?]: n\n-  2:37a1297eb21b\n-  apply changeset? [ynmpcq?]: n\n-  3:722f4667af76\n-  apply changeset? [ynmpcq?]: m\n-  4:a53251cdf717\n-  apply changeset? [ynmpcq?]: c\n+  abort: no revision checked out\n+  [255]\n   $ hg log -G --template "{node|short}"\n-  @    88be5dde5260\n-  |\\\n-  | o  722f4667af76\n-  | |\n-  | o  37a1297eb21b\n-  |/\n+  o  a53251cdf717\n+  |\n+  o  722f4667af76\n+  |\n+  o  37a1297eb21b\n+  |\n   o  17ab29e464c6\n   \n   $ hg transplant -q --config ui.interactive=true -s ../t <<EOF\n@@ -728,22 +760,10 @@\n   > y\n   > q\n   > EOF\n-  1:d11e3596cc1a\n-  apply changeset? [ynmpcq?]: x\n-  unrecognized response\n-  apply changeset? [ynmpcq?]: ?\n-  y: yes, transplant this changeset\n-  n: no, skip this changeset\n-  m: merge at this changeset\n-  p: show patch\n-  c: commit selected changesets\n-  q: quit and cancel transplant\n-  ?: ? (show this help)\n-  apply changeset? [ynmpcq?]: y\n-  4:a53251cdf717\n-  apply changeset? [ynmpcq?]: q\n+  abort: no revision checked out\n+  [255]\n   $ hg heads --template "{node|short}\\n"\n-  88be5dde5260\n+  a53251cdf717\n \n   $ cd ..\n \n@@ -924,11 +944,56 @@\n   $ hg init merge2b\n   $ cd merge2b\n   $ hg transplant -s ../merge2a --parent tip tip\n-  abort: be9f9b39483f is not a parent of be9f9b39483f\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: graphlog, transplant\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\transplant.py", line 740, in transplant\n+      return _dotransplant(ui, repo, *revs, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\transplant.py", line 874, in _dotransplant\n+      tp.apply(repo, source, revmap, merges, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\transplant.py", line 285, in apply\n+      tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg transplant -s ../merge2a --parent 0 tip\n-  applying be9f9b39483f\n-  be9f9b39483f transplanted to 9959e51f94d1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cd ..\n \n test transplanting a patch turning into a no-op\n@@ -979,6 +1044,8 @@\n Explicitly kill daemons to let the test exit on Windows\n \n   $ killdaemons.py\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n Test that patch-ed files are treated as "modified", when transplant is\n aborted by failure of patching, even if none of mode, size and\n@@ -1088,10 +1155,54 @@\n   applying 22c515968f13\n   22c515968f13 transplanted to * (glob)\n   applying e38700ba9dd3\n-  transaction abort!\n-  rollback completed\n-  abort: pretxncommit.abort hook exited with status 1\n-  [255]\n+  ** Unknown exception encountered with possibly-broken third-party extension "fakedirstatewritetime" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "fakedirstatewritetime" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: fakedirstatewritetime, fakepatchtime, graphlog, transplant\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\transplant.py", line 740, in transplant\n+      return _dotransplant(ui, repo, *revs, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\transplant.py", line 874, in _dotransplant\n+      tp.apply(repo, source, revmap, merges, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\transplant.py", line 285, in apply\n+      tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cat >> .hg/hgrc <<EOF\n   > [hooks]\n   > pretxncommit.abort = !\n', 2522, 2524, 'truncated \\uXXXX escape') decoding diff, sorry

test-transplant.t#continueflag

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-transplant.t\n+++ c:/hgdev/src/tests/test-transplant.t#continueflag.err\n@@ -513,6 +513,7 @@\n   $ hg continue\n   abort: no transplant to continue (continueflag !)\n   abort: no operation in progress (no-continueflag !)\n+  abort: no operation in progress\n   [20]\n   $ hg transplant --stop\n   abort: no interrupted transplant found\n@@ -648,19 +649,74 @@\n test "--merge" causing pull from source repository on local host\n \n   $ hg --config extensions.mq= -q strip 2\n+  strip failed, backup bundle stored in \'$TESTTMP\\empty\\.hg\\strip-backup/722f4667af76-32828176-backup.hg\'\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: graphlog, mq, strip, transplant\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\mq.py", line 4237, in mqcommand\n+      return orig(ui, repo, *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 279, in debugstrip\n+      soft=opts[b\'soft\'],\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\strip.py", line 81, in strip\n+      repair.strip(ui, repo, revs, backup)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\repair.py", line 236, in strip\n+      repo._phasecache.filterunknown(repo)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg transplant -s ../t --merge tip\n   searching for changes\n-  searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  applying a53251cdf717\n-  4:a53251cdf717 merged at 4831f4dc831a\n-  added 2 changesets with 2 changes to 2 files\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n test interactive transplant\n \n   $ hg --config extensions.strip= -q strip 0\n+  strip failed, backup bundle stored in \'$TESTTMP\\empty\\.hg\\strip-backup/17ab29e464c6-aec1ae45-backup.hg\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg -R ../t log -G --template "{rev}:{node|short}"\n   @  4:a53251cdf717\n   |\n@@ -677,18 +733,8 @@\n   > x\n   > q\n   > EOF\n-  0:17ab29e464c6\n-  apply changeset? [ynmpcq?]: ?\n-  y: yes, transplant this changeset\n-  n: no, skip this changeset\n-  m: merge at this changeset\n-  p: show patch\n-  c: commit selected changesets\n-  q: quit and cancel transplant\n-  ?: ? (show this help)\n-  apply changeset? [ynmpcq?]: x\n-  unrecognized response\n-  apply changeset? [ynmpcq?]: q\n+  abort: no revision checked out\n+  [255]\n   $ hg transplant -q --config ui.interactive=true -s ../t <<EOF\n   > p\n   > y\n@@ -697,29 +743,15 @@\n   > m\n   > c\n   > EOF\n-  0:17ab29e464c6\n-  apply changeset? [ynmpcq?]: p\n-  diff -r 000000000000 -r 17ab29e464c6 r1\n-  --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n-  +++ b/r1\tThu Jan 01 00:00:00 1970 +0000\n-  @@ -0,0 +1,1 @@\n-  +r1\n-  apply changeset? [ynmpcq?]: y\n-  1:d11e3596cc1a\n-  apply changeset? [ynmpcq?]: n\n-  2:37a1297eb21b\n-  apply changeset? [ynmpcq?]: n\n-  3:722f4667af76\n-  apply changeset? [ynmpcq?]: m\n-  4:a53251cdf717\n-  apply changeset? [ynmpcq?]: c\n+  abort: no revision checked out\n+  [255]\n   $ hg log -G --template "{node|short}"\n-  @    88be5dde5260\n-  |\\\n-  | o  722f4667af76\n-  | |\n-  | o  37a1297eb21b\n-  |/\n+  o  a53251cdf717\n+  |\n+  o  722f4667af76\n+  |\n+  o  37a1297eb21b\n+  |\n   o  17ab29e464c6\n   \n   $ hg transplant -q --config ui.interactive=true -s ../t <<EOF\n@@ -728,22 +760,10 @@\n   > y\n   > q\n   > EOF\n-  1:d11e3596cc1a\n-  apply changeset? [ynmpcq?]: x\n-  unrecognized response\n-  apply changeset? [ynmpcq?]: ?\n-  y: yes, transplant this changeset\n-  n: no, skip this changeset\n-  m: merge at this changeset\n-  p: show patch\n-  c: commit selected changesets\n-  q: quit and cancel transplant\n-  ?: ? (show this help)\n-  apply changeset? [ynmpcq?]: y\n-  4:a53251cdf717\n-  apply changeset? [ynmpcq?]: q\n+  abort: no revision checked out\n+  [255]\n   $ hg heads --template "{node|short}\\n"\n-  88be5dde5260\n+  a53251cdf717\n \n   $ cd ..\n \n@@ -924,11 +944,56 @@\n   $ hg init merge2b\n   $ cd merge2b\n   $ hg transplant -s ../merge2a --parent tip tip\n-  abort: be9f9b39483f is not a parent of be9f9b39483f\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: graphlog, transplant\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\transplant.py", line 740, in transplant\n+      return _dotransplant(ui, repo, *revs, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\transplant.py", line 874, in _dotransplant\n+      tp.apply(repo, source, revmap, merges, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\transplant.py", line 285, in apply\n+      tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ hg transplant -s ../merge2a --parent 0 tip\n-  applying be9f9b39483f\n-  be9f9b39483f transplanted to 9959e51f94d1\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cd ..\n \n test transplanting a patch turning into a no-op\n@@ -979,6 +1044,8 @@\n Explicitly kill daemons to let the test exit on Windows\n \n   $ killdaemons.py\n+  /usr/bin/env: python3: $ENOENT$\n+  [127]\n \n Test that patch-ed files are treated as "modified", when transplant is\n aborted by failure of patching, even if none of mode, size and\n@@ -1088,10 +1155,54 @@\n   applying 22c515968f13\n   22c515968f13 transplanted to * (glob)\n   applying e38700ba9dd3\n-  transaction abort!\n-  rollback completed\n-  abort: pretxncommit.abort hook exited with status 1\n-  [255]\n+  ** Unknown exception encountered with possibly-broken third-party extension "fakedirstatewritetime" (version N/A)\n+  ** which supports versions unknown of Mercurial.\n+  ** Please disable "fakedirstatewritetime" and try your action again.\n+  ** If that fixes the bug please report it to the extension author.\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: fakedirstatewritetime, fakepatchtime, graphlog, transplant\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\transplant.py", line 740, in transplant\n+      return _dotransplant(ui, repo, *revs, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\transplant.py", line 874, in _dotransplant\n+      tp.apply(repo, source, revmap, merges, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\transplant.py", line 285, in apply\n+      tr.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n   $ cat >> .hg/hgrc <<EOF\n   > [hooks]\n   > pretxncommit.abort = !\n', 2523, 2525, 'truncated \\uXXXX escape') decoding diff, sorry

test-treediscovery-legacy.t

test-treediscovery.t

test-treemanifest.t

test-unamend.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-unamend.t\n+++ c:/hgdev/src/tests/test-unamend.t.err\n@@ -38,35 +38,77 @@\n Trying to unamend when there was no amend done\n \n   $ hg unamend\n-  abort: changeset must have one predecessor, found 0 predecessors\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: amend, rebase, uncommit\n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\hgext\\uncommit.py", line 318, in unamend\n+      scmutil.cleanupnodes(repo, mapping, b\'unamend\', fixphase=True)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n Unamend on clean wdir and tip\n \n   $ echo "bar" >> h\n   $ hg amend\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg exp\n   # HG changeset patch\n   # User test\n   # Date 0 0\n   #      Thu Jan 01 00:00:00 1970 +0000\n-  # Node ID c9fa1a715c1b7661c0fafb362a9f30bd75878d7d\n+  # Node ID ec2426147f0e39dbc9cef599b066be6035ce691d\n   # Parent  87d6d66763085b629e6d7ed56778c79827273022\n   Added h\n   \n-  diff -r 87d6d6676308 -r c9fa1a715c1b h\n+  diff -r 87d6d6676308 -r ec2426147f0e h\n   --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n   +++ b/h\tThu Jan 01 00:00:00 1970 +0000\n-  @@ -0,0 +1,2 @@\n-  +foo\n-  +bar\n+  @@ -0,0 +1,1 @@\n+  +foo\n \n   $ hg glog --hidden\n-  @  8:c9fa1a715c1b  Added h\n-  |\n-  | x  7:ec2426147f0e  Added h\n-  |/\n+  @  7:ec2426147f0e  Added h\n+  |\n   o  6:87d6d6676308  Added g\n   |\n   o  5:825660c69f0c  Added f\n@@ -82,13 +124,12 @@\n   o  0:18d04c59bb5d  Added a\n   \n   $ hg unamend\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg glog --hidden\n-  @  9:46d02d47eec6  Added h\n-  |\n-  | x  8:c9fa1a715c1b  Added h\n-  |/\n-  | x  7:ec2426147f0e  Added h\n-  |/\n+  @  7:ec2426147f0e  Added h\n+  |\n   o  6:87d6d6676308  Added g\n   |\n   o  5:825660c69f0c  Added f\n@@ -104,7 +145,7 @@\n   o  0:18d04c59bb5d  Added a\n   \n   $ hg diff\n-  diff -r 46d02d47eec6 h\n+  diff -r ec2426147f0e h\n   --- a/h\tThu Jan 01 00:00:00 1970 +0000\n   +++ b/h\tThu Jan 01 00:00:00 1970 +0000\n   @@ -1,1 +1,2 @@\n@@ -116,11 +157,11 @@\n   # User test\n   # Date 0 0\n   #      Thu Jan 01 00:00:00 1970 +0000\n-  # Node ID 46d02d47eec6ca096b8dcab3f8f5579c40c3dd9a\n+  # Node ID ec2426147f0e39dbc9cef599b066be6035ce691d\n   # Parent  87d6d66763085b629e6d7ed56778c79827273022\n   Added h\n   \n-  diff -r 87d6d6676308 -r 46d02d47eec6 h\n+  diff -r 87d6d6676308 -r ec2426147f0e h\n   --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n   +++ b/h\tThu Jan 01 00:00:00 1970 +0000\n   @@ -0,0 +1,1 @@\n@@ -131,82 +172,127 @@\n \n   $ hg log -r . -T \'{extras % "{extra}\\n"}\' --config alias.log=log\n   branch=default\n-  unamend_source=c9fa1a715c1b7661c0fafb362a9f30bd75878d7d\n \n Using unamend to undo an unamed (intentional)\n \n   $ hg unamend\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg exp\n   # HG changeset patch\n   # User test\n   # Date 0 0\n   #      Thu Jan 01 00:00:00 1970 +0000\n-  # Node ID 850ddfc1bc662997ec6094ada958f01f0cc8070a\n+  # Node ID ec2426147f0e39dbc9cef599b066be6035ce691d\n   # Parent  87d6d66763085b629e6d7ed56778c79827273022\n   Added h\n   \n-  diff -r 87d6d6676308 -r 850ddfc1bc66 h\n+  diff -r 87d6d6676308 -r ec2426147f0e h\n   --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n   +++ b/h\tThu Jan 01 00:00:00 1970 +0000\n-  @@ -0,0 +1,2 @@\n-  +foo\n-  +bar\n+  @@ -0,0 +1,1 @@\n+  +foo\n   $ hg diff\n+  diff -r ec2426147f0e h\n+  --- a/h\tThu Jan 01 00:00:00 1970 +0000\n+  +++ b/h\tThu Jan 01 00:00:00 1970 +0000\n+  @@ -1,1 +1,2 @@\n+   foo\n+  +bar\n \n Unamend on a dirty working directory\n \n   $ echo "bar" >> a\n   $ hg amend\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo "foobar" >> a\n   $ echo "bar" >> b\n   $ hg status\n   M a\n   M b\n-\n-  $ hg unamend\n+  M h\n+\n+  $ hg unamend\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg status\n   M a\n   M b\n+  M h\n \n   $ hg diff\n-  diff -r ec338db45d51 a\n+  diff -r ec2426147f0e a\n   --- a/a\tThu Jan 01 00:00:00 1970 +0000\n   +++ b/a\tThu Jan 01 00:00:00 1970 +0000\n   @@ -1,1 +1,3 @@\n    foo\n   +bar\n   +foobar\n-  diff -r ec338db45d51 b\n+  diff -r ec2426147f0e b\n   --- a/b\tThu Jan 01 00:00:00 1970 +0000\n   +++ b/b\tThu Jan 01 00:00:00 1970 +0000\n   @@ -1,1 +1,2 @@\n    foo\n   +bar\n+  diff -r ec2426147f0e h\n+  --- a/h\tThu Jan 01 00:00:00 1970 +0000\n+  +++ b/h\tThu Jan 01 00:00:00 1970 +0000\n+  @@ -1,1 +1,2 @@\n+   foo\n+  +bar\n \n Unamending an added file\n \n   $ hg ci -m "Added things to a and b"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo foo > bar\n   $ hg add bar\n   $ hg amend\n-\n-  $ hg unamend\n-  $ hg status\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+  $ hg unamend\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  M a\n+  M b\n+  M h\n   A bar\n \n   $ hg revert --all\n   forgetting bar\n+  reverting a\n+  reverting b\n+  reverting h\n \n Unamending a removed file\n \n   $ hg remove a\n   $ hg amend\n-\n-  $ hg unamend\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+  $ hg unamend\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg status\n   R a\n+  ? a.orig\n+  ? b.orig\n   ? bar\n+  ? h.orig\n \n   $ hg revert --all\n   undeleting a\n@@ -215,15 +301,27 @@\n \n   $ hg add bar\n   $ hg amend\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ echo bar >> bar\n   $ hg status\n-  M bar\n-\n-  $ hg unamend\n-  $ hg status\n   A bar\n+  ? a.orig\n+  ? b.orig\n+  ? h.orig\n+\n+  $ hg unamend\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg status\n+  A bar\n+  ? a.orig\n+  ? b.orig\n+  ? h.orig\n   $ hg diff\n-  diff -r 7f79409af972 bar\n+  diff -r ec2426147f0e bar\n   --- /dev/null\tThu Jan 01 00:00:00 1970 +0000\n   +++ b/bar\tThu Jan 01 00:00:00 1970 +0000\n   @@ -0,0 +1,2 @@\n@@ -237,9 +335,7 @@\n Unamending in middle of a stack\n \n   $ hg glog\n-  @  19:7f79409af972  Added things to a and b\n-  |\n-  o  12:ec338db45d51  Added h\n+  @  7:ec2426147f0e  Added h\n   |\n   o  6:87d6d6676308  Added g\n   |\n@@ -256,20 +352,22 @@\n   o  0:18d04c59bb5d  Added a\n   \n   $ hg up 5\n-  2 files updated, 0 files merged, 2 files removed, 0 files unresolved\n+  0 files updated, 0 files merged, 2 files removed, 0 files unresolved\n   $ echo bar >> f\n   $ hg amend\n-  3 new orphan changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg rebase -s 6 -d . -q\n+  abort: uncommitted changes\n+  [20]\n \n   $ hg glog\n-  o  23:03ddd6fc5af1  Added things to a and b\n-  |\n-  o  22:3e7b64ee157b  Added h\n-  |\n-  o  21:49635b68477e  Added g\n-  |\n-  @  20:93f0e8ffab32  Added f\n+  o  7:ec2426147f0e  Added h\n+  |\n+  o  6:87d6d6676308  Added g\n+  |\n+  @  5:825660c69f0c  Added f\n   |\n   o  4:aa98ab95a928  Added e\n   |\n@@ -283,76 +381,108 @@\n   \n \n   $ hg --config experimental.evolution=createmarkers unamend\n-  abort: cannot unamend changeset with children\n-  [10]\n-\n-  $ hg unamend\n-  3 new orphan changesets\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+  $ hg unamend\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Trying to unamend a public changeset\n \n   $ hg up -C 23\n-  5 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  abort: unknown revision \'23\'\n+  [255]\n   $ hg phase -r . -p\n-  1 new phase-divergent changesets\n-  $ hg unamend\n-  abort: cannot unamend public changesets\n-  (see \'hg help phases\' for details)\n-  [10]\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unamend\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n Testing whether unamend retains copies or not\n \n   $ hg status\n+  M f\n+  ? a.orig\n+  ? b.orig\n+  ? h.orig\n \n   $ hg mv a foo\n \n   $ hg ci -m "Moved a to foo"\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg exp --git\n   # HG changeset patch\n   # User test\n   # Date 0 0\n   #      Thu Jan 01 00:00:00 1970 +0000\n-  # Node ID cfef290346fbee5126313d7e1aab51d877679b09\n-  # Parent  03ddd6fc5af19e028c44a2fd6d790dd22712f231\n-  Moved a to foo\n-  \n-  diff --git a/a b/foo\n-  rename from a\n-  rename to foo\n+  # Node ID 825660c69f0cd8d9542c1fea6e5d444c666f063b\n+  # Parent  aa98ab95a9284d289c73a270d70c37914795a842\n+  Added f\n+  \n+  diff --git a/f b/f\n+  new file mode 100644\n+  --- /dev/null\n+  +++ b/f\n+  @@ -0,0 +1,1 @@\n+  +foo\n \n   $ hg mv b foobar\n   $ hg diff --git\n-  diff --git a/b b/foobar\n-  rename from b\n-  rename to foobar\n-  $ hg amend\n-\n-  $ hg exp --git\n-  # HG changeset patch\n-  # User test\n-  # Date 0 0\n-  #      Thu Jan 01 00:00:00 1970 +0000\n-  # Node ID eca050985275bb271ce3092b54e56ea5c85d29a3\n-  # Parent  03ddd6fc5af19e028c44a2fd6d790dd22712f231\n-  Moved a to foo\n-  \n+  diff --git a/f b/f\n+  --- a/f\n+  +++ b/f\n+  @@ -1,1 +1,2 @@\n+   foo\n+  +bar\n   diff --git a/a b/foo\n   rename from a\n   rename to foo\n   diff --git a/b b/foobar\n   rename from b\n   rename to foobar\n+  $ hg amend\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+\n+  $ hg exp --git\n+  # HG changeset patch\n+  # User test\n+  # Date 0 0\n+  #      Thu Jan 01 00:00:00 1970 +0000\n+  # Node ID 825660c69f0cd8d9542c1fea6e5d444c666f063b\n+  # Parent  aa98ab95a9284d289c73a270d70c37914795a842\n+  Added f\n+  \n+  diff --git a/f b/f\n+  new file mode 100644\n+  --- /dev/null\n+  +++ b/f\n+  @@ -0,0 +1,1 @@\n+  +foo\n \n   $ hg mv c wat\n   $ hg unamend\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ hg verify -v\n+  abandoned transaction found - run hg recover\n   repository uses revlog format 1\n   checking changesets\n   checking manifests\n   crosschecking files in changesets and manifests\n   checking files\n-  checked 28 changesets with 16 changes to 11 files\n+  checked 8 changesets with 8 changes to 8 files\n \n Retained copies in new prdecessor commit\n \n@@ -361,17 +491,29 @@\n   # User test\n   # Date 0 0\n   #      Thu Jan 01 00:00:00 1970 +0000\n-  # Node ID 552e3af4f01f620f88ca27be1f898316235b736a\n-  # Parent  03ddd6fc5af19e028c44a2fd6d790dd22712f231\n-  Moved a to foo\n-  \n+  # Node ID 825660c69f0cd8d9542c1fea6e5d444c666f063b\n+  # Parent  aa98ab95a9284d289c73a270d70c37914795a842\n+  Added f\n+  \n+  diff --git a/f b/f\n+  new file mode 100644\n+  --- /dev/null\n+  +++ b/f\n+  @@ -0,0 +1,1 @@\n+  +foo\n+\n+Retained copies in working directoy\n+\n+  $ hg diff --git\n+  diff --git a/f b/f\n+  --- a/f\n+  +++ b/f\n+  @@ -1,1 +1,2 @@\n+   foo\n+  +bar\n   diff --git a/a b/foo\n   rename from a\n   rename to foo\n-\n-Retained copies in working directoy\n-\n-  $ hg diff --git\n   diff --git a/b b/foobar\n   rename from b\n   rename to foobar\n@@ -386,17 +528,29 @@\n   $ hg co -q 0\n   $ hg mv a b\n   $ hg ci -qm \'move to a b\'\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg mv b c\n   $ hg amend\n-  $ hg unamend\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n+  $ hg unamend\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st --copies --change .\n-  A b\n+  A a\n+  $ hg st --copies\n+  A c\n     a\n   R a\n-  $ hg st --copies\n-  A c\n-    b\n-  R b\n+  ? a.orig\n+  ? b.orig\n+  ? f.orig\n+  ? foo\n+  ? h.orig\n   $ hg revert -qa\n   $ rm c\n \n@@ -405,17 +559,27 @@\n   $ hg co -q 0\n   $ hg mv a b\n   $ hg ci -qm \'move to a b\'\n-  warning: commit already existed in the repository!\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg mv b c\n   $ hg amend\n-  warning: commit already existed in the repository!\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg mv c d\n   $ hg unamend\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg st --copies --change .\n-  A b\n+  A a\n+  $ hg st --copies\n+  A d\n     a\n   R a\n-  $ hg st --copies\n-  A d\n-    b\n-  R b\n+  ? a.orig\n+  ? b.orig\n+  ? f.orig\n+  ? foo\n+  ? h.orig\n', 2163, 2165, 'truncated \\uXXXX escape') decoding diff, sorry

test-unbundlehash.t

--- c:/hgdev/src/tests/test-unbundlehash.t
+++ c:/hgdev/src/tests/test-unbundlehash.t.err
@@ -40,4 +40,6 @@
 Explicitly kill daemons to let the test exit on Windows
 
   $ killdaemons.py
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 

test-unified-test.t

--- c:/hgdev/src/tests/test-unified-test.t
+++ c:/hgdev/src/tests/test-unified-test.t.err
@@ -84,6 +84,7 @@
 
   $ $PYTHON -c 'from mercurial.utils.procutil import stdout; stdout.write(b"ÿ")'
   ÿ (no-eol) (esc) (true !)
+  ÿ (no-eol) (esc)
 
 Combining esc with other markups - and handling lines ending with 
 instead of 
:
 
@@ -100,13 +101,17 @@
 testing hghave
 
   $ hghave true
+  /usr/bin/env: python3: $ENOENT$
+  [127]
   $ hghave false
-  skipped: missing feature: nail clipper
-  [1]
+  /usr/bin/env: python3: $ENOENT$
+  [127]
   $ hghave no-true
-  skipped: system supports yak shaving
-  [1]
+  /usr/bin/env: python3: $ENOENT$
+  [127]
   $ hghave no-false
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
 Conditional sections based on hghave:
 
@@ -115,6 +120,7 @@
   tested
 #else
   $ echo skipped
+  skipped
 #endif
 
 #if false
@@ -129,6 +135,7 @@
   tested
 #else
   $ echo skipped
+  skipped
 #endif
 
 #if no-true

test-up-local-change.t

--- c:/hgdev/src/tests/test-up-local-change.t
+++ c:/hgdev/src/tests/test-up-local-change.t.err
@@ -70,8 +70,9 @@
    ancestor: 1e71731e6fbb, local: 1e71731e6fbb+, remote: c19d34741b0a
    b: other deleted -> r
   removing b
+  starting 4 threads for background file closing
+  starting 4 threads for background file closing (?)
    preserving a for resolve of a
-  starting 4 threads for background file closing (?)
    a: versions differ -> m (premerge)
   picked tool 'true' for a (binary False symlink False changedelete False)
   merging a

test-update-names.t

--- c:/hgdev/src/tests/test-update-names.t
+++ c:/hgdev/src/tests/test-update-names.t.err
@@ -52,6 +52,7 @@
   $ hg up 1
   abort: Unlinking directory not permitted: *$TESTTMP/r1/r2/name* (glob) (windows !)
   abort: Directory not empty: '?\$TESTTMP/r1/r2/name'? (re) (no-windows !)
+  abort: Unlinking directory not permitted: '$TESTTMP
1
2
ame'
   [255]
   $ cat name/file
   text

test-username-newline.t

--- c:/hgdev/src/tests/test-username-newline.t
+++ c:/hgdev/src/tests/test-username-newline.t.err
@@ -8,20 +8,17 @@
 
   $ hg ci -Am m
   adding a
-  abort: username 'foo
bar1' contains a newline
-  
+  abort: $TESTTMP\.hg\dirstate.pending: $ENOENT$.
+  Exception OSError: OSError(2, 'C:\Temp\hgtests.dstqqw\child893\test-username-newline.t\.hg\dirstate.pending: $ENOENT$.') in <bound method dirstateguard.__del__ of <mercurial.dirstateguard.dirstateguard object at 0x0000000001673D08>> ignored
   [255]
   $ rm .hg/hgrc
 
   $ HGUSER=`(echo foo; echo bar2)` hg ci -Am m
-  adding a
-  abort: username 'foo
bar2' contains a newline
-  
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
   [255]
   $ hg ci -Am m -u "`(echo foo; echo bar3)`"
-  adding a
-  transaction abort!
-  rollback completed
-  abort: username 'foo
bar3' contains a newline
+  abort: abandoned transaction found
+  (run 'hg recover' to clean up transaction)
   [255]
 

test-win32text.t

UnicodeDecodeError('unicodeescape', '--- c:/hgdev/src/tests/test-win32text.t\n+++ c:/hgdev/src/tests/test-win32text.t.err\n@@ -35,67 +35,107 @@\n   $ hg ci -m 2.1\n   attempt to commit or push text file(s) using CRLF line endings\n   in f583ea08d42a: f\n-  transaction abort!\n-  rollback completed\n-  abort: pretxncommit.crlf hook failed\n-  [255]\n+  ** unknown exception encountered, please report by visiting\n+  ** https://mercurial-scm.org/wiki/BugTracker\n+  ** Python 2.7.18 (v2.7.18:8d21aa21f2, Apr 20 2020, 13:25:05) [MSC v.1500 64 bit (AMD64)]\n+  ** Mercurial Distributed SCM (version 5.6.1+253-db8597d9bcfc)\n+  ** Extensions loaded: \n+  Traceback (most recent call last):\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\bin\\hg", line 43, in <module>\n+      dispatch.run()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 115, in run\n+      status = dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 266, in dispatch\n+      ret = _runcatch(req) or 0\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 442, in _runcatch\n+      return _callcatch(ui, _runcatchfunc)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 451, in _callcatch\n+      return scmutil.callcatch(ui, func)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\scmutil.py", line 155, in callcatch\n+      return func()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 432, in _runcatchfunc\n+      return _dispatch(req)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1229, in _dispatch\n+      lui, repo, cmd, fullargs, ui, options, d, cmdpats, cmdoptions\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 883, in runcommand\n+      ret = _runcommand(ui, options, cmd, d)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1240, in _runcommand\n+      return cmdfunc()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\dispatch.py", line 1226, in <lambda>\n+      d = lambda: util.checksignature(func)(ui, *args, **strcmdopt)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1867, in check\n+      return func(*args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2026, in commit\n+      return _docommit(ui, repo, *pats, **opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2127, in _docommit\n+      node = cmdutil.commit(ui, repo, commitfunc, pats, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\cmdutil.py", line 2754, in commit\n+      return commitfunc(ui, repo, message, matcher, opts)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\commands.py", line 2124, in commitfunc\n+      extra=extra,\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 199, in wrapper\n+      return orig(repo.unfiltered(), *args, **kwargs)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\localrepo.py", line 2962, in commit\n+      ms.reset()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\util.py", line 1361, in __exit__\n+      self.release()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 462, in release\n+      self._abort()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 661, in _abort\n+      entries = self.readjournal()\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 44, in _active\n+      return func(self, *args, **kwds)\n+    File "C:\\Temp\\hgtests.dstqqw\\install\\lib\\python\\mercurial\\transaction.py", line 421, in readjournal\n+      for l in self._file:\n+  TypeError: \'mixedfilemodewrapper\' object is not iterable\n+  [1]\n \n   $ mv .hg/hgrc .hg/hgrc.bak\n \n commits should succeed\n \n   $ hg ci -m 2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg cp f g\n   $ hg ci -m 2.2\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n push should fail\n \n   $ hg push ../zoz\n   pushing to ../zoz\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  attempt to commit or push text file(s) using CRLF line endings\n-  in bc2d09796734: g\n-  in b1aa5cde7ff4: f\n-  \n-  To prevent this mistake in your local repository,\n-  add to Mercurial.ini or .hg/hgrc:\n-  \n-  [hooks]\n-  pretxncommit.crlf = python:hgext.win32text.forbidcrlf\n-  \n-  and also consider adding:\n-  \n-  [extensions]\n-  win32text =\n-  [encode]\n-  ** = cleverencode:\n-  [decode]\n-  ** = cleverdecode:\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnchangegroup.crlf hook failed\n+  no changes found\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n   $ mv .hg/hgrc.bak .hg/hgrc\n   $ echo hello > f\n   $ hg rm g\n+  not removing g: file has been marked for add (use \'hg forget\' to undo add)\n+  [1]\n \n commit should succeed\n \n   $ hg ci -m 2.3\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n push should succeed\n \n   $ hg push ../zoz\n   pushing to ../zoz\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  added 3 changesets with 3 changes to 2 files\n+  no changes found\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n and now for something completely different\n \n@@ -104,65 +144,29 @@\n   $ "$PYTHON" unix2dos.py d/f2\n   $ hg add d/f2\n   $ hg ci -m 3\n-  attempt to commit or push text file(s) using CRLF line endings\n-  in 053ba1a3035a: d/f2\n-  transaction abort!\n-  rollback completed\n-  abort: pretxncommit.crlf hook failed\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n   $ hg revert -a\n   forgetting d/f2\n+  forgetting g\n   $ rm d/f2\n \n   $ hg rem f\n   $ hg ci -m 4\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n \n   $ "$PYTHON" -c \'open("bin", "wb").write(b"hello\\x00\\x0D\\x0A")\'\n   $ hg add bin\n   $ hg ci -m 5\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ hg log -v\n-  changeset:   5:f0b1c8d75fce\n+  changeset:   0:fcf06d5c4e1d\n   tag:         tip\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files:       bin\n-  description:\n-  5\n-  \n-  \n-  changeset:   4:77796dbcd4ad\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files:       f\n-  description:\n-  4\n-  \n-  \n-  changeset:   3:7c1b5430b350\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files:       f g\n-  description:\n-  2.3\n-  \n-  \n-  changeset:   2:bc2d09796734\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files:       g\n-  description:\n-  2.2\n-  \n-  \n-  changeset:   1:b1aa5cde7ff4\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files:       f\n-  description:\n-  2\n-  \n-  \n-  changeset:   0:fcf06d5c4e1d\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n   files:       f\n@@ -185,7 +189,7 @@\n   $ hg -R dupe ci -m b/c dupe/[bc]\n   $ hg -R dupe ci -m d dupe/d\n   $ hg -R dupe log -v\n-  changeset:   8:67ac5962ab43\n+  changeset:   3:67e864117200\n   tag:         tip\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n@@ -194,7 +198,7 @@\n   d\n   \n   \n-  changeset:   7:68c127d1834e\n+  changeset:   2:149437169fef\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n   files:       b c\n@@ -202,52 +206,12 @@\n   b/c\n   \n   \n-  changeset:   6:adbf8bf7f31d\n+  changeset:   1:f1d164cb0fd2\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n   files:       a\n   description:\n   a\n-  \n-  \n-  changeset:   5:f0b1c8d75fce\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files:       bin\n-  description:\n-  5\n-  \n-  \n-  changeset:   4:77796dbcd4ad\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files:       f\n-  description:\n-  4\n-  \n-  \n-  changeset:   3:7c1b5430b350\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files:       f g\n-  description:\n-  2.3\n-  \n-  \n-  changeset:   2:bc2d09796734\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files:       g\n-  description:\n-  2.2\n-  \n-  \n-  changeset:   1:b1aa5cde7ff4\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files:       f\n-  description:\n-  2\n   \n   \n   changeset:   0:fcf06d5c4e1d\n@@ -261,76 +225,13 @@\n   $ hg pull dupe\n   pulling from dupe\n   searching for changes\n-  adding changesets\n-  adding manifests\n-  adding file changes\n-  attempt to commit or push text file(s) using CRLF line endings\n-  in 67ac5962ab43: d\n-  in 68c127d1834e: b\n-  in 68c127d1834e: c\n-  \n-  To prevent this mistake in your local repository,\n-  add to Mercurial.ini or .hg/hgrc:\n-  \n-  [hooks]\n-  pretxncommit.crlf = python:hgext.win32text.forbidcrlf\n-  \n-  and also consider adding:\n-  \n-  [extensions]\n-  win32text =\n-  [encode]\n-  ** = cleverencode:\n-  [decode]\n-  ** = cleverdecode:\n-  transaction abort!\n-  rollback completed\n-  abort: pretxnchangegroup.crlf hook failed\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n   [255]\n \n   $ hg log -v\n-  changeset:   5:f0b1c8d75fce\n+  changeset:   0:fcf06d5c4e1d\n   tag:         tip\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files:       bin\n-  description:\n-  5\n-  \n-  \n-  changeset:   4:77796dbcd4ad\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files:       f\n-  description:\n-  4\n-  \n-  \n-  changeset:   3:7c1b5430b350\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files:       f g\n-  description:\n-  2.3\n-  \n-  \n-  changeset:   2:bc2d09796734\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files:       g\n-  description:\n-  2.2\n-  \n-  \n-  changeset:   1:b1aa5cde7ff4\n-  user:        test\n-  date:        Thu Jan 01 00:00:00 1970 +0000\n-  files:       f\n-  description:\n-  2\n-  \n-  \n-  changeset:   0:fcf06d5c4e1d\n   user:        test\n   date:        Thu Jan 01 00:00:00 1970 +0000\n   files:       f\n@@ -343,6 +244,9 @@\n   $ "$PYTHON" -c \'open("f4.bat", "wb").write(b"rem empty\\x0D\\x0A")\'\n   $ hg add f3 f4.bat\n   $ hg ci -m 6\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat bin\n   hello\\x00\\r (esc)\n   $ cat f3\n@@ -380,45 +284,54 @@\n \n   $ rm f3 f4.bat bin\n   $ hg co -C\n-  WARNING: f4.bat already has CRLF line endings\n-  and does not need EOL conversion by the win32text plugin.\n-  Before your next commit, please reconsider your encode/decode settings in \n-  Mercurial.ini or $TESTTMP/t/.hg/hgrc.\n-  3 files updated, 0 files merged, 0 files removed, 0 files unresolved\n+  1 files updated, 0 files merged, 0 files removed, 0 files unresolved\n   $ cat bin\n-  hello\\x00\\r (esc)\n+  cat: bin: $ENOENT$\n+  [1]\n   $ cat f3\n-  some\\r (esc)\n-  text\\r (esc)\n+  cat: f3: $ENOENT$\n+  [1]\n   $ cat f4.bat\n-  rem empty\\r (esc)\n+  cat: f4.bat: $ENOENT$\n+  [1]\n \n   $ "$PYTHON" -c \'open("f5.sh", "wb").write(b"# empty\\x0D\\x0A")\'\n   $ hg add f5.sh\n   $ hg ci -m 7\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat f5.sh\n   # empty\\r (esc)\n   $ hg cat f5.sh\n-  # empty\n+  f5.sh: no such file in rev fcf06d5c4e1d\n+  [1]\n   $ echo \'% just linefeed\' > linefeed\n   $ hg ci -qAm 8 linefeed\n+  abort: abandoned transaction found\n+  (run \'hg recover\' to clean up transaction)\n+  [255]\n   $ cat linefeed\n   % just linefeed\n   $ hg cat linefeed\n-  % just linefeed\n+  linefeed: no such file in rev fcf06d5c4e1d\n+  [1]\n   $ hg st -q\n+  A f5.sh\n   $ hg revert -a linefeed\n-  no changes needed to linefeed\n+  file not managed: linefeed\n   $ cat linefeed\n   % just linefeed\n   $ hg st -q\n+  A f5.sh\n   $ echo modified >> linefeed\n   $ hg st -q\n-  M linefeed\n+  A f5.sh\n   $ hg revert -a\n-  reverting linefeed\n+  forgetting f5.sh\n   $ hg st -q\n   $ cat linefeed\n-  % just linefeed\\r (esc)\n+  % just linefeed\n+  modified\n \n   $ cd ..\n', 2201, 2203, 'truncated \\uXXXX escape') decoding diff, sorry

test-wireproto-caching.t

test-wireproto-content-redirects.t

--- c:/hgdev/src/tests/test-wireproto-content-redirects.t
+++ c:/hgdev/src/tests/test-wireproto-content-redirects.t.err
@@ -71,19 +71,22 @@
   s>     £GapibaseDapi/Dapis¡Pexp-http-v2-0003¥Hcommands¬Ibranchmap¢Dargs KpermissionsDpullLcapabilities¢Dargs KpermissionsDpullMchangesetdata¢Dargs¢Ffields¤GdefaultÙ€HrequiredôDtypeCsetKvalidvaluesÙ„IbookmarksGparentsEphaseHrevisionIrevisions¢HrequiredõDtypeDlistKpermissionsDpullHfiledata¢Dargs¤Ffields¤GdefaultÙ€HrequiredôDtypeCsetKvalidvaluesÙƒHlinknodeGparentsHrevisionKhaveparents£GdefaultôHrequiredôDtypeDboolEnodes¢HrequiredõDtypeDlistDpath¢HrequiredõDtypeEbytesKpermissionsDpullIfilesdata£Dargs¤Ffields¤GdefaultÙ€HrequiredôDtypeCsetKvalidvaluesÙ„NfirstchangesetHlinknodeGparentsHrevisionKhaveparents£GdefaultôHrequiredôDtypeDboolJpathfilter£GdefaultöHrequiredôDtypeDdictIrevisions¢HrequiredõDtypeDlistKpermissionsDpullTrecommendedbatchsizeÃPEheads¢Dargs¡Jpubliconly£GdefaultôHrequiredôDtypeDboolKpermissionsDpullEknown¢Dargs¡Enodes£Gdefault€HrequiredôDtypeDlistKpermissionsDpullHlistkeys¢Dargs¡Inamespace¢HrequiredõDtypeEbytesKpermissionsDpullFlookup¢Dargs¡Ckey¢HrequiredõDtypeEbytesKpermissionsDpullLmanifestdata£Dargs¤Ffields¤GdefaultÙ€HrequiredôDtypeCsetKvalidvaluesÙ‚GparentsHrevisionKhaveparents£GdefaultôHrequiredôDtypeDboolEnodes¢HrequiredõDtypeDlistDtree¢HrequiredõDtypeEbytesKpermissionsDpullTrecommendedbatchsize† Gpushkey¢Dargs¤Ckey¢HrequiredõDtypeEbytesInamespace¢HrequiredõDtypeEbytesCnew¢HrequiredõDtypeEbytesCold¢HrequiredõDtypeEbytesKpermissionsDpushPrawstorefiledata¢Dargs¢Efiles¢HrequiredõDtypeDlistJpathfilter£GdefaultöHrequiredôDtypeDlistKpermissionsDpullQframingmediatypesX&application/mercurial-exp-framing-0006RpathfilterprefixesÙ‚Epath:Lrootfilesin:NrawrepoformatsƒLgeneraldeltaHrevlogv1LsparserevlogHredirect¢Fhashes‚Fsha256Dsha1Gtargets¥DnameHtarget-aHprotocolDhttpKsnirequiredôKtlsversions‚C1.2C1.3DurisShttp://example.com/Nv1capabilitiesY÷batch branchmap $USUAL_BUNDLE2_CAPS$ changegroupsubset compression=$BUNDLE2_COMPRESSIONS$ getbundle httpheader=1024 httpmediatype=0.1rx,0.1tx,0.2tx known lookup pushkey streamreqs=generaldelta,revlogv1,sparserevlog unbundle=HG10GZ,HG10BZ,HG10UN unbundlehash
   (remote redirect target target-a is compatible) (tls1.2 !)
   (remote redirect target target-a requires unsupported TLS versions: 1.2, 1.3) (no-tls1.2 !)
+  (remote redirect target target-a is compatible)
+  s> setsockopt(6, 1, 1) -> None (?)
   sending capabilities command
-  s> setsockopt(6, 1, 1) -> None (?)
   s>     POST /api/exp-http-v2-0003/ro/capabilities HTTP/1.1

   s>     Accept-Encoding: identity

   s>     accept: application/mercurial-exp-framing-0006

-  s>     content-type: application/mercurial-exp-framing-0006

   s>     content-length: 111
 (tls1.2 !)
   s>     content-length: 102
 (no-tls1.2 !)
+  s>     content-type: application/mercurial-exp-framing-0006

+  s>     content-length: 111

   s>     host: $LOCALIP:$HGPORT
 (glob)
-  s>     user-agent: Mercurial debugwireproto

-  s>     

   s>     ‚¡PcontentencodingsHidentityC¢DnameLcapabilitiesHredirect¢Fhashes‚Fsha256Dsha1GtargetsHtarget-a (tls1.2 !)
   s>     ‚¡PcontentencodingsHidentity:¢DnameLcapabilitiesHredirect¢Fhashes‚Fsha256Dsha1Gtargets€ (no-tls1.2 !)
+  s>     user-agent: Mercurial debugwireproto

+  s>     

+  s>     ‚¡PcontentencodingsHidentityC¢DnameLcapabilitiesHredirect¢Fhashes‚Fsha256Dsha1GtargetsHtarget-a
   s> makefile('rb', None)
   s>     HTTP/1.1 200 OK

   s>     Server: testing stub value

@@ -1461,6 +1464,8 @@
 
   $ cat error.log
   $ killdaemons.py
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 
   $ cat .hg/blackbox.log
   *> cacher constructed for manifestdata (glob)

test-wireproto-exchangev2.t

test-wireproto.t

--- c:/hgdev/src/tests/test-wireproto.t
+++ c:/hgdev/src/tests/test-wireproto.t.err
@@ -154,4 +154,6 @@
 Explicitly kill daemons to let the test exit on Windows
 
   $ killdaemons.py
+  /usr/bin/env: python3: $ENOENT$
+  [127]
 

Skipped Tests

Long Tests

DurationTest
124.8stest-obsolete-bundle-strip.t
121.6stest-revset.t
115.1stest-subrepo.t
101.6stest-log.t
97.2stest-largefiles.t
95.7stest-fix.t
93.2stest-obsolete.t
92.9stest-rebase-obsolete.t
92.5stest-glog-beautifygraph.t
92.1stest-treediscovery.t
91.8stest-glog.t
91.7stest-template-functions.t
88.3stest-merge-tools.t
87.3stest-bundle2-exchange.t#sshv2
86.5stest-bundle2-exchange.t#sshv1
85.4stest-obsmarker-template.t
84.6stest-http-permissions.t
83.8stest-mq.t
83.1stest-import.t
77.7stest-largefiles-misc.t
77.2stest-persistent-nodemap.t
71.8stest-update-branches.t
71.7stest-rename-merge2.t
71.4stest-copies.t#compatibility
71.4stest-copies.t#changeset
71.2stest-copies.t#sidedata
71.2stest-copies.t#filelog
65.3stest-run-tests.t
63.2stest-bookmarks.t
61.5stest-copies-chain-merge.t#changeset
61.4stest-copies-chain-merge.t#compatibility
61.1stest-treediscovery-legacy.t
61.1stest-copytrace-heuristics.t
60.4stest-copies-chain-merge.t#filelog
60.2stest-copies-chain-merge.t#sidedata
60.1stest-strip.t
59.7stest-commit-amend.t
59.6stest-copies-chain-merge.t#upgraded
59.4stest-phases-exchange.t
58.9stest-revset2.t
58.6stest-shelve2.t#phasebased#abortcommand#continuecommand
58.6stest-shelve2.t#stripbased#abortflag#continuecommand
58.5stest-shelve2.t#stripbased#abortcommand#continueflag
58.4stest-shelve2.t#stripbased#abortflag#continueflag
58.1stest-shelve2.t#phasebased#abortflag#continuecommand
58.1stest-merge-force.t
58.1stest-shelve2.t#phasebased#abortflag#continueflag
58.1stest-shelve2.t#stripbased#abortcommand#continuecommand
57.8stest-shelve2.t#phasebased#abortcommand#continueflag
57.4stest-push-warn.t
54.1stest-merge-changedelete.t#newfilenode
54.0stest-merge-changedelete.t#old
53.8stest-push-race.t#unrelated
53.7stest-transplant.t#commandmode
53.5stest-transplant.t#continueflag
53.3stest-push-race.t#strict
52.6stest-clone.t#sshv1
52.5stest-clone.t#sshv2
52.5stest-mq-subrepo.t
52.5stest-annotate.t
52.2stest-mv-cp-st-diff.t
52.1stest-template-basic.t
51.6stest-template-keywords.t
51.3stest-bisect.t
51.1stest-convert-filemap.t
51.0stest-revert.t
50.8stest-obsolete-divergent.t
49.4stest-grep.t
45.2stest-mq-header-date.t
44.8stest-template-map.t
44.6stest-subrepo-deep-nested-change.t
43.5stest-rebase-scenario-global.t
43.3stest-tag.t
42.8stest-uncommit.t
42.2stest-tags.t
42.0stest-backout.t
41.8stest-copies-unrelated.t#changeset
41.7stest-copies-unrelated.t#filelog
41.3stest-copies-unrelated.t#compatibility
41.3stest-copies-unrelated.t#sidedata
41.1stest-resolve.t
41.1stest-mq-header-from.t
38.4stest-merge-criss-cross.t#newfilenode
38.2stest-fileset.t
38.2stest-merge-criss-cross.t#old
37.9stest-graft.t
37.3stest-extension.t
36.7stest-graft-interrupted.t#abortcommand
36.6stest-graft-interrupted.t#abortflag
35.7stest-treemanifest.t
35.6stest-branches.t
35.6stest-histedit-fold.t
35.4stest-rebase-collapse.t
35.4stest-commit-interactive.t
34.7stest-histedit-obsolete.t#abortcommand
34.5stest-phases.t
34.3stest-rename.t
34.2stest-histedit-obsolete.t#abortflag
34.2stest-commit.t
34.2stest-absorb.t
33.9stest-rebase-abort.t#abortflag#continuecommand
33.8stest-rebase-abort.t#abortcommand#continuecommand
33.7stest-rebase-abort.t#abortflag#continueflag
33.4stest-rebase-abort.t#abortcommand#continueflag
33.2stest-bundle2-remote-changegroup.t#sshv1
32.7stest-bundle2-remote-changegroup.t#sshv2
32.7stest-newbranch.t
32.5stest-wireproto-exchangev2.t
32.3stest-setdiscovery.t
32.3stest-acl.t
32.2stest-bisect2.t
31.9stest-fastannotate-hg.t
31.4stest-ssh.t#sshv1
31.4stest-status.t
31.1stest-mq-guards.t
31.1stest-ssh.t#sshv2
30.5stest-issue3084.t
30.2stest-obshistory.t
29.6stest-alias.t
28.9stest-histedit-arguments.t#abortcommand
28.8stest-eol.t
28.8stest-automv.t
28.5stest-obsolete-distributed.t
28.4stest-help.t
28.2stest-ssh-bundle1.t#sshv2
28.1stest-ssh-bundle1.t#sshv1
27.7stest-rebase-dest.t
27.6stest-hook.t
27.5stest-bheads.t
27.5stest-mq-qpush-fail.t
27.4stest-amend.t#obsstore-off
27.2stest-amend.t#obsstore-on
27.1stest-rebase-parameters.t
27.0stest-histedit-arguments.t#abortflag
26.8stest-pending.t
26.4stest-wireproto.t
26.2stest-merge1.t
26.1stest-merge-no-file-change.t
25.4stest-sparse.t
25.3stest-bookflow.t
25.3stest-convert-hg-sink.t
24.4stest-split.t#obsstore-on
24.4stest-rebase-newancestor.t
24.2stest-split.t#obsstore-off
24.2stest-remove.t
24.2stest-git-export.t
24.0stest-ssh-proto-unbundle.t
23.9stest-mq-qclone-http.t
23.9stest-rebase-interruptions.t
23.7stest-strip-cross.t
23.4stest-branch-change.t
23.4stest-histedit-edit.t
23.3stest-graft-rename.t
23.3stest-mq-qnew.t
23.1stest-subrepo-relative-path.t
22.6stest-unamend.t
22.6stest-mq-qpush-exact.t
22.5stest-show-work.t
22.4stest-bundle-r.t
22.3stest-import-git.t
22.2stest-copy.t
21.0stest-rebase-base-flag.t
21.0stest-rebase-rename.t
21.0stest-patchbomb.t
20.9stest-extdiff.t
20.8stest-mq-qimport.t
20.1stest-walk.t

Timeline

test-contrib-check-code.t (1.48s)test-contrib-check-commit.t (0.44s)test-contrib-perf.t (0.27s)test-imports-checker.t (0.27s)test-merge-combination.t (11.27s)test-obsolete-check-push.t (9.28s)test-obsolete-checkheads.t (19.45s)test-run-tests.t (65.28s)test-push-race.t#strict (53.28s)test-push-race.t#unrelated (53.83s)test-rebase-check-restore.t (10.33s)test-check-code.t (0.12s)test-push-checkheads-unpushed-D4.t (8.55s)test-push-checkheads-unpushed-D5.t (7.86s)test-push-checkheads-unpushed-D3.t (7.74s)test-check-py3-compat.t (0.14s)test-push-checkheads-pruned-B8.t (8.59s)test-push-checkheads-superceed-A7.t (7.59s)test-push-checkheads-superceed-A6.t (7.53s)test-push-checkheads-multibranches-E2.t (7.19s)test-push-checkheads-unpushed-D7.t (7.77s)test-push-checkheads-unpushed-D2.t (6.45s)test-largefiles-update.t (0.08s)test-push-checkheads-pruned-B5.t (6.47s)test-push-checkheads-multibranches-E3.t (5.84s)test-push-checkheads-superceed-A3.t (6.12s)test-push-checkheads-superceed-A2.t (6.14s)test-push-checkheads-pruned-B2.t (5.36s)test-push-checkheads-multibranches-E1.t (5.38s)test-push-checkheads-pruned-B3.t (5.53s)test-push-checkheads-pruned-B4.t (5.30s)test-push-checkheads-unpushed-D6.t (6.12s)test-push-checkheads-partial-C1.t (4.95s)test-push-checkheads-partial-C2.t (4.92s)test-push-checkheads-superceed-A8.t (5.92s)test-push-checkheads-partial-C4.t (4.67s)test-push-checkheads-pruned-B6.t (5.56s)test-push-checkheads-pruned-B7.t (5.73s)test-push-checkheads-partial-C3.t (4.78s)test-push-checkheads-unpushed-D1.t (5.08s)test-subrepo-svn.t (0.08s)test-push-checkheads-superceed-A4.t (4.70s)test-push-checkheads-pruned-B1.t (4.09s)test-push-checkheads-superceed-A5.t (4.83s)test-push-checkheads-superceed-A1.t (4.23s)test-copytrace-heuristics.t (61.08s)test-check-config.t (0.08s)test-glog-beautifygraph.t (92.55s)test-gendoc-ja.t (0.08s)test-check-module-imports.t (0.08s)test-convert-cvs.t (0.08s)test-help.t (28.41s)test-obsolete-bounds-checking.t (1.14s)test-gendoc.t (0.08s)test-glog.t (91.80s)test-convert-svn-sink.t (0.08s)test-check-help.t (0.09s)test-patchbomb.t (20.97s)test-convert-svn-encoding.t (0.50s)test-obsmarker-template.t (85.38s)test-check-pyflakes.t (0.09s)test-convert-svn-source.t (0.08s)test-obsolete-bundle-strip.t (124.84s)test-abort-checkin.t (1.26s)test-http-bad-server.t (0.09s)test-ssh-proto-unbundle.t (24.05s)test-acl.t (32.34s)test-check-shbang.t (0.11s)test-check-commit.t (0.09s)test-convert-svn-move.t (0.12s)test-check-interfaces.py (0.84s)test-hgweb-commands.t (0.11s)test-obsolete.t (93.23s)test-log.t (101.62s)test-hgweb-symrev.t (0.16s)test-upgrade-repo.t (0.09s)test-extension.t (37.34s)test-ssh-proto.t (0.11s)test-check-execute.t (0.08s)test-dirstate-race.t (17.92s)test-check-pylint.t (0.09s)test-wireproto-content-redirects.t (13.62s)test-hgweb-filelog.t (0.19s)test-template-map.t (44.78s)test-hgwebdir.t (0.12s)test-bundle2-format.t (11.50s)test-revset.t (121.58s)test-subrepo.t (115.06s)test-wireproto-exchangev2.t (32.45s)test-convert-cvs-detectmerge.t (0.12s)test-rebase-obsolete.t (92.88s)test-hgweb-json.t (0.09s)test-largefiles.t (97.23s)test-merge-tools.t (88.27s)test-convert-cvs-synthetic.t (0.09s)test-gendoc-ro.t (0.09s)test-import.t (83.09s)test-subrepo-deep-nested-change.t (44.62s)test-fix.t (95.66s)test-copies-chain-merge.t#changeset (61.47s)test-copies-chain-merge.t#compatibility (61.38s)test-copies-chain-merge.t#filelog (60.42s)test-copies-chain-merge.t#sidedata (60.17s)test-copies-chain-merge.t#upgraded (59.64s)test-bundle2-exchange.t#sshv1 (86.50s)test-bundle2-exchange.t#sshv2 (87.28s)test-strip.t (60.11s)test-template-functions.t (91.73s)test-phases-exchange.t (59.37s)test-bookmarks-pushpull.t#b2-binary (0.11s)test-bookmarks-pushpull.t#b2-pushkey (0.14s)test-lfs.t (0.08s)test-convert-cvsnt-mergepoints.t (0.09s)test-commit-interactive.t (35.42s)test-merge-changedelete.t#newfilenode (54.09s)test-merge-changedelete.t#old (53.98s)test-hook.t (27.56s)test-grep.t (49.36s)test-highlight.t (0.08s)test-rename-merge2.t (71.72s)test-commandserver.t (5.67s)test-setdiscovery.t (32.34s)test-http-permissions.t (84.56s)test-lfs-test-server.t#git-server (0.08s)test-lfs-test-server.t#hg-server (0.09s)test-convert-git.t (0.14s)test-phabricator.t (0.14s)test-bookmarks.t (63.25s)test-check-cargo-lock.t (0.08s)test-clone.t#sshv1 (52.62s)test-clone.t#sshv2 (52.55s)test-shelve.t#phasebased (12.47s)test-shelve.t#stripbased (12.27s)test-check-clang-format.t (0.11s)test-merge-force.t (58.09s)test-convert-cvs-branch.t (0.08s)test-revset2.t (58.91s)test-largefiles-misc.t (77.66s)test-commit-amend.t (59.69s)test-branches.t (35.62s)test-http-protocol.t (0.06s)test-hgweb-diffs.t (0.08s)test-template-keywords.t (51.64s)test-keyword.t (0.08s)test-revert.t (51.05s)test-wireproto-command-filesdata.t (9.36s)test-merge-criss-cross.t#newfilenode (38.39s)test-merge-criss-cross.t#old (38.20s)test-convert-svn-branches.t (0.08s)test-mq.t (83.84s)test-convert-hg-svn.t (0.11s)test-gendoc-de.t (0.11s)test-lfs-serve-access.t (0.08s)test-wireproto-command-capabilities.t (0.08s)test-subrepo-git.t (0.11s)test-phases.t (34.48s)test-generaldelta.t (0.08s)test-check-rust-format.t (0.08s)test-tags.t (42.17s)test-lfs-serve.t#lfsremote-off (0.08s)test-lfs-serve.t#lfsremote-on (0.09s)test-transplant.t#commandmode (53.67s)test-transplant.t#continueflag (53.52s)test-treemanifest.t (35.72s)test-notify.t (13.75s)test-template-basic.t (52.08s)test-https.t (0.14s)test-tag.t (43.28s)test-subrepo-recursion.t (17.83s)test-hgweb.t (0.08s)test-split.t#obsstore-off (24.23s)test-split.t#obsstore-on (24.39s)test-http.t (0.08s)test-convert.t (9.00s)test-check-jshint.t (0.08s)test-clonebundles.t (0.09s)test-http-api-httpv2.t (0.09s)test-graft.t (37.92s)test-shelve2.t#phasebased#abortcommand#continuecommand (58.58s)test-shelve2.t#phasebased#abortcommand#continueflag (57.81s)test-shelve2.t#phasebased#abortflag#continuecommand (58.12s)test-shelve2.t#phasebased#abortflag#continueflag (58.06s)test-shelve2.t#stripbased#abortcommand#continuecommand (58.06s)test-shelve2.t#stripbased#abortcommand#continueflag (58.48s)test-shelve2.t#stripbased#abortflag#continuecommand (58.58s)test-shelve2.t#stripbased#abortflag#continueflag (58.36s)test-obsolete-divergent.t (50.77s)test-convert-filemap.t (51.06s)test-bundle.t (17.97s)test-annotate.t (52.47s)test-obsolete-distributed.t (28.45s)test-bisect.t (51.27s)test-encoding-textwrap.t (2.69s)test-walk.t (20.09s)test-mv-cp-st-diff.t (52.23s)test-convert-p4-filetypes.t (0.08s)test-resolve.t (41.14s)test-rebase-inmemory.t (0.09s)test-ssh.t#sshv1 (31.39s)test-ssh.t#sshv2 (31.06s)test-rebase-scenario-global.t (43.50s)test-commit.t (34.17s)test-bundle2-remote-changegroup.t#sshv1 (33.19s)test-bundle2-remote-changegroup.t#sshv2 (32.75s)test-wireproto-exchangev2-shallow.t (0.08s)test-archive.t (0.08s)test-import-git.t (22.31s)test-mq-header-from.t (41.05s)test-i18n.t (4.84s)test-treediscovery.t (92.10s)test-bisect2.t (32.24s)test-fileset.t (38.22s)test-push-warn.t (57.38s)test-hgweb-annotate-whitespace.t (0.06s)test-persistent-nodemap.t (77.17s)test-log-linerange.t (12.90s)test-debugcommands.t (10.76s)test-graft-interrupted.t#abortcommand (36.71s)test-graft-interrupted.t#abortflag (36.63s)test-remotefilelog-repack.t (0.14s)test-remove.t (24.21s)test-backout.t (42.02s)test-clone-uncompressed.t#stream-bundle2 (0.08s)test-clone-uncompressed.t#stream-legacy (0.08s)test-graft-rename.t (23.32s)test-alias.t (29.60s)test-update-branches.t (71.85s)test-mq-header-date.t (45.16s)test-ssh-bundle1.t#sshv1 (28.10s)test-ssh-bundle1.t#sshv2 (28.20s)test-wireproto-command-changesetdata.t (10.20s)test-blackbox.t (14.70s)test-pull-pull-corruption.t (16.28s)test-devel-warnings.t (5.19s)test-convert-svn-startrev.t (0.09s)test-progress.t (4.09s)test-check-format.t (0.09s)test-push-http.t#bundle1 (0.08s)test-push-http.t#bundle2 (0.08s)test-audit-subrepo.t (15.44s)test-contrib-relnotes.t (0.08s)test-copies.t#changeset (71.43s)test-copies.t#compatibility (71.44s)test-copies.t#filelog (71.18s)test-copies.t#sidedata (71.24s)test-histedit-obsolete.t#abortcommand (34.68s)test-histedit-obsolete.t#abortflag (34.24s)test-histedit-arguments.t#abortcommand (28.89s)test-histedit-arguments.t#abortflag (27.01s)test-wireproto.t (26.43s)test-globalopts.t (9.08s)test-http-bundle1.t (0.06s)test-rebase-collapse.t (35.43s)test-hgweb-descend-empties.t (0.08s)test-obshistory.t (30.17s)test-fncache.t (0.11s)test-rename.t (34.29s)test-uncommit.t (42.84s)test-extdiff.t (20.90s)test-mq-subrepo.t (52.51s)test-histedit-fold.t (35.56s)test-fastannotate-hg.t (31.93s)test-histedit-commute.t (17.30s)test-remotefilelog-repack-fast.t (0.08s)test-getbundle.t (0.08s)test-censor.t (0.08s)test-largefiles-wireproto.t#sshv1 (3.33s)test-largefiles-wireproto.t#sshv2 (3.52s)test-status-color.t (19.12s)test-narrow.t#flat#lfs-off (18.92s)test-narrow.t#flat#lfs-on (19.06s)test-narrow.t#tree#lfs-off (19.01s)test-narrow.t#tree#lfs-on (19.08s)test-convert-hg-sink.t (25.28s)test-amend.t#obsstore-off (27.37s)test-logexchange.t (18.26s)test-amend.t#obsstore-on (27.25s)test-absorb.t (34.15s)test-merge-types.t (0.11s)test-histedit-edit.t (23.39s)test-lfconvert.t (17.50s)test-remotefilelog-bgprefetch.t (0.12s)test-fetch.t (0.11s)test-install.t (2.48s)test-wireproto-caching.t (6.38s)test-rebase-named-branches.t (19.91s)test-incoming-outgoing.t (0.08s)test-manifest.t (17.72s)test-rollback.t (19.47s)test-clone-pull-corruption.t (7.56s)test-eol.t (28.81s)test-rebase-conflicts.t (17.64s)test-chg.t (0.08s)test-newbranch.t (32.65s)test-bundle2-multiple-changegroups.t (7.51s)test-fix-topology.t#obsstore-off (17.73s)test-fix-topology.t#obsstore-on (17.84s)test-status.t (31.39s)test-wireproto-command-manifestdata.t (6.17s)test-copies-in-changeset.t#extra (17.75s)test-copies-in-changeset.t#sidedata (17.56s)test-git-export.t (24.20s)test-infinitepush-ci.t (0.11s)test-rebase-interruptions.t (23.87s)test-fastexport.t (4.12s)test-diff-color.t (6.47s)test-lfs-largefiles.t (0.08s)test-hgweb-empty.t (0.09s)test-dirstate-race2.t (2.00s)test-merge1.t (26.19s)test-rebase-abort.t#abortcommand#continuecommand (33.76s)test-rebase-abort.t#abortcommand#continueflag (33.42s)test-rebase-abort.t#abortflag#continuecommand (33.86s)test-rebase-abort.t#abortflag#continueflag (33.67s)test-infinitepush-bundlestore.t (0.09s)test-completion.t (6.20s)test-push.t (17.09s)test-convert-mtn.t (0.09s)test-share-safe.t (14.78s)test-narrow-shallow-merges.t (0.09s)test-mq-guards.t (31.14s)test-hghave.t (1.11s)test-convert-svn-tags.t (0.08s)test-pager.t (13.11s)test-wireproto-command-filedata.t (7.95s)test-qrecord.t (7.45s)test-rebase-parameters.t (27.06s)test-mq-subrepo-svn.t (0.08s)test-revset-legacy-lookup.t (19.05s)test-copies-unrelated.t#changeset (41.76s)test-copies-unrelated.t#compatibility (41.30s)test-copies-unrelated.t#filelog (41.73s)test-copies-unrelated.t#sidedata (41.26s)test-hardlinks.t (0.08s)test-export.t (13.20s)test-issue3084.t (30.47s)test-merge-no-file-change.t (26.08s)test-verify.t (0.08s)test-narrow-patterns.t (18.44s)test-branch-change.t (23.39s)test-rebase-rename.t (20.98s)test-rebase-dest.t (27.67s)test-narrow-widen-no-ellipsis.t#flat (17.23s)test-mq-qpush-fail.t (27.47s)test-narrow-widen-no-ellipsis.t#tree (17.36s)test-commit-interactive-curses.t (0.08s)test-bundle-r.t (22.42s)test-rebase-pull.t (19.17s)test-exchange-obsmarkers-case-A1.t (18.28s)test-rebase-newancestor.t (24.36s)test-sparse.t (25.36s)test-import-bypass.t (13.69s)test-revert-interactive.t (13.86s)test-parse-date.t (19.11s)test-treediscovery-legacy.t (61.09s)test-narrow-widen.t#flat (14.53s)test-narrow-widen.t#tree (14.58s)test-rebase-cache.t (12.72s)test-journal.t (6.70s)test-help-hide.t (0.44s)test-releasenotes-formatting.t (0.08s)test-merge-exec.t (0.08s)test-share-bookmarks.t#svfs#normal (12.36s)test-share-bookmarks.t#svfs#safe (12.39s)test-share-bookmarks.t#vfs#normal (12.56s)test-share-bookmarks.t#vfs#safe (12.53s)test-githelp.t (15.59s)test-mq-qrefresh.t (17.69s)test-histedit-fold-non-commute.t (16.66s)test-gendoc-pt_BR.t (0.11s)test-gendoc-zh_CN.t (0.08s)test-gendoc-zh_TW.t (0.08s)test-histedit-non-commute.t (17.19s)test-static-http.t (0.08s)test-exchange-obsmarkers-case-A3.t (19.38s)test-mq-qrefresh-interactive.t (4.25s)test-copy.t (22.19s)test-wireproto-command-rawstorefiledata.t (5.27s)test-hgignore.t (10.80s)test-config.t (10.86s)test-mq-qnew.t (23.30s)test-win32text.t (11.34s)test-git-interop.t (0.08s)test-exchange-obsmarkers-case-C3.t (12.42s)test-gendoc-da.t (0.08s)test-gendoc-el.t (0.06s)test-gendoc-fr.t (0.08s)test-gendoc-it.t (0.08s)test-gendoc-ru.t (0.08s)test-gendoc-sv.t (0.08s)test-bheads.t (27.47s)test-flagprocessor.t (16.53s)test-diff-ignore-whitespace.t (13.34s)test-bookflow.t (25.30s)test-hgrc.t (8.80s)test-remotefilelog-prefetch.t (0.08s)test-http-api.t (0.09s)test-unamend.t (22.62s)test-largefiles-cache.t (10.23s)test-encoding.t (6.77s)test-mq-qrefresh-replace-log-message.t (12.33s)test-convert-bzr-merges.t (0.09s)test-single-head.t (15.84s)test-mq-qimport.t (20.80s)test-url-rev.t (15.05s)test-diff-unified.t (9.72s)test-pager-legacy.t (10.19s)test-init.t (13.38s)test-histedit-base.t (8.09s)test-parseindex.t (1.88s)test-clone-r.t (13.58s)test-bad-extension.t (0.19s)test-hgweb-raw.t (0.12s)test-rebase-base-flag.t (21.03s)test-rebase-mq.t (18.20s)test-exchange-obsmarkers-case-D1.t (12.08s)test-hgweb-removed.t (0.17s)test-eol-patch.t (8.86s)test-automv.t (28.78s)test-exchange-obsmarkers-case-C2.t (11.89s)test-ssh-clone-r.t#sshv1 (12.86s)test-ssh-clone-r.t#sshv2 (12.22s)test-subrepo-relative-path.t (23.09s)test-conflict.t (9.50s)test-pull-bundle.t (0.08s)test-casecollision-merge.t (0.08s)test-http-clone-r.t (0.08s)test-convert-bzr.t (0.08s)test-bookmarks-corner-case.t (9.11s)test-rename-dir-merge.t (14.78s)test-template-graph.t (14.80s)test-strip-cross.t (23.69s)test-add.t (17.86s)test-histedit-no-change.t (12.75s)test-narrow-clone.t (8.69s)test-diffstat.t (18.70s)test-convert-splicemap.t (12.39s)test-http-proxy.t (0.14s)test-removeemptydirs.t (15.28s)test-fileset-generated.t (7.17s)test-bundle-phases.t (16.23s)test-share.t#normal (10.89s)test-share.t#safe (11.06s)test-exchange-obsmarkers-case-C1.t (11.12s)test-status-rev.t (6.55s)test-diff-upgrade.t (0.11s)test-pull-update.t (13.20s)test-bisect3.t (10.62s)test-dispatch.t (8.38s)test-narrow-exchange.t#lfs-off (11.31s)test-narrow-exchange.t#lfs-on (11.42s)test-obsolete-changeset-exchange.t (8.73s)test-up-local-change.t (13.94s)test-exchange-obsmarkers-case-D4.t (9.86s)test-eol-update.t (7.89s)test-remotefilelog-push-pull.t (0.12s)test-narrow-exchange-merges.t (12.47s)test-absorb-rename.t (15.02s)test-rename-merge1.t (18.84s)test-exchange-obsmarkers-case-B5.t (11.53s)test-copy-move-merge.t (11.44s)test-churn.t (10.14s)test-pull-branch.t (14.27s)test-eol-hook.t (9.44s)test-sparse-profiles.t (10.52s)test-bundle-type.t (11.48s)test-narrow-trackedcmd.t#flat (10.73s)test-narrow-trackedcmd.t#tree (10.78s)test-notify-changegroup.t (5.70s)test-remotefilelog-linknodes.t (0.12s)test-byteify-strings.t (0.12s)test-stream-bundle-v2.t (0.08s)test-rebase-detach.t (16.36s)test-mq-qpush-exact.t (22.58s)test-fastannotate-protocol.t (10.12s)test-purge.t (12.89s)test-hybridencode.py (0.42s)test-rebase-bookmarks.t (16.70s)test-bookmarks-current.t (16.91s)test-convert-hg-source.t (14.80s)test-encoding-align.t (6.33s)test-debugbuilddag.t (6.26s)test-repo-compengines.t (5.75s)test-convert-baz.t (0.08s)test-inherit-mode.t (0.11s)test-infinitepush.t (0.17s)test-releasenotes-merging.t (0.12s)test-convert-hg-startrev.t (10.92s)test-show-work.t (22.53s)test-narrow-strip.t#flat#lfs-off (6.72s)test-narrow-strip.t#flat#lfs-on (6.69s)test-narrow-strip.t#tree#lfs-off (6.73s)test-narrow-strip.t#tree#lfs-on (6.61s)test-merge-commit.t (8.59s)test-audit-path.t (0.12s)test-exchange-obsmarkers-case-B4.t (11.17s)test-fastannotate.t (11.91s)test-narrow-expanddirstate.t (6.08s)test-pathconflicts-merge.t (12.77s)test-remotefilelog-gcrepack.t (0.11s)test-narrow-share.t#flat#normal (14.50s)test-narrow-share.t#flat#safe (14.61s)test-narrow-share.t#tree#normal (14.75s)test-narrow-share.t#tree#safe (14.87s)test-symlinks.t (0.08s)test-exchange-obsmarkers-case-C4.t (9.91s)test-sparse-revlog.t (0.11s)test-remotefilelog-local.t (0.06s)test-mq-safety.t (14.42s)test-basic.t (5.64s)test-directaccess.t (9.45s)test-exchange-obsmarkers-case-A6.t (11.02s)test-exchange-obsmarkers-case-A5.t (9.95s)test-hgweb-csp.t (0.08s)test-merge-default.t (9.53s)test-mq-qfold.t (10.55s)test-histedit-bookmark-motion.t (7.81s)test-histedit-non-commute-abort.t (8.61s)test-obsolete-tag-cache.t (5.52s)test-diff-binary-file.t (6.69s)test-journal-share.t#normal (7.02s)test-journal-share.t#safe (7.05s)test-casefolding.t (0.08s)test-mq-git.t (7.22s)test-remotefilelog-cacheprocess.t (0.09s)test-patchbomb-bookmark.t (4.34s)test-stack.t (14.23s)test-sparse-merges.t (13.94s)test-pull-r.t (10.39s)test-paths.t (9.34s)test-contrib-testparseutil.t (0.55s)test-hgweb-no-request-uri.t (1.61s)test-releasenotes-parsing.t (0.09s)test-rebase-emptycommit.t (12.03s)test-diff-indent-heuristic.t#bdiff (1.09s)test-diff-indent-heuristic.t#xdiff (1.19s)test-import-merge.t (13.05s)test-drawdag.t (9.97s)test-exchange-obsmarkers-case-B2.t (9.56s)test-convert-bzr-directories.t (0.09s)test-convert-p4.t (0.11s)test-pull.t#sshv1 (0.09s)test-pull.t#sshv2 (0.08s)test-profile.t (4.33s)test-match.py (0.31s)test-show-stack.t (15.17s)test-narrow-clone-nonlinear.t (6.33s)test-mq-eol.t (6.86s)test-exchange-obsmarkers-case-A4.t (8.66s)test-state-extension.t (4.61s)test-obsmarkers-effectflag.t (14.42s)test-fastannotate-renames.t (9.97s)test-histedit-drop.t (6.78s)test-bookmarks-merge.t (12.12s)test-lock-badness.t (0.11s)test-repair-strip.t (0.08s)test-rebase-mq-skip.t#continuecommand (13.38s)test-rebase-mq-skip.t#continueflag (13.33s)test-histedit-outgoing.t (9.47s)test-rebase-templates.t (7.38s)test-extension-timing.t (0.09s)test-exchange-obsmarkers-case-B6.t (8.56s)test-cbor.py (1.81s)test-debugbundle.t (3.25s)test-convert-tla.t (0.08s)test-mq-qclone-http.t (23.92s)test-exchange-obsmarkers-case-A2.t (7.08s)test-exchange-obsmarkers-case-D2.t (7.92s)test-worker.t (2.98s)test-status-terse.t (7.50s)test-merge7.t (4.14s)test-subrepo-missing.t (8.14s)test-phase-archived.t (4.44s)test-hgweb-no-path-info.t (1.49s)test-pathconflicts-update.t (11.00s)test-show.t (5.94s)test-addremove-similar.t (8.03s)test-sidedata.t (3.95s)test-contrib.t (1.75s)test-unionrepo.t (0.08s)test-flags.t (0.08s)test-remotefilelog-gc.t (0.08s)test-commit-multiple.t (6.67s)test-commit-unresolved.t#abortcommand (8.80s)test-commit-unresolved.t#abortflag (8.83s)test-import-eol.t (9.50s)test-sparse-import.t (6.38s)test-logtoprocess.t (0.06s)test-mq-missingfiles.t (8.83s)test-amend-subrepo.t#obsstore-off (9.92s)test-amend-subrepo.t#obsstore-on (10.02s)test-rebase-transaction.t#continuecommand (7.83s)test-rebase-transaction.t#continueflag (7.88s)test-identify.t (0.08s)test-default-push.t (7.19s)test-simple-update.t (7.33s)test-merge-subrepos.t (8.92s)test-narrow-clone-no-ellipsis.t (5.33s)test-filebranch.t (4.81s)test-mq-qdelete.t (12.91s)test-convert-datesort.t (9.42s)test-log-bookmark.t (6.75s)test-update-atomic.t (0.12s)test-pending.t (26.83s)test-clone-update-order.t (6.31s)test-rhg.t (0.19s)test-narrow-pull.t (6.00s)test-fastannotate-perfhack.t (8.98s)test-origbackup-conflict.t (6.59s)test-mq-merge.t (9.17s)test-merge-local.t (6.45s)test-hooklib-changeset_obsoleted.t (3.80s)test-remotefilelog-http.t (0.06s)test-repo-filters-tiptoe.t (4.11s)test-bugzilla.t (2.58s)test-exchange-obsmarkers-case-D3.t (8.20s)test-remote-hidden.t (0.08s)test-narrow-shallow.t (0.08s)test-merge-halt.t (7.58s)test-branch-option.t (8.94s)test-mac-packages.t (0.08s)test-empty-group.t (5.28s)test-parents.t (5.91s)test-fix-metadata.t (0.92s)test-http-branchmap.t (7.36s)test-children.t (5.89s)test-diff-change.t (7.03s)test-bundle2-pushback.t#sshv1 (3.83s)test-bundle2-pushback.t#sshv2 (4.00s)test-extdata.t (7.59s)test-issue672.t (3.92s)test-rebuildstate.t (6.09s)test-mq-pull-from-bundle.t (0.08s)test-narrow-merge.t#flat (8.92s)test-narrow-merge.t#tree (8.92s)test-exchange-obsmarkers-case-B3.t (8.14s)test-remotefilelog-corrupt-cache.t (0.08s)test-merge-internal-tools-pattern.t (6.72s)test-run-tests.py (0.20s)test-extensions-afterloaded.t (5.00s)test-wireproto-serverreactor.py (0.42s)test-lfs-bundle.t (6.97s)test-tools.t (0.64s)test-fastannotate-corrupt.t (4.69s)test-narrow-commit.t#flat (9.72s)test-narrow-commit.t#tree (9.55s)test-eol-clone.t (3.36s)test-excessive-merge.t (4.59s)test-serve.t (0.08s)test-mq-qqueue.t (10.12s)test-relink.t (0.09s)test-narrow-rebase.t#continuecommand (7.50s)test-narrow-rebase.t#continueflag (7.62s)test-push-cgi.t (0.08s)test-record.t (1.22s)test-hgweb-non-interactive.t (1.28s)test-rename-rev.t (7.89s)test-convert-darcs.t (0.08s)test-remotefilelog-clone-tree.t (0.06s)test-patch.t (3.94s)test-sqlitestore.t (0.08s)test-remotefilelog-clone.t (0.06s)test-arbitraryfilectx.t (2.16s)test-remotefilelog-sparse.t (0.08s)test-rebase-backup.t (6.03s)test-cache-abuse.t (18.34s)test-pathconflicts-basic.t (7.78s)test-hooklib-changeset_published.t (2.53s)test-committer.t (4.92s)test-exchange-obsmarkers-case-B7.t (7.76s)test-patchbomb-tls.t (0.16s)test-pull-http.t (9.09s)test-remotefilelog-bundle2-legacy.t (0.09s)test-exchange-obsmarkers-case-B1.t (7.70s)test-remotefilelog-log.t (0.11s)test-rename-after-merge.t (7.34s)test-bookmarks-rebase.t (5.76s)test-mq-qdiff.t (6.03s)test-exchange-obsmarkers-case-A7.t (6.61s)test-revset-outgoing.t (4.83s)test-remotefilelog-bundle2.t (0.09s)test-import-context.t (2.19s)test-eol-add.t (3.86s)test-requires.t (3.83s)test-bundle-vs-outgoing.t (5.53s)test-rebase-partial.t (6.08s)test-update-names.t (4.86s)test-hooklib-reject_merge_commits.t (2.03s)test-mailmap.t (4.36s)test-remotefilelog-bundles.t (0.08s)test-merge-remove.t (6.64s)test-convert-tagsbranch-topology.t (0.09s)test-locate.t (8.50s)test-merge-closedheads.t (9.39s)test-wireproto-clientreactor.py (0.39s)test-unified-test.t (0.89s)test-contrib-dumprevlog.t (0.08s)test-remotefilelog-pull-noshallow.t (0.09s)test-narrow-clone-stream.t#flat-fncache (2.55s)test-narrow-clone-stream.t#flat-nofncache (2.52s)test-narrow-clone-stream.t#tree (2.52s)test-debugextensions.t (1.26s)test-issue1306.t (3.30s)test-cat.t (7.88s)test-histedit-merge-tools.t (4.76s)test-nointerrupt.t (0.09s)test-issue660.t (7.20s)test-issue1175.t (6.97s)test-largefiles-small-disk.t (1.88s)test-convert-clonebranches.t (6.44s)test-oldcgi.t (0.09s)test-impexp-branch.t (4.92s)test-histedit-no-backup.t#abortcommand (3.12s)test-histedit-no-backup.t#abortflag (3.11s)test-narrow-clone-non-narrow-server.t (7.88s)test-issue586.t (5.73s)test-rebase-legacy.t#continuecommand (4.25s)test-rebase-legacy.t#continueflag (4.27s)test-dirstate.t (3.72s)test-wsgirequest.py (0.47s)test-remotefilelog-tags.t (0.11s)test-symlink-placeholder.t (0.08s)test-merge6.t (4.42s)test-narrow-copies.t (6.23s)test-server-view.t (8.02s)test-verify-repo-operations.py (0.12s)test-rebase-issue-noparam-single-rev.t (6.55s)test-close-head.t (4.67s)test-url-download.t (0.09s)test-merge-revert2.t (8.25s)test-merge4.t (5.42s)test-addremove.t (6.16s)test-mq-qrename.t (10.56s)test-narrow-update.t (7.34s)test-double-merge.t (2.53s)test-mq-symlinks.t (0.08s)test-ssh-repoerror.t (0.08s)test-narrow-patch.t#flat (3.11s)test-glog-topological.t (2.33s)test-narrow-patch.t#tree (3.16s)test-sparse-verbose-json.t (4.59s)test-merge9.t (4.75s)test-fuzz-targets.t (0.11s)test-context-metadata.t (2.83s)test-update-reverse.t (3.55s)test-patch-offset.t (1.01s)test-transaction-rollback-on-sigpipe.t (2.56s)test-log-exthook.t (1.39s)test-newcgi.t (0.08s)test-wireproto-command-branchmap.t (3.66s)test-histedit-templates.t (3.23s)test-pushvars.t (3.20s)test-hgwebdirsym.t (0.06s)test-issue1802.t (0.08s)test-sparse-clone.t (2.86s)test-merge-symlinks.t (2.23s)test-revlog-raw.py (1.20s)test-branch-tag-confict.t (2.69s)test-custom-filters.t (2.34s)test-narrow-debugcommands.t (3.11s)test-issue2137.t (1.19s)test-remotefilelog-partial-shallow.t (0.08s)test-manifest.py (3.22s)test-eolfilename.t (0.09s)test-merge10.t (4.12s)test-diffdir.t (5.48s)test-revlog-v2.t (0.08s)test-schemes.t (0.08s)test-mq-qgoto.t (6.31s)test-newercgi.t (0.08s)test-revlog.t (1.94s)test-issue522.t (3.33s)test-hooklib-reject_new_heads.t (1.89s)test-url.py (0.36s)test-convert-identity.t (3.56s)test-editor-filename.t (2.00s)test-import-unknown.t (5.58s)test-journal-exists.t (2.33s)test-unbundlehash.t (4.39s)test-narrow-sparse.t#flat (3.58s)test-narrow-sparse.t#tree (3.58s)test-wireproto-command-known.t (2.41s)test-missing-capability.t (2.98s)test-wireproto-command-listkeys.t (2.94s)test-merge-revert.t (8.05s)test-wireproto-command-heads.t (2.92s)test-encode.t (3.84s)test-permissions.t (0.14s)test-hooklib-enforce_draft_commits.t (2.50s)test-ancestor.py (1.14s)test-casecollision.t (0.08s)test-update-dest.t (2.73s)test-known.t (7.80s)test-remotefilelog-datapack.py (1.14s)test-sparse-fsmonitor.t (0.03s)test-no-symlinks.t (0.08s)test-convert-authormap.t (2.19s)test-sparse-requirement.t (2.17s)test-subrepo-paths.t (1.77s)test-confused-revert.t (4.75s)test-sparse-clear.t (3.38s)test-merge2.t (6.22s)test-remotefilelog-permissions.t (0.09s)test-issue1993.t (2.31s)test-issue1502.t (2.83s)test-gpg.t (0.08s)test-rebase-empty-successor.t (3.53s)test-clone-cgi.t (0.08s)test-fix-pickle.t (1.22s)test-simplemerge.py (0.30s)test-websub.t (0.09s)test-rebase-brute-force.t (2.25s)test-revlog-mmapindex.t (1.22s)test-stdio.py (7.06s)test-diff-antipatience.t#bdiff (0.88s)test-diff-antipatience.t#xdiff (0.89s)test-issue1877.t (4.05s)test-empty-file.t (3.52s)test-lrucachedict.py (0.31s)test-hgk.t (2.28s)test-changelog-exec.t (0.08s)test-diff-hashes.t (2.20s)test-debian-packages.t (0.08s)test-absorb-edit-lines.t (2.91s)test-remotefilelog-wireproto.t (0.09s)test-convert-bzr-ghosts.t (0.08s)test-legacy-exit-code.t (2.92s)test-docker-packaging.t (0.08s)test-narrow-acl.t (3.02s)test-remotefilelog-hgweb.t (0.09s)test-bookmarks-strip.t (3.16s)test-remotefilelog-keepset.t (0.08s)test-parseindex2.py (0.45s)test-mactext.t (1.39s)test-remotefilelog-histpack.py (0.50s)test-diff-subdir.t (1.95s)test-remotefilelog-bad-configs.t (0.09s)test-revert-interactive-curses.t (0.09s)test-convert-bzr-114.t (0.08s)test-narrow-debugrebuilddirstate.t (2.44s)test-unrelated-pull.t (2.36s)test-diff-reverse.t (2.56s)test-trusted.py (0.45s)test-revset-dirstate-parents.t (5.16s)test-wireproto-command-pushkey.t (2.03s)test-debugbackupbundle.t (2.44s)test-wireproto-framing.py (0.33s)test-update-issue1456.t (0.08s)test-empty.t (1.72s)test-merge5.t (3.17s)test-narrow-archive.t (3.03s)test-absorb-unfinished.t (1.94s)test-diff-copy-depth.t (5.00s)test-convert-bzr-treeroot.t (0.09s)test-hgweb-bundle.t (0.06s)test-mq-qimport-fail-cleanup.t (1.73s)test-linelog.py (4.20s)test-linerange.py (0.28s)test-fix-clang-format.t (0.06s)test-manifest-merging.t (2.31s)test-issue619.t (2.47s)test-merge8.t (2.39s)test-issue842.t (2.81s)test-remotefilelog-blame.t (0.11s)test-filecache.py (0.36s)test-propertycache.py (0.67s)test-revlog-group-emptyiter.t (1.89s)test-pathencode.py (0.66s)test-demandimport.py (0.22s)test-absorb-filefixupstate.py (0.52s)test-archive-symlinks.t (0.08s)test-absorb-strip.t (1.66s)test-pull-permission.t (0.11s)test-issue5979.t (3.31s)test-revisions.t (4.45s)test-wireproto-command-lookup.t (2.02s)test-remotefilelog-share.t#normal (0.09s)test-remotefilelog-share.t#safe (0.09s)test-batching.py (0.45s)test-context.py (0.81s)test-issue612.t (2.53s)test-lock.py (0.31s)test-debugindexdot.t (2.69s)test-doctest.py (2.59s)test-eol-tag.t (1.91s)test-bdiff.py (0.34s)test-hgweb-auth.py (0.17s)test-nested-repo.t (2.89s)test-minirst.py (0.38s)test-rust-ancestor.py (0.16s)test-execute-bit.t (0.08s)test-issue4074.t (0.09s)test-username-newline.t (1.14s)test-fastannotate-revmap.py (0.50s)test-dirstate-nonnormalset.t (2.02s)test-revlog-packentry.t (1.44s)test-diff-issue2761.t (2.41s)test-ui-config.py (0.55s)test-atomictempfile.py (0.34s)test-strict.t (2.02s)test-util.py (0.34s)test-diff-newlines.t (1.16s)test-rust-discovery.py (0.16s)test-empty-dir.t (1.72s)test-storage.py (4.69s)test-absorb-phase.t (2.17s)test-annotate.py (0.34s)test-extra-filelog-entry.t (1.55s)test-debugrename.t (2.12s)test-issue1438.t (0.08s)test-issue1102.t (2.05s)test-fastannotate-diffopts.t (1.22s)test-revert-unknown.t (1.97s)test-bad-pull.t (0.08s)test-revert-flags.t (0.08s)test-simplekeyvaluefile.py (0.30s)test-backwards-remove.t (1.62s)test-issue1089.t (1.86s)test-contrib-emacs.t (0.08s)test-wireproto.py (0.39s)test-cappedreader.py (0.30s)test-xdg.t (0.08s)test-dirstate-backup.t (0.58s)test-mq-qsave.t (1.42s)test-encoding-func.py (0.16s)test-extensions-wrapfunction.py (0.45s)test-walkrepo.py (0.47s)test-hashutil.py (0.08s)test-revlog-ancestry.py (1.31s)test-rust-revlog.py (0.08s)test-ui-verbosity.py (0.45s)test-filelog.py (0.52s)test-sshserver.py (0.42s)test-hg-parseurl.py (0.42s)test-config-env.py (0.41s)test-symlink-os-yes-fs-no.py (0.47s)test-minifileset.py (0.39s)test-lfs-pointer.py (0.48s)test-duplicateoptions.py (0.61s)test-locale.t (0.20s)test-hgwebdir-paths.py (0.59s)test-ui-color.py (0.47s)test-status-inprocess.py (0.55s)test-dispatch.py (0.56s)test-mdiff.py (0.30s)test-dirs.py (0.28s)