Mercurial > hg
changeset 29406:c2193e59ef9f
revsets: passing a set to baseset() is not wrong
Since 69c6e9623bdc (revset: force ascending order for baseset
initialized from a set, 2016-04-04), it is safe to pass a revset to a
baseset.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Thu, 23 Jun 2016 12:39:05 -0700 |
parents | fbe380dc227a |
children | 20fabe814f89 |
files | mercurial/revset.py |
diffstat | 1 files changed, 2 insertions(+), 6 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/revset.py Fri Jun 24 02:04:43 2016 +0200 +++ b/mercurial/revset.py Thu Jun 23 12:39:05 2016 -0700 @@ -692,20 +692,18 @@ return subset.filter(matches, condrepr=('<status[%r] %r>', field, pat)) -def _children(repo, narrow, parentset): +def _children(repo, subset, parentset): if not parentset: return baseset() cs = set() pr = repo.changelog.parentrevs minrev = parentset.min() - for r in narrow: + for r in subset: if r <= minrev: continue for p in pr(r): if p in parentset: cs.add(r) - # XXX using a set to feed the baseset is wrong. Sets are not ordered. - # This does not break because of other fullreposet misbehavior. return baseset(cs) @predicate('children(set)', safe=True) @@ -1149,8 +1147,6 @@ cl = repo.changelog for b, ls in repo.branchmap().iteritems(): hs.update(cl.rev(h) for h in ls) - # XXX using a set to feed the baseset is wrong. Sets are not ordered. - # This does not break because of other fullreposet misbehavior. # XXX We should combine with subset first: 'subset & baseset(...)'. This is # necessary to ensure we preserve the order in subset. return baseset(hs) & subset