# HG changeset patch # User Pierre-Yves David # Date 1341417093 -7200 # Node ID 7db8107eef30d7c841161d0f78a32ae60dce2bd7 # Parent c27a465daef239ec619ed8c0d0935be2a6e2959d obsolete: Only warn on bad obsolete marker Older version probably created invalide one. diff -r c27a465daef2 -r 7db8107eef30 hgext/obsolete.py --- a/hgext/obsolete.py Wed Jul 04 16:27:08 2012 +0200 +++ b/hgext/obsolete.py Wed Jul 04 17:51:33 2012 +0200 @@ -569,6 +569,7 @@ def cmddebugconvertobsolete(ui, repo): """import markers from an .hg/obsolete-relations file""" cnt = 0 + error = 0 l = repo.lock() some = False try: @@ -602,12 +603,20 @@ for oldmark in json.loads(data): del oldmark['id'] # dropped for now del oldmark['reason'] # unused until then + oldobject = oldmark['object'] + oldsubjects = oldmark['subjects'] oldmark['subjects'] = [bin(n) for n in oldmark['subjects']] oldmark['object'] = bin(oldmark['object']) oldmark['date'] = '%i %i' % tuple(oldmark['date']) - store.create(oldmark.pop('object'), - oldmark.pop('subjects'), - 0, oldmark) + assert oldmark['object'], repr(oldmark['object']) + try: + store.create(oldmark.pop('object'), + oldmark.pop('subjects'), + 0, oldmark) + except ValueError: + repo.ui.write_err("invalid marker %s -> %s\n" + % (oldobject, oldsubjects)) + error += 1 cnt += 1 util.unlink(repo.sjoin('obsoletemarkers')) finally: @@ -616,6 +625,8 @@ if not some: ui.warn('nothing to do\n') ui.status('%i obsolete marker converted\n' % cnt) + if error: + ui.write_err('%i conversion failed. check you graph!\n' % error) @command('debugsuccessors', [], '') def cmddebugsuccessors(ui, repo):