equal
deleted
inserted
replaced
1279 ('symbol', '_list') |
1279 ('symbol', '_list') |
1280 ('string', '0\x001\x002') |
1280 ('string', '0\x001\x002') |
1281 follow) |
1281 follow) |
1282 define) |
1282 define) |
1283 * set: |
1283 * set: |
1284 <baseset [0, 1, 2]> |
1284 <filteredset |
1285 0 |
1285 <spanset- 0:2>, |
1286 1 |
1286 <baseset [0, 1, 2]>> |
1287 2 |
1287 2 |
1288 BROKEN: should be '2 1 0' |
1288 1 |
|
1289 0 |
1289 |
1290 |
1290 'A + B' should take the ordering of the left expression: |
1291 'A + B' should take the ordering of the left expression: |
1291 |
1292 |
1292 $ try --optimize '2:0 & (0:1 + 2)' |
1293 $ try --optimize '2:0 & (0:1 + 2)' |
1293 (and |
1294 (and |
1348 define) |
1349 define) |
1349 define) |
1350 define) |
1350 * set: |
1351 * set: |
1351 <filteredset |
1352 <filteredset |
1352 <spanset- 0:2>, |
1353 <spanset- 0:2>, |
1353 <baseset [0, 1, 2]>> |
1354 <baseset+ [0, 1, 2]>> |
1354 2 |
1355 2 |
1355 1 |
1356 1 |
1356 0 |
1357 0 |
1357 |
1358 |
1358 $ trylist --optimize '%ld & 2:0' 0 2 1 |
1359 $ trylist --optimize '%ld & 2:0' 0 2 1 |
1403 ('symbol', '_hexlist') |
1404 ('symbol', '_hexlist') |
1404 ('string', '*') (glob) |
1405 ('string', '*') (glob) |
1405 follow) |
1406 follow) |
1406 define) |
1407 define) |
1407 * set: |
1408 * set: |
1408 <baseset [0, 1, 2]> |
1409 <filteredset |
1409 0 |
1410 <spanset- 0:2>, |
1410 1 |
1411 <baseset [0, 1, 2]>> |
1411 2 |
1412 2 |
1412 BROKEN: should be '2 1 0' |
1413 1 |
|
1414 0 |
1413 |
1415 |
1414 $ trylist --optimize --bin '%ln & 2:0' `hg log -T '{node} ' -r0+2+1` |
1416 $ trylist --optimize --bin '%ln & 2:0' `hg log -T '{node} ' -r0+2+1` |
1415 (and |
1417 (and |
1416 (func |
1418 (func |
1417 ('symbol', '_hexlist') |
1419 ('symbol', '_hexlist') |
1433 * set: |
1435 * set: |
1434 <baseset [0, 2, 1]> |
1436 <baseset [0, 2, 1]> |
1435 0 |
1437 0 |
1436 2 |
1438 2 |
1437 1 |
1439 1 |
|
1440 |
|
1441 '_list' should not go through the slow follow-order path if order doesn't |
|
1442 matter: |
|
1443 |
|
1444 $ try -p optimized '2:0 & not (0 + 1)' |
|
1445 * optimized: |
|
1446 (difference |
|
1447 (range |
|
1448 ('symbol', '2') |
|
1449 ('symbol', '0') |
|
1450 define) |
|
1451 (func |
|
1452 ('symbol', '_list') |
|
1453 ('string', '0\x001') |
|
1454 any) |
|
1455 define) |
|
1456 * set: |
|
1457 <filteredset |
|
1458 <spanset- 0:2>, |
|
1459 <not |
|
1460 <baseset [0, 1]>>> |
|
1461 2 |
|
1462 |
|
1463 $ try -p optimized '2:0 & not (0:2 & (0 + 1))' |
|
1464 * optimized: |
|
1465 (difference |
|
1466 (range |
|
1467 ('symbol', '2') |
|
1468 ('symbol', '0') |
|
1469 define) |
|
1470 (and |
|
1471 (range |
|
1472 ('symbol', '0') |
|
1473 ('symbol', '2') |
|
1474 any) |
|
1475 (func |
|
1476 ('symbol', '_list') |
|
1477 ('string', '0\x001') |
|
1478 any) |
|
1479 any) |
|
1480 define) |
|
1481 * set: |
|
1482 <filteredset |
|
1483 <spanset- 0:2>, |
|
1484 <not |
|
1485 <baseset [0, 1]>>> |
|
1486 2 |
1438 |
1487 |
1439 'present()' should do nothing other than suppressing an error: |
1488 'present()' should do nothing other than suppressing an error: |
1440 |
1489 |
1441 $ try --optimize '2:0 & present(0 + 1 + 2)' |
1490 $ try --optimize '2:0 & present(0 + 1 + 2)' |
1442 (and |
1491 (and |
1660 <filteredset |
1709 <filteredset |
1661 <baseset [1]>, |
1710 <baseset [1]>, |
1662 <spanset- 0:2>> |
1711 <spanset- 0:2>> |
1663 1 |
1712 1 |
1664 |
1713 |
1665 'A & B' can be rewritten as 'B & A' by weight, but the ordering rule should |
1714 'A & B' can be rewritten as 'B & A' by weight, but that's fine as long as |
1666 be determined before the optimization (i.e. 'B' should take the ordering of |
1715 the ordering rule is determined before the rewrite; in this example, |
1667 'A'): |
1716 'B' follows the order of the initial set, which is the same order as 'A' |
|
1717 since 'A' also follows the order: |
1668 |
1718 |
1669 $ try --optimize 'contains("glob:*") & (2 + 0 + 1)' |
1719 $ try --optimize 'contains("glob:*") & (2 + 0 + 1)' |
1670 (and |
1720 (and |
1671 (func |
1721 (func |
1672 ('symbol', 'contains') |
1722 ('symbol', 'contains') |
1688 ('string', 'glob:*') |
1738 ('string', 'glob:*') |
1689 define) |
1739 define) |
1690 define) |
1740 define) |
1691 * set: |
1741 * set: |
1692 <filteredset |
1742 <filteredset |
1693 <baseset [2, 0, 1]>, |
1743 <baseset+ [0, 1, 2]>, |
1694 <contains 'glob:*'>> |
1744 <contains 'glob:*'>> |
1695 2 |
1745 0 |
1696 0 |
1746 1 |
1697 1 |
1747 2 |
1698 BROKEN: should be '0 1 2' |
1748 |
|
1749 and in this example, 'A & B' is rewritten as 'B & A', but 'A' overrides |
|
1750 the order appropriately: |
1699 |
1751 |
1700 $ try --optimize 'reverse(contains("glob:*")) & (0 + 2 + 1)' |
1752 $ try --optimize 'reverse(contains("glob:*")) & (0 + 2 + 1)' |
1701 (and |
1753 (and |
1702 (func |
1754 (func |
1703 ('symbol', 'reverse') |
1755 ('symbol', 'reverse') |
1724 define) |
1776 define) |
1725 define) |
1777 define) |
1726 define) |
1778 define) |
1727 * set: |
1779 * set: |
1728 <filteredset |
1780 <filteredset |
1729 <baseset [1, 2, 0]>, |
1781 <baseset- [0, 1, 2]>, |
1730 <contains 'glob:*'>> |
1782 <contains 'glob:*'>> |
1731 1 |
1783 2 |
1732 2 |
1784 1 |
1733 0 |
1785 0 |
1734 BROKEN: should be '2 1 0' |
|
1735 |
1786 |
1736 test sort revset |
1787 test sort revset |
1737 -------------------------------------------- |
1788 -------------------------------------------- |
1738 |
1789 |
1739 test when adding two unordered revsets |
1790 test when adding two unordered revsets |