hgext3rd/topic/stack.py
branchstable
changeset 3088 b3efdd407f30
parent 3085 3eca2cbdc498
child 3123 237b39bf7e6b
equal deleted inserted replaced
3077:b76fe277cef2 3088:b3efdd407f30
   273         prev = r
   273         prev = r
   274 
   274 
   275     # super crude initial version
   275     # super crude initial version
   276     for idx, isentry, ctx in entries[::-1]:
   276     for idx, isentry, ctx in entries[::-1]:
   277 
   277 
       
   278         symbol = None
   278         states = []
   279         states = []
   279         iscurrentrevision = repo.revs('%d and parents()', ctx.rev())
   280         iscurrentrevision = repo.revs('%d and parents()', ctx.rev())
       
   281 
       
   282         if iscurrentrevision:
       
   283             states.append('current')
       
   284             symbol = '@'
       
   285 
       
   286         if ctx.orphan():
       
   287             symbol = '$'
       
   288             states.append('unstable')
   280 
   289 
   281         if not isentry:
   290         if not isentry:
   282             symbol = '^'
   291             symbol = '^'
   283             # "base" is kind of a "ghost" entry
   292             # "base" is kind of a "ghost" entry
   284             # skip other label for them (no current, no unstable)
   293             states.append('base')
   285             states = ['base']
   294 
   286         elif ctx.orphan():
   295         # none of the above if statments get executed
   287             # current revision can be unstable also, so in that case show both
   296         if not symbol:
   288             # the states and the symbol '@' (issue5553)
       
   289             if iscurrentrevision:
       
   290                 states.append('current')
       
   291                 symbol = '@'
       
   292             symbol = '$'
       
   293             states.append('unstable')
       
   294         elif iscurrentrevision:
       
   295             states.append('current')
       
   296             symbol = '@'
       
   297         else:
       
   298             symbol = ':'
   297             symbol = ':'
   299             states.append('clean')
   298             states.append('clean')
       
   299 
       
   300         states.sort()
       
   301 
   300         fm.startitem()
   302         fm.startitem()
   301         fm.data(isentry=isentry)
   303         fm.data(isentry=isentry)
   302 
   304 
   303         if idx is None:
   305         if idx is None:
   304             fm.plain('  ')
   306             fm.plain('  ')