convert: handle changeset sorting errors without traceback (
issue3961)
--- a/hgext/convert/cvsps.py Thu Jul 25 14:43:15 2013 -0700
+++ b/hgext/convert/cvsps.py Fri Jul 26 14:44:13 2013 +0100
@@ -496,6 +496,7 @@
.branchpoints- the branches that start at the current entry or empty
'''
def __init__(self, **entries):
+ self.id = None
self.synthetic = False
self.__dict__.update(entries)
@@ -604,7 +605,8 @@
# Sort changesets by date
- def cscmp(l, r):
+ odd = set()
+ def cscmp(l, r, odd=odd):
d = sum(l.date) - sum(r.date)
if d:
return d
@@ -626,7 +628,8 @@
for e in r.entries:
if le.get(e.rcs, None) == e.parent:
- assert not d
+ if d:
+ odd.add((l, r))
d = -1
break
@@ -769,6 +772,12 @@
for i, c in enumerate(changesets):
c.id = i + 1
+ if odd:
+ for l, r in odd:
+ if l.id is not None and r.id is not None:
+ ui.warn(_('changeset %d is both before and after %d\n')
+ % (l.id, r.id))
+
ui.status(_('%d changeset entries\n') % len(changesets))
hook.hook(ui, None, "cvschangesets", True, changesets=changesets)