diff -r 183965a00c76 -r f1d46075b13a mercurial/hg.py --- a/mercurial/hg.py Sun Jun 14 22:04:17 2015 -0400 +++ b/mercurial/hg.py Tue Jun 16 16:15:15 2015 -0400 @@ -664,7 +664,28 @@ def verify(repo): """verify the consistency of a repository""" - return verifymod.verify(repo) + ret = verifymod.verify(repo) + + # Broken subrepo references in hidden csets don't seem worth worrying about, + # since they can't be pushed/pulled, and --hidden can be used if they are a + # concern. + + # pathto() is needed for -R case + revs = repo.revs("filelog(%s)", + util.pathto(repo.root, repo.getcwd(), '.hgsubstate')) + + if revs: + repo.ui.status(_('checking subrepo links\n')) + for rev in revs: + ctx = repo[rev] + try: + for subpath in ctx.substate: + ret = ctx.sub(subpath).verify() or ret + except Exception: + repo.ui.warn(_('.hgsubstate is corrupt in revision %s\n') % + node.short(ctx.node())) + + return ret def remoteui(src, opts): 'build a remote ui from ui or repo and opts'