[PATCH 3 of 3 V3] localrepo: better error message when revlog error and file addition (issue4675)

Jordi GutiƩrrez Hermoso jordigh at octave.org
Tue Jun 2 14:07:10 CDT 2015


# HG changeset patch
# User Jordi GutiƩrrez Hermoso <jordigh at octave.org>
# Date 1432239912 14400
#      Thu May 21 16:25:12 2015 -0400
# Node ID 6299517509f9a8912ff83fffa46cecf964ba779c
# Parent  3353bc00fbb14f2930cf0e9b72be312e578d2f6e
localrepo: better error message when revlog error and file addition (issue4675)

At this level we have enough context for saying which filename caused
the revlog error, and we can also add the hint from the revlog
exception, if any.

diff --git a/mercurial/localrepo.py b/mercurial/localrepo.py
--- a/mercurial/localrepo.py
+++ b/mercurial/localrepo.py
@@ -1348,7 +1348,10 @@ class localrepository(object):
         text = fctx.data()
         if fparent2 != nullid or flog.cmp(fparent1, text) or meta:
             changelist.append(fname)
-            return flog.add(text, meta, tr, linkrev, fparent1, fparent2)
+            try:
+                return flog.add(text, meta, tr, linkrev, fparent1, fparent2)
+            except error.RevlogError as exc:
+                raise util.Abort("%s: %s" % (exc, fname), hint=exc.hint)
         # are just the flags changed during merge?
         elif fname in manifest1 and manifest1.flags(fname) != fctx.flags():
             changelist.append(fname)


More information about the Mercurial-devel mailing list