Mercurial > hg
changeset 35272:70e86db6a913
dagop: yield intro filectx by filectxancestors()
This is the convention of dagop.*ancestors() functions.
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Thu, 22 Sep 2016 17:48:46 +0900 |
parents | d90c534099b1 |
children | 8dee2080f35c |
files | mercurial/dagop.py mercurial/revset.py |
diffstat | 2 files changed, 3 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/dagop.py Sun Oct 22 17:23:34 2017 +0900 +++ b/mercurial/dagop.py Thu Sep 22 17:48:46 2016 +0900 @@ -76,7 +76,7 @@ heapq.heappush(pendingheap, (heapsign * prev, pdepth)) def filectxancestors(fctx, followfirst=False): - """Like filectx.ancestors()""" + """Like filectx.ancestors(), but includes the given fctx itself""" visit = {} c = fctx if followfirst: @@ -84,6 +84,7 @@ else: cut = None + yield c while True: for parent in c.parents()[:cut]: visit[(parent.linkrev(), parent.filenode())] = parent
--- a/mercurial/revset.py Sun Oct 22 17:23:34 2017 +0900 +++ b/mercurial/revset.py Thu Sep 22 17:48:46 2016 +0900 @@ -929,11 +929,9 @@ s = set() for fname in files: - fctx = c[fname] + fctx = c[fname].introfilectx() a = dagop.filectxancestors(fctx, followfirst) s = s.union(set(c.rev() for c in a)) - # include the revision responsible for the most recent version - s.add(fctx.introrev()) else: s = dagop.revancestors(repo, baseset([c.rev()]), followfirst)