hgext3rd/topic/stack.py
changeset 4434 432f2155d106
parent 4433 a19d8196b0c9
child 4435 7915aef191ff
equal deleted inserted replaced
4433:a19d8196b0c9 4434:432f2155d106
   319     # super crude initial version
   319     # super crude initial version
   320     for idx, isentry, ctx in entries[::-1]:
   320     for idx, isentry, ctx in entries[::-1]:
   321 
   321 
   322         symbol = None
   322         symbol = None
   323         states = []
   323         states = []
   324         msg = ''
       
   325         iscurrentrevision = repo.revs('%d and parents()', ctx.rev())
   324         iscurrentrevision = repo.revs('%d and parents()', ctx.rev())
   326         if opts.get('children'):
   325         if opts.get('children'):
   327             expr = 'children(%d) and merge() - %ld'
   326             expr = 'children(%d) and merge() - %ld'
   328             revisions = repo.revs(expr, ctx.rev(), st.revs[1:])
   327             revisions = repo.revs(expr, ctx.rev(), st.revs[1:])
   329             if len(revisions) > 0:
   328             if len(revisions) > 0:
   330                 msg = 'external-children'
   329                 states.append('external-children')
   331 
   330 
   332         if iscurrentrevision:
   331         if iscurrentrevision:
   333             symbol = '@'
   332             symbol = '@'
   334             if msg:
   333             states.append('current')
   335                 states.append('current - ' + msg)
       
   336             else:
       
   337                 states.append('current')
       
   338 
   334 
   339         if ctx.orphan():
   335         if ctx.orphan():
   340             symbol = '$'
   336             symbol = '$'
   341             if msg:
   337             states.append('orphan')
   342                 states.append('orphan - ' + msg)
       
   343             else:
       
   344                 states.append('orphan')
       
   345 
   338 
   346         if not isentry:
   339         if not isentry:
   347             symbol = '^'
   340             symbol = '^'
   348             # "base" is kind of a "ghost" entry
   341             # "base" is kind of a "ghost" entry
   349             states.append('base')
   342             states.append('base')
   350 
   343 
   351         # none of the above if statments get executed
   344         # none of the above if statments get executed
   352         if not symbol:
   345         if not symbol:
   353             symbol = ':'
   346             symbol = ':'
   354             if msg:
   347 
   355                 states.append(msg)
   348         if not states:
   356             else:
   349             states.append('clean')
   357                 states.append('clean')
       
   358 
   350 
   359         states.sort()
   351         states.sort()
   360 
   352 
   361         fm.startitem()
   353         fm.startitem()
   362         fm.data(isentry=isentry)
   354         fm.data(isentry=isentry)