hgext3rd/topic/stack.py
changeset 2712 f19b314d8475
parent 2684 90e11985d0cc
child 2750 bd3824d1b795
equal deleted inserted replaced
2711:8c938e9af113 2712:f19b314d8475
    18         trevs = repo.revs("topic(%s) - obsolete()", topic)
    18         trevs = repo.revs("topic(%s) - obsolete()", topic)
    19     elif branch is not None:
    19     elif branch is not None:
    20         trevs = repo.revs("branch(%s) - public() - obsolete() - topic()", branch)
    20         trevs = repo.revs("branch(%s) - public() - obsolete() - topic()", branch)
    21     else:
    21     else:
    22         raise error.ProgrammingError('neither branch and topic specified (not defined yet)')
    22         raise error.ProgrammingError('neither branch and topic specified (not defined yet)')
    23     return _orderrevs(repo, trevs)
    23     revs = _orderrevs(repo, trevs)
       
    24     if revs:
       
    25         pt1 = repo[revs[0]].p1()
       
    26         if pt1.obsolete():
       
    27             pt1 = repo[_singlesuccessor(repo, pt1)]
       
    28         revs.insert(0, pt1.rev())
       
    29     return revs
    24 
    30 
    25 def labelsgen(prefix, labelssuffix):
    31 def labelsgen(prefix, labelssuffix):
    26     """ Takes a label prefix and a list of suffixes. Returns a string of the prefix
    32     """ Takes a label prefix and a list of suffixes. Returns a string of the prefix
    27     formatted with each suffix separated with a space.
    33     formatted with each suffix separated with a space.
    28     """
    34     """
    82         elif data['behindcount']:
    88         elif data['behindcount']:
    83             fm.plain(', ')
    89             fm.plain(', ')
    84             fm.plain('%d behind' % data['behindcount'], label='topic.stack.summary.behindcount')
    90             fm.plain('%d behind' % data['behindcount'], label='topic.stack.summary.behindcount')
    85     fm.plain('\n')
    91     fm.plain('\n')
    86 
    92 
    87     for idx, r in enumerate(getstack(repo, branch=branch, topic=topic), 1):
    93     for idx, r in enumerate(getstack(repo, branch=branch, topic=topic), 0):
    88         ctx = repo[r]
    94         ctx = repo[r]
       
    95         # special case for t0, b0 as it's hard to plugin into rest of the logic
       
    96         if idx == 0:
       
    97             # t0, b0 can be None
       
    98             if r == -1:
       
    99                 continue
       
   100             entries.append((idx, False, ctx))
       
   101             prev = ctx.rev()
       
   102             continue
    89         p1 = ctx.p1()
   103         p1 = ctx.p1()
    90         if p1.obsolete():
   104         if p1.obsolete():
    91             p1 = repo[_singlesuccessor(repo, p1)]
   105             p1 = repo[_singlesuccessor(repo, p1)]
    92         if p1.rev() != prev and p1.node() != node.nullid:
   106         if p1.rev() != prev and p1.node() != node.nullid:
    93             entries.append((idxmap.get(p1.rev()), False, p1))
   107             entries.append((idxmap.get(p1.rev()), False, p1))
   146     :troubledcount: number on troubled changesets
   160     :troubledcount: number on troubled changesets
   147     :headcount: number of heads on the topic
   161     :headcount: number of heads on the topic
   148     :behindcount: number of changeset on rebase destination
   162     :behindcount: number of changeset on rebase destination
   149     """
   163     """
   150     data = {}
   164     data = {}
   151     revs = getstack(repo, branch, topic)
   165     revs = getstack(repo, branch, topic)[1:]
   152     data['changesetcount'] = len(revs)
   166     data['changesetcount'] = len(revs)
   153     data['troubledcount'] = len([r for r in revs if repo[r].troubled()])
   167     data['troubledcount'] = len([r for r in revs if repo[r].troubled()])
   154     deps, rdeps = builddependencies(repo, revs)
   168     deps, rdeps = builddependencies(repo, revs)
   155     data['headcount'] = len([r for r in revs if not rdeps[r]])
   169     data['headcount'] = len([r for r in revs if not rdeps[r]])
   156     data['behindcount'] = 0
   170     data['behindcount'] = 0