# HG changeset patch # User Levi Bard # Date 1326038794 -3600 # Node ID 884946c002b82c36fcb757e34512e8f399da5777 # Parent 62098aeb1e1575d583023f7853c622998e1cb4c7 largefiles: add error checking to tags conversion (issue3092) Check for errors when parsing .hgtags during lfconvert, and skip lines that don't parse or refer to invalid changesets. diff -r 62098aeb1e15 -r 884946c002b8 hgext/largefiles/lfcommands.py --- a/hgext/largefiles/lfcommands.py Sun Jan 08 17:03:39 2012 +0100 +++ b/hgext/largefiles/lfcommands.py Sun Jan 08 17:06:34 2012 +0100 @@ -295,9 +295,24 @@ if f == '.hgtags': newdata = [] for line in data.splitlines(): - id, name = line.split(' ', 1) - newdata.append('%s %s\n' % (node.hex(revmap[node.bin(id)]), - name)) + try: + id, name = line.split(' ', 1) + except ValueError: + repo.ui.warn(_('skipping incorrectly formatted tag %s\n' + % line)) + continue + try: + newid = node.bin(id) + except TypeError: + repo.ui.warn(_('skipping incorrectly formatted id %s\n' + % id)) + continue + try: + newdata.append('%s %s\n' % (node.hex(revmap[newid]), + name)) + except KeyError: + repo.ui.warn(_('no mapping for id %s\n' % id)) + continue data = ''.join(newdata) return context.memfilectx(f, data, 'l' in fctx.flags(), 'x' in fctx.flags(), renamed)