Show More
@@ -372,6 +372,18 b' class baseset(abstractsmartset):' | |||
|
372 | 372 | def __sub__(self, other): |
|
373 | 373 | return self._fastsetop(other, '__sub__') |
|
374 | 374 | |
|
375 | def _slice(self, start, stop): | |
|
376 | # creating new list should be generally cheaper than iterating items | |
|
377 | if self._ascending is None: | |
|
378 | return baseset(self._list[start:stop], istopo=self._istopo) | |
|
379 | ||
|
380 | data = self._asclist | |
|
381 | if not self._ascending: | |
|
382 | start, stop = max(len(data) - stop, 0), max(len(data) - start, 0) | |
|
383 | s = baseset(data[start:stop], istopo=self._istopo) | |
|
384 | s._ascending = self._ascending | |
|
385 | return s | |
|
386 | ||
|
375 | 387 | def __repr__(self): |
|
376 | 388 | d = {None: '', False: '-', True: '+'}[self._ascending] |
|
377 | 389 | s = _formatsetrepr(self._datarepr) |
@@ -1037,6 +1037,49 b' Test smartset.slice() by first/last()' | |||
|
1037 | 1037 | 6 |
|
1038 | 1038 | 7 |
|
1039 | 1039 | |
|
1040 | (using baseset) | |
|
1041 | ||
|
1042 | $ hg debugrevspec --no-show-revs -s 0+1+2+3+4+5+6+7 | |
|
1043 | * set: | |
|
1044 | <baseset [0, 1, 2, 3, 4, 5, 6, 7]> | |
|
1045 | $ hg debugrevspec --no-show-revs -s 0::7 | |
|
1046 | * set: | |
|
1047 | <baseset+ [0, 1, 2, 3, 4, 5, 6, 7]> | |
|
1048 | $ log 'limit(0+1+2+3+4+5+6+7, 3, 4)' | |
|
1049 | 4 | |
|
1050 | 5 | |
|
1051 | 6 | |
|
1052 | $ log 'limit(sort(0::7, rev), 3, 4)' | |
|
1053 | 4 | |
|
1054 | 5 | |
|
1055 | 6 | |
|
1056 | $ log 'limit(sort(0::7, -rev), 3, 4)' | |
|
1057 | 3 | |
|
1058 | 2 | |
|
1059 | 1 | |
|
1060 | $ log 'last(sort(0::7, rev), 2)' | |
|
1061 | 6 | |
|
1062 | 7 | |
|
1063 | $ hg debugrevspec -s 'limit(sort(0::7, rev), 3, 6)' | |
|
1064 | * set: | |
|
1065 | <baseset+ [6, 7]> | |
|
1066 | 6 | |
|
1067 | 7 | |
|
1068 | $ hg debugrevspec -s 'limit(sort(0::7, rev), 3, 9)' | |
|
1069 | * set: | |
|
1070 | <baseset+ []> | |
|
1071 | $ hg debugrevspec -s 'limit(sort(0::7, -rev), 3, 6)' | |
|
1072 | * set: | |
|
1073 | <baseset- [0, 1]> | |
|
1074 | 1 | |
|
1075 | 0 | |
|
1076 | $ hg debugrevspec -s 'limit(sort(0::7, -rev), 3, 9)' | |
|
1077 | * set: | |
|
1078 | <baseset- []> | |
|
1079 | $ hg debugrevspec -s 'limit(0::7, 0)' | |
|
1080 | * set: | |
|
1081 | <baseset+ []> | |
|
1082 | ||
|
1040 | 1083 | Test order of first/last revisions |
|
1041 | 1084 | |
|
1042 | 1085 | $ hg debugrevspec -s 'first(4:0, 3) & 3:' |
@@ -1967,8 +2010,7 b' ordering defined by it.' | |||
|
1967 | 2010 | define) |
|
1968 | 2011 | * set: |
|
1969 | 2012 | <filteredset |
|
1970 |
<baseset |
|
|
1971 | <baseset [1, 0, 2]>>, | |
|
2013 | <baseset [1]>, | |
|
1972 | 2014 | <spanset- 0:3>> |
|
1973 | 2015 | 1 |
|
1974 | 2016 | |
@@ -2003,8 +2045,7 b' ordering defined by it.' | |||
|
2003 | 2045 | <filteredset |
|
2004 | 2046 | <spanset- 0:3>, |
|
2005 | 2047 | <not |
|
2006 |
<baseset |
|
|
2007 | <baseset [1, 2, 0]>>>> | |
|
2048 | <baseset [1]>>> | |
|
2008 | 2049 | 2 |
|
2009 | 2050 | 0 |
|
2010 | 2051 | |
@@ -3628,8 +3669,7 b' issue2549 - correct optimizations' | |||
|
3628 | 3669 | ('symbol', '2'))) |
|
3629 | 3670 | * set: |
|
3630 | 3671 | <filteredset |
|
3631 |
<baseset |
|
|
3632 | <baseset [1, 2, 3]>>, | |
|
3672 | <baseset [1, 2]>, | |
|
3633 | 3673 | <not |
|
3634 | 3674 | <baseset [2]>>> |
|
3635 | 3675 | 1 |
@@ -3683,8 +3723,7 b' issue2549 - correct optimizations' | |||
|
3683 | 3723 | ('symbol', '2'))) |
|
3684 | 3724 | * set: |
|
3685 | 3725 | <filteredset |
|
3686 |
<baseset |
|
|
3687 | <baseset [2, 1]>>, | |
|
3726 | <baseset [2]>, | |
|
3688 | 3727 | <not |
|
3689 | 3728 | <baseset [2]>>> |
|
3690 | 3729 |
General Comments 0
You need to be logged in to leave comments.
Login now