equal
deleted
inserted
replaced
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 |