Description: Handle ChecksumMismatch raised by dulwich >= 1.2.7 in gverify --fsck
Forwarded: no
Index: hg-git/hggit/commands.py
===================================================================
--- hg-git.orig/hggit/commands.py
+++ hg-git/hggit/commands.py
@@ -10,6 +10,7 @@
 import os
 
 from dulwich import porcelain
+from dulwich.errors import ChecksumMismatch
 
 from mercurial.node import hex, nullhex
 from mercurial.i18n import _
@@ -83,7 +84,10 @@ def gverify(ui, repo, **opts):
     '''
 
     if opts.get('fsck'):
-        for badsha, e in porcelain.fsck(repo.githandler.git):
+        try:
+            for badsha, e in porcelain.fsck(repo.githandler.git):
+                raise error.Abort(b'git repository is corrupt!')
+        except ChecksumMismatch:
             raise error.Abort(b'git repository is corrupt!')
 
     ctx = scmutil.revsingle(repo, opts.get('rev'), b'.')
Index: hg-git/tests/test-verify-fail.t
===================================================================
--- hg-git.orig/tests/test-verify-fail.t
+++ hg-git/tests/test-verify-fail.t
@@ -84,7 +84,8 @@ corrupt git repository
   abort: git repository is corrupt!
   [255]
   $ hg gverify
-  abort: git equivalent 6dff77b710b6f0961ac0b6d91d85902195133d74 for rev 5c2eb98af3e2 is not a commit!
+  abort: git equivalent 6dff77b710b6f0961ac0b6d91d85902195133d74 for rev 5c2eb98af3e2 is corrupt!
+  (re-run with --traceback for details)
   [255]
   $ chmod +w .hg/git/objects/6d/ff77b710b6f0961ac0b6d91d85902195133d74
   $ echo 42 > .hg/git/objects/6d/ff77b710b6f0961ac0b6d91d85902195133d74
