obsolete.py
changeset 42 eb6a06d7eae3
parent 41 99c131e97bb3
child 43 20fca307d9f0
equal deleted inserted replaced
41:99c131e97bb3 42:eb6a06d7eae3
     8 
     8 
     9 from mercurial import util
     9 from mercurial import util
    10 from mercurial import context
    10 from mercurial import context
    11 from mercurial import revset
    11 from mercurial import revset
    12 from mercurial import scmutil
    12 from mercurial import scmutil
       
    13 from mercurial import extensions
    13 from mercurial.node import hex, bin
    14 from mercurial.node import hex, bin
    14 
    15 
    15 # Patch changectx
    16 # Patch changectx
    16 #############################
    17 #############################
    17 
    18 
    43     args = revset.getargs(x, 0, 0, 'publicheads takes no arguments')
    44     args = revset.getargs(x, 0, 0, 'publicheads takes no arguments')
    44     return [r for r in subset if repo[r].obsolete()] # XXX slow
    45     return [r for r in subset if repo[r].obsolete()] # XXX slow
    45 
    46 
    46 def extsetup(ui):
    47 def extsetup(ui):
    47     revset.symbols["obsolete"] = revsetobsolete
    48     revset.symbols["obsolete"] = revsetobsolete
       
    49     try:
       
    50         rebase = extensions.find('rebase')
       
    51         if rebase:
       
    52             extensions.wrapfunction(rebase, 'concludenode', concludenode)
       
    53     except KeyError:
       
    54         pass # rebase not found
    48 
    55 
    49 # New commands
    56 # New commands
    50 #############################
    57 #############################
    51 
    58 
    52 
    59 
   137             self._writeobsrels()
   144             self._writeobsrels()
   138 
   145 
   139     repo.__class__ = obsoletingrepo
   146     repo.__class__ = obsoletingrepo
   140 
   147 
   141 
   148 
       
   149 ### Other Extension compat
       
   150 ############################
       
   151 
       
   152 def concludenode(orig, repo, rev, *args, **kwargs):
       
   153     newrev = orig(repo, rev, *args, **kwargs)
       
   154     oldnode = repo[rev].node()
       
   155     newnode = repo[newrev].node()
       
   156     repo.addobsolete(newnode, oldnode)
       
   157     return newrev
       
   158