hgext/obsolete.py
changeset 299 eda6491ca269
parent 298 f597421662f7
child 300 3b1f326878e5
equal deleted inserted replaced
298:f597421662f7 299:eda6491ca269
    99 from mercurial import phases
    99 from mercurial import phases
   100 from mercurial.node import hex, bin, short, nullid
   100 from mercurial.node import hex, bin, short, nullid
   101 from mercurial.lock import release
   101 from mercurial.lock import release
   102 from mercurial import localrepo
   102 from mercurial import localrepo
   103 from mercurial import cmdutil
   103 from mercurial import cmdutil
       
   104 from mercurial import templatekw
   104 
   105 
   105 try:
   106 try:
   106     from mercurial.localrepo import storecache
   107     from mercurial.localrepo import storecache
   107     storecache('babar') # to trigger import
   108     storecache('babar') # to trigger import
   108 except (TypeError, ImportError):
   109 except (TypeError, ImportError):
   213     s = revset.getset(repo, range(len(repo)), x)
   214     s = revset.getset(repo, range(len(repo)), x)
   214     cs = _obsancestors(repo, s)
   215     cs = _obsancestors(repo, s)
   215     return [r for r in subset if r in cs]
   216     return [r for r in subset if r in cs]
   216 
   217 
   217 
   218 
       
   219 ### template keywords
       
   220 #####################
       
   221 
       
   222 def obsoletekw(repo, ctx, templ, **args):
       
   223     """:obsolete: String. The obsolescence level of the node, could be
       
   224     ``stable``, ``unstable``, ``suspended`` or ``extinct``.
       
   225     """
       
   226     rev = ctx.rev()
       
   227     if rev in repo._extinctset:
       
   228         return 'extinct'
       
   229     if rev in repo._suspendedset:
       
   230         return 'suspended'
       
   231     if rev in repo._unstableset:
       
   232         return 'unstable'
       
   233     return 'stable'
   218 
   234 
   219 ### Other Extension compat
   235 ### Other Extension compat
   220 ############################
   236 ############################
   221 
   237 
   222 
   238 
   308     revset.symbols["suspended"] = revsetsuspended
   324     revset.symbols["suspended"] = revsetsuspended
   309     revset.symbols["extinct"] = revsetextinct
   325     revset.symbols["extinct"] = revsetextinct
   310     revset.symbols["obsparents"] = revsetobsparents
   326     revset.symbols["obsparents"] = revsetobsparents
   311     revset.symbols["obsancestors"] = revsetobsancestors
   327     revset.symbols["obsancestors"] = revsetobsancestors
   312 
   328 
       
   329     templatekw.keywords['obsolete'] = obsoletekw
   313 
   330 
   314     try:
   331     try:
   315         rebase = extensions.find('rebase')
   332         rebase = extensions.find('rebase')
   316         if rebase:
   333         if rebase:
   317             extensions.wrapfunction(rebase, 'buildstate', buildstate)
   334             extensions.wrapfunction(rebase, 'buildstate', buildstate)