mercurial/obsolete.py
changeset 22256 3ae6cc6173e3
parent 22255 adb3798dce49
child 22257 4bc96685a40c
equal deleted inserted replaced
22255:adb3798dce49 22256:3ae6cc6173e3
   884             if not prec.mutable():
   884             if not prec.mutable():
   885                 raise util.Abort("cannot obsolete immutable changeset: %s"
   885                 raise util.Abort("cannot obsolete immutable changeset: %s"
   886                                  % prec)
   886                                  % prec)
   887             nprec = prec.node()
   887             nprec = prec.node()
   888             nsucs = tuple(s.node() for s in sucs)
   888             nsucs = tuple(s.node() for s in sucs)
       
   889             npare = None
       
   890             if not nsucs:
       
   891                 npare = tuple(p.node() for p in prec.parents())
   889             if nprec in nsucs:
   892             if nprec in nsucs:
   890                 raise util.Abort("changeset %s cannot obsolete itself" % prec)
   893                 raise util.Abort("changeset %s cannot obsolete itself" % prec)
   891             repo.obsstore.create(tr, nprec, nsucs, flag, date=date,
   894             repo.obsstore.create(tr, nprec, nsucs, flag, parents=npare,
   892                                  metadata=localmetadata)
   895                                  date=date, metadata=localmetadata)
   893             repo.filteredrevcache.clear()
   896             repo.filteredrevcache.clear()
   894         tr.close()
   897         tr.close()
   895     finally:
   898     finally:
   896         tr.release()
   899         tr.release()