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

Jordi GutiƩrrez Hermoso jordigh at octave.org
Thu May 21 15:30:22 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 0fb37fa049f0eb3a2e0284cb10a20bcf711cd26f
# Parent  94b79351d9569b65c3c111cbfe88a03112d617a9
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
@@ -1344,7 +1344,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