hgext/obsolete.py
changeset 353 8feb73f733cb
parent 349 9c156b9caa4f
parent 351 4ecbaec1d664
child 359 43f79983f638
--- a/hgext/obsolete.py	Tue Jul 10 15:14:58 2012 +0200
+++ b/hgext/obsolete.py	Tue Jul 10 16:14:29 2012 +0200
@@ -566,7 +566,7 @@
                 del oldmark['id']  # dropped for now
                 del oldmark['reason']  # unused until then
                 oldobject = str(oldmark.pop('object'))
-                oldsubjects = [str(s) for s in oldmark.pop('subjects')]
+                oldsubjects = [str(s) for s in oldmark.pop('subjects', [])]
                 LOOKUP_ERRORS = (error.RepoLookupError, error.LookupError)
                 if len(oldobject) != 40:
                     try:
@@ -583,7 +583,9 @@
                 meta = dict((k.encode('utf-8'), v.encode('utf-8'))
                              for k, v in oldmark.iteritems())
                 try:
-                    store.create(bin(oldobject), [bin(n) for n in oldsubjects],
+                    succs = [bin(n) for n in oldsubjects]
+                    succs = [n for n in succs if n != nullid]
+                    store.create(bin(oldobject), succs,
                                  0, meta)
                     cnt += 1
                 except ValueError:
@@ -718,6 +720,7 @@
     while toproceed:
         current = toproceed.pop()
         assert len(current) <= 1, 'splitting not handled yet. %r' % current
+        current = [n for n in current if n != nullid]
         if current:
             n, = current
             if n in objectrels: