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 = []