diff mercurial/debugcommands.py @ 40365:4f37af86d5d5

debugcommands: avoid stack trace from debugindexstats in pure mode This has been broken since I added it in d71e0ba34d9b (debugcommands: add a debugindexstats command, 2018-08-08). This patch also fixes the test. Differential Revision: https://phab.mercurial-scm.org/D5152
author Martin von Zweigbergk <martinvonz@google.com>
date Thu, 18 Oct 2018 10:11:08 -0700
parents 64360202d5b2
children 24cb8a6d4c20
line wrap: on
line diff
--- a/mercurial/debugcommands.py	Thu Oct 18 11:24:20 2018 -0400
+++ b/mercurial/debugcommands.py	Thu Oct 18 10:11:08 2018 -0700
@@ -1168,7 +1168,10 @@
 def debugindexstats(ui, repo):
     """show stats related to the changelog index"""
     repo.changelog.shortest(nullid, 1)
-    for k, v in sorted(repo.changelog.index.stats().items()):
+    index = repo.changelog.index
+    if not util.safehasattr(index, 'stats'):
+        raise error.Abort(_('debugindexstats only works with native code'))
+    for k, v in sorted(index.stats().items()):
         ui.write('%s: %s\n' % (k, v))
 
 @command('debuginstall', [] + cmdutil.formatteropts, '', norepo=True)