hgext/obsolete.py
changeset 444 aedb6b8ace86
parent 443 3f8c11865ed2
child 445 52b5e14c63d5
equal deleted inserted replaced
443:3f8c11865ed2 444:aedb6b8ace86
   588             repo.obsstore.create(tr, nprec, nsucs, flag, metadata)
   588             repo.obsstore.create(tr, nprec, nsucs, flag, metadata)
   589             repo._clearobsoletecache()
   589             repo._clearobsoletecache()
   590         tr.close()
   590         tr.close()
   591     finally:
   591     finally:
   592         tr.release()
   592         tr.release()
   593 
       
   594 @eh.reposetup
       
   595 def _repoobsutilsetup(ui, repo):
       
   596     if not repo.local():
       
   597         return
       
   598 
       
   599     class obsoletingrepo(repo.__class__):
       
   600 
       
   601         # XXX kill me
       
   602         def addobsolete(self, sub, obj):
       
   603             """Add a relation marking that node <sub> is a new version of <obj>"""
       
   604             prec = repo[obj]
       
   605             sucs = (sub == nullid) and [] or [repo[sub]]
       
   606             lock = self.lock()
       
   607             try:
       
   608                 createmarkers(self, [(prec, sucs)])
       
   609             finally:
       
   610                 lock.release()
       
   611 
       
   612     repo.__class__ = obsoletingrepo
       
   613 
   593 
   614 #####################################################################
   594 #####################################################################
   615 ### Extending revset and template                                 ###
   595 ### Extending revset and template                                 ###
   616 #####################################################################
   596 #####################################################################
   617 
   597 
   899                         else:
   879                         else:
   900                             newnode = nullid
   880                             newnode = nullid
   901                             markers = [(repo[r], ())
   881                             markers = [(repo[r], ())
   902                                        for r in replacements]
   882                                        for r in replacements]
   903                         createmarkers(repo, markers)
   883                         createmarkers(repo, markers)
   904                     else:
   884                     elif replacements:
   905                         for oldnode, newnode in replacements.iteritems():
   885                         markers = [(repo[o], (() if n == nullid else (repo[n],)))
   906                             repo.addobsolete(newnode, oldnode)
   886                                    for o, n in replacements.iteritems()]
       
   887                         createmarkers(repo, markers)
   907             return res
   888             return res
   908         finally:
   889         finally:
   909             l.release()
   890             l.release()
   910     finally:
   891     finally:
   911         delattr(repo, '_rebasestate')
   892         delattr(repo, '_rebasestate')