mercurial/obsolete.py
changeset 29389 98e8313dcd9e
parent 29281 9ac309946df9
child 29894 02c150850e16
equal deleted inserted replaced
29388:f694e20193f2 29389:98e8313dcd9e
   598         """Add new markers to the store
   598         """Add new markers to the store
   599 
   599 
   600         Take care of filtering duplicate.
   600         Take care of filtering duplicate.
   601         Return the number of new marker."""
   601         Return the number of new marker."""
   602         if self._readonly:
   602         if self._readonly:
   603             raise error.Abort('creating obsolete markers is not enabled on '
   603             raise error.Abort(_('creating obsolete markers is not enabled on '
   604                               'this repo')
   604                               'this repo'))
   605         known = set(self._all)
   605         known = set(self._all)
   606         new = []
   606         new = []
   607         for m in markers:
   607         for m in markers:
   608             if m not in known:
   608             if m not in known:
   609                 known.add(m)
   609                 known.add(m)
  1232             localmetadata = metadata.copy()
  1232             localmetadata = metadata.copy()
  1233             if 2 < len(rel):
  1233             if 2 < len(rel):
  1234                 localmetadata.update(rel[2])
  1234                 localmetadata.update(rel[2])
  1235 
  1235 
  1236             if not prec.mutable():
  1236             if not prec.mutable():
  1237                 raise error.Abort("cannot obsolete public changeset: %s"
  1237                 raise error.Abort(_("cannot obsolete public changeset: %s")
  1238                                  % prec,
  1238                                  % prec,
  1239                                  hint='see "hg help phases" for details')
  1239                                  hint='see "hg help phases" for details')
  1240             nprec = prec.node()
  1240             nprec = prec.node()
  1241             nsucs = tuple(s.node() for s in sucs)
  1241             nsucs = tuple(s.node() for s in sucs)
  1242             npare = None
  1242             npare = None
  1243             if not nsucs:
  1243             if not nsucs:
  1244                 npare = tuple(p.node() for p in prec.parents())
  1244                 npare = tuple(p.node() for p in prec.parents())
  1245             if nprec in nsucs:
  1245             if nprec in nsucs:
  1246                 raise error.Abort("changeset %s cannot obsolete itself" % prec)
  1246                 raise error.Abort(_("changeset %s cannot obsolete itself")
       
  1247                                   % prec)
  1247 
  1248 
  1248             # Creating the marker causes the hidden cache to become invalid,
  1249             # Creating the marker causes the hidden cache to become invalid,
  1249             # which causes recomputation when we ask for prec.parents() above.
  1250             # which causes recomputation when we ask for prec.parents() above.
  1250             # Resulting in n^2 behavior.  So let's prepare all of the args
  1251             # Resulting in n^2 behavior.  So let's prepare all of the args
  1251             # first, then create the markers.
  1252             # first, then create the markers.