Mercurial > public > mercurial-scm > hg
comparison mercurial/revset.py @ 25547:99a1f73af85b
revset: point out wrong behavior in fullreposet
I cannot fix all issues in revset because I've got other things to do,
but let's write down all the brokenness to help other people reading
and fixing.
author | Pierre-Yves David <pierre-yves.david@fb.com> |
---|---|
date | Thu, 11 Jun 2015 14:00:13 -0700 |
parents | ceaf04bb14ff |
children | 9584bcf27637 |
comparison
equal
deleted
inserted
replaced
25546:59cdf631388b | 25547:99a1f73af85b |
---|---|
3539 # | 3539 # |
3540 # `other` was used with "&", let's assume this is a set like | 3540 # `other` was used with "&", let's assume this is a set like |
3541 # object. | 3541 # object. |
3542 other = baseset(other - self._hiddenrevs) | 3542 other = baseset(other - self._hiddenrevs) |
3543 | 3543 |
3544 # XXX As fullreposet is also used as bootstrap, this is wrong. | |
3545 # | |
3546 # With a giveme312() revset returning [3,1,2], this makes | |
3547 # 'hg log -r "giveme312()"' -> 1, 2, 3 (wrong) | |
3548 # We cannot just drop it because other usage still need to sort it: | |
3549 # 'hg log -r "all() and giveme312()"' -> 1, 2, 3 (right) | |
3550 # | |
3551 # There is also some faulty revset implementations that rely on it | |
3552 # (eg: children as of its state in e8075329c5fb) | |
3553 # | |
3554 # When we fix the two points above we can move this into the if clause | |
3544 other.sort(reverse=self.isdescending()) | 3555 other.sort(reverse=self.isdescending()) |
3545 return other | 3556 return other |
3546 | 3557 |
3547 def prettyformatset(revs): | 3558 def prettyformatset(revs): |
3548 lines = [] | 3559 lines = [] |