Mercurial > hg
comparison mercurial/dagop.py @ 35275:b4b328ea6175
dagop: put start fctx into visit dict of filectxancestors()
Prepares for multiple start revisions/files.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Thu, 22 Sep 2016 18:18:56 +0900 |
parents | 2b348dc3239a |
children | 205c3c6c1a51 |
comparison
equal
deleted
inserted
replaced
35274:2b348dc3239a | 35275:b4b328ea6175 |
---|---|
82 rev = fctx.rev() | 82 rev = fctx.rev() |
83 if rev not in visit: | 83 if rev not in visit: |
84 visit[rev] = set() | 84 visit[rev] = set() |
85 visit[rev].add(fctx) | 85 visit[rev].add(fctx) |
86 | 86 |
87 c = fctx | |
88 if followfirst: | 87 if followfirst: |
89 cut = 1 | 88 cut = 1 |
90 else: | 89 else: |
91 cut = None | 90 cut = None |
92 | 91 |
93 yield c | 92 addvisit(fctx) |
94 while True: | 93 while visit: |
95 for parent in c.parents()[:cut]: | |
96 addvisit(parent) | |
97 if not visit: | |
98 break | |
99 rev = max(visit) | 94 rev = max(visit) |
100 c = visit[rev].pop() | 95 c = visit[rev].pop() |
101 if not visit[rev]: | 96 if not visit[rev]: |
102 del visit[rev] | 97 del visit[rev] |
103 yield c | 98 yield c |
99 for parent in c.parents()[:cut]: | |
100 addvisit(parent) | |
104 | 101 |
105 def _genrevancestors(repo, revs, followfirst, startdepth, stopdepth, cutfunc): | 102 def _genrevancestors(repo, revs, followfirst, startdepth, stopdepth, cutfunc): |
106 if followfirst: | 103 if followfirst: |
107 cut = 1 | 104 cut = 1 |
108 else: | 105 else: |