Show More
@@ -1056,6 +1056,18 b' class _spanset(abstractsmartset):' | |||
|
1056 | 1056 | return x |
|
1057 | 1057 | return None |
|
1058 | 1058 | |
|
1059 | def _slice(self, start, stop): | |
|
1060 | if self._hiddenrevs: | |
|
1061 | # unoptimized since all hidden revisions in range has to be scanned | |
|
1062 | return super(_spanset, self)._slice(start, stop) | |
|
1063 | if self._ascending: | |
|
1064 | x = min(self._start + start, self._end) | |
|
1065 | y = min(self._start + stop, self._end) | |
|
1066 | else: | |
|
1067 | x = max(self._end - stop, self._start) | |
|
1068 | y = max(self._end - start, self._start) | |
|
1069 | return _spanset(x, y, self._ascending, self._hiddenrevs) | |
|
1070 | ||
|
1059 | 1071 | def __repr__(self): |
|
1060 | 1072 | d = {False: '-', True: '+'}[self._ascending] |
|
1061 | 1073 | return '<%s%s %d:%d>' % (type(self).__name__.lstrip('_'), d, |
@@ -1080,13 +1080,54 b' Test smartset.slice() by first/last()' | |||
|
1080 | 1080 | * set: |
|
1081 | 1081 | <baseset+ []> |
|
1082 | 1082 | |
|
1083 | (using spanset) | |
|
1084 | ||
|
1085 | $ hg debugrevspec --no-show-revs -s 0:7 | |
|
1086 | * set: | |
|
1087 | <spanset+ 0:8> | |
|
1088 | $ log 'limit(0:7, 3, 4)' | |
|
1089 | 4 | |
|
1090 | 5 | |
|
1091 | 6 | |
|
1092 | $ log 'limit(7:0, 3, 4)' | |
|
1093 | 3 | |
|
1094 | 2 | |
|
1095 | 1 | |
|
1096 | $ log 'limit(0:7, 3, 6)' | |
|
1097 | 6 | |
|
1098 | 7 | |
|
1099 | $ log 'limit(7:0, 3, 6)' | |
|
1100 | 1 | |
|
1101 | 0 | |
|
1102 | $ log 'last(0:7, 2)' | |
|
1103 | 6 | |
|
1104 | 7 | |
|
1105 | $ hg debugrevspec -s 'limit(0:7, 3, 6)' | |
|
1106 | * set: | |
|
1107 | <spanset+ 6:8> | |
|
1108 | 6 | |
|
1109 | 7 | |
|
1110 | $ hg debugrevspec -s 'limit(0:7, 3, 9)' | |
|
1111 | * set: | |
|
1112 | <spanset+ 8:8> | |
|
1113 | $ hg debugrevspec -s 'limit(7:0, 3, 6)' | |
|
1114 | * set: | |
|
1115 | <spanset- 0:2> | |
|
1116 | 1 | |
|
1117 | 0 | |
|
1118 | $ hg debugrevspec -s 'limit(7:0, 3, 9)' | |
|
1119 | * set: | |
|
1120 | <spanset- 0:0> | |
|
1121 | $ hg debugrevspec -s 'limit(0:7, 0)' | |
|
1122 | * set: | |
|
1123 | <spanset+ 0:0> | |
|
1124 | ||
|
1083 | 1125 | Test order of first/last revisions |
|
1084 | 1126 | |
|
1085 | 1127 | $ hg debugrevspec -s 'first(4:0, 3) & 3:' |
|
1086 | 1128 | * set: |
|
1087 | 1129 | <filteredset |
|
1088 | <baseset slice=0:3 | |
|
1089 | <spanset- 0:5>>, | |
|
1130 | <spanset- 2:5>, | |
|
1090 | 1131 | <spanset+ 3:10>> |
|
1091 | 1132 | 4 |
|
1092 | 1133 | 3 |
@@ -1095,16 +1136,14 b' Test order of first/last revisions' | |||
|
1095 | 1136 | * set: |
|
1096 | 1137 | <filteredset |
|
1097 | 1138 | <spanset+ 3:10>, |
|
1098 | <baseset slice=0:3 | |
|
1099 | <spanset- 0:5>>> | |
|
1139 | <spanset- 2:5>> | |
|
1100 | 1140 | 3 |
|
1101 | 1141 | 4 |
|
1102 | 1142 | |
|
1103 | 1143 | $ hg debugrevspec -s 'last(4:0, 3) & :1' |
|
1104 | 1144 | * set: |
|
1105 | 1145 | <filteredset |
|
1106 |
< |
|
|
1107 | <spanset+ 0:5>>, | |
|
1146 | <spanset- 0:3>, | |
|
1108 | 1147 | <spanset+ 0:2>> |
|
1109 | 1148 | 1 |
|
1110 | 1149 | 0 |
@@ -1113,8 +1152,7 b' Test order of first/last revisions' | |||
|
1113 | 1152 | * set: |
|
1114 | 1153 | <filteredset |
|
1115 | 1154 | <spanset+ 0:2>, |
|
1116 |
< |
|
|
1117 | <spanset+ 0:5>>> | |
|
1155 | <spanset+ 0:3>> | |
|
1118 | 1156 | 0 |
|
1119 | 1157 | 1 |
|
1120 | 1158 |
General Comments 0
You need to be logged in to leave comments.
Login now