582 o 0 i-0 initial commit: a b h |
582 o 0 i-0 initial commit: a b h |
583 |
583 |
584 |
584 |
585 |
585 |
586 $ hg up null --quiet |
586 $ hg up null --quiet |
|
587 |
|
588 |
|
589 Test that sidedata computations during upgrades are correct |
|
590 =========================================================== |
|
591 |
|
592 We upgrade a repository that is not using sidedata (the filelog case) and |
|
593 check that the same side data have been generated as if they were computed at |
|
594 commit time. |
|
595 |
|
596 |
|
597 #if filelog |
|
598 $ cat >> $HGRCPATH << EOF |
|
599 > [format] |
|
600 > exp-use-side-data = yes |
|
601 > exp-use-copies-side-data-changeset = yes |
|
602 > EOF |
|
603 $ hg debugformat -v |
|
604 format-variant repo config default |
|
605 fncache: yes yes yes |
|
606 dotencode: yes yes yes |
|
607 generaldelta: yes yes yes |
|
608 sparserevlog: yes yes yes |
|
609 sidedata: no yes no |
|
610 persistent-nodemap: no no no |
|
611 copies-sdc: no yes no |
|
612 plain-cl-delta: yes yes yes |
|
613 compression: * (glob) |
|
614 compression-level: default default default |
|
615 $ hg debugupgraderepo --run --quiet |
|
616 upgrade will perform the following actions: |
|
617 |
|
618 requirements |
|
619 preserved: * (glob) |
|
620 added: exp-copies-sidedata-changeset, exp-sidedata-flag |
|
621 |
|
622 #endif |
|
623 |
|
624 |
|
625 #if no-compatibility no-changeset |
|
626 |
|
627 $ for rev in `hg log --rev 'all()' -T '{rev}\n'`; do |
|
628 > echo "##### revision $rev #####" |
|
629 > hg debugsidedata -c -v -- $rev |
|
630 > hg debugchangedfiles $rev |
|
631 > done |
|
632 ##### revision 0 ##### |
|
633 1 sidedata entries |
|
634 entry-0014 size 34 |
|
635 '\x00\x00\x00\x03\x04\x00\x00\x00\x01\x00\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x00abh' |
|
636 added : a, ; |
|
637 added : b, ; |
|
638 added : h, ; |
|
639 ##### revision 1 ##### |
|
640 1 sidedata entries |
|
641 entry-0014 size 24 |
|
642 '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00ac' |
|
643 removed : a, ; |
|
644 added p1: c, a; |
|
645 ##### revision 2 ##### |
|
646 1 sidedata entries |
|
647 entry-0014 size 24 |
|
648 '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00cd' |
|
649 removed : c, ; |
|
650 added p1: d, c; |
|
651 ##### revision 3 ##### |
|
652 1 sidedata entries |
|
653 entry-0014 size 24 |
|
654 '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00de' |
|
655 removed : d, ; |
|
656 added p1: e, d; |
|
657 ##### revision 4 ##### |
|
658 1 sidedata entries |
|
659 entry-0014 size 24 |
|
660 '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00ef' |
|
661 removed : e, ; |
|
662 added p1: f, e; |
|
663 ##### revision 5 ##### |
|
664 1 sidedata entries |
|
665 entry-0014 size 14 |
|
666 '\x00\x00\x00\x01\x14\x00\x00\x00\x01\x00\x00\x00\x00b' |
|
667 touched : b, ; |
|
668 ##### revision 6 ##### |
|
669 1 sidedata entries |
|
670 entry-0014 size 14 |
|
671 '\x00\x00\x00\x01\x0c\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
672 removed : d, ; |
|
673 ##### revision 7 ##### |
|
674 1 sidedata entries |
|
675 entry-0014 size 14 |
|
676 '\x00\x00\x00\x01\x0c\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
677 removed : d, ; |
|
678 ##### revision 8 ##### |
|
679 1 sidedata entries |
|
680 entry-0014 size 14 |
|
681 '\x00\x00\x00\x01\x04\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
682 added : d, ; |
|
683 ##### revision 9 ##### |
|
684 1 sidedata entries |
|
685 entry-0014 size 24 |
|
686 '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00bg' |
|
687 removed : b, ; |
|
688 added p1: g, b; |
|
689 ##### revision 10 ##### |
|
690 1 sidedata entries |
|
691 entry-0014 size 24 |
|
692 '\x00\x00\x00\x02\x06\x00\x00\x00\x01\x00\x00\x00\x01\x0c\x00\x00\x00\x02\x00\x00\x00\x00fg' |
|
693 added p1: f, g; |
|
694 removed : g, ; |
|
695 ##### revision 11 ##### |
|
696 1 sidedata entries |
|
697 entry-0014 size 4 |
|
698 '\x00\x00\x00\x00' |
|
699 ##### revision 12 ##### |
|
700 1 sidedata entries |
|
701 entry-0014 size 4 |
|
702 '\x00\x00\x00\x00' |
|
703 ##### revision 13 ##### |
|
704 1 sidedata entries |
|
705 entry-0014 size 4 |
|
706 '\x00\x00\x00\x00' |
|
707 ##### revision 14 ##### |
|
708 1 sidedata entries |
|
709 entry-0014 size 14 |
|
710 '\x00\x00\x00\x01\x04\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
711 added : d, ; |
|
712 ##### revision 15 ##### |
|
713 1 sidedata entries |
|
714 entry-0014 size 4 |
|
715 '\x00\x00\x00\x00' |
|
716 ##### revision 16 ##### |
|
717 1 sidedata entries |
|
718 entry-0014 size 14 |
|
719 '\x00\x00\x00\x01\x04\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
720 added : d, ; |
|
721 ##### revision 17 ##### |
|
722 1 sidedata entries |
|
723 entry-0014 size 4 |
|
724 '\x00\x00\x00\x00' |
|
725 ##### revision 18 ##### |
|
726 1 sidedata entries |
|
727 entry-0014 size 4 |
|
728 '\x00\x00\x00\x00' |
|
729 ##### revision 19 ##### |
|
730 1 sidedata entries |
|
731 entry-0014 size 14 |
|
732 '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00f' |
|
733 merged : f, ; |
|
734 ##### revision 20 ##### |
|
735 1 sidedata entries |
|
736 entry-0014 size 14 |
|
737 '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00f' |
|
738 merged : f, ; |
|
739 ##### revision 21 ##### |
|
740 1 sidedata entries |
|
741 entry-0014 size 24 |
|
742 '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00hi' |
|
743 removed : h, ; |
|
744 added p1: i, h; |
|
745 ##### revision 22 ##### |
|
746 1 sidedata entries |
|
747 entry-0014 size 24 |
|
748 '\x00\x00\x00\x02\x16\x00\x00\x00\x01\x00\x00\x00\x01\x0c\x00\x00\x00\x02\x00\x00\x00\x00di' |
|
749 touched p1: d, i; |
|
750 removed : i, ; |
|
751 ##### revision 23 ##### |
|
752 1 sidedata entries |
|
753 entry-0014 size 4 |
|
754 '\x00\x00\x00\x00' |
|
755 ##### revision 24 ##### |
|
756 1 sidedata entries |
|
757 entry-0014 size 4 |
|
758 '\x00\x00\x00\x00' |
|
759 ##### revision 25 ##### |
|
760 1 sidedata entries |
|
761 entry-0014 size 14 |
|
762 '\x00\x00\x00\x01\x14\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
763 touched : d, ; |
|
764 ##### revision 26 ##### |
|
765 1 sidedata entries |
|
766 entry-0014 size 14 |
|
767 '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
768 merged : d, ; |
|
769 ##### revision 27 ##### |
|
770 1 sidedata entries |
|
771 entry-0014 size 14 |
|
772 '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
773 merged : d, ; |
|
774 ##### revision 28 ##### |
|
775 1 sidedata entries |
|
776 entry-0014 size 14 |
|
777 '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
778 merged : d, ; |
|
779 ##### revision 29 ##### |
|
780 1 sidedata entries |
|
781 entry-0014 size 14 |
|
782 '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
783 merged : d, ; |
|
784 ##### revision 30 ##### |
|
785 1 sidedata entries |
|
786 entry-0014 size 14 |
|
787 '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
788 salvaged : d, ; |
|
789 ##### revision 31 ##### |
|
790 1 sidedata entries |
|
791 entry-0014 size 14 |
|
792 '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
793 salvaged : d, ; |
|
794 ##### revision 32 ##### |
|
795 1 sidedata entries |
|
796 entry-0014 size 14 |
|
797 '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
798 salvaged : d, ; |
|
799 ##### revision 33 ##### |
|
800 1 sidedata entries |
|
801 entry-0014 size 14 |
|
802 '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
803 salvaged : d, ; |
|
804 |
|
805 #endif |
|
806 |
|
807 Downgrade to keep testing the filelog algorithm |
|
808 (This can be removed once we have an explicite "upgrade" tests case_ |
|
809 |
|
810 #if filelog |
|
811 $ cat >> $HGRCPATH << EOF |
|
812 > [format] |
|
813 > exp-use-side-data = no |
|
814 > exp-use-copies-side-data-changeset = no |
|
815 > EOF |
|
816 $ hg debugformat -v |
|
817 format-variant repo config default |
|
818 fncache: yes yes yes |
|
819 dotencode: yes yes yes |
|
820 generaldelta: yes yes yes |
|
821 sparserevlog: yes yes yes |
|
822 sidedata: yes no no |
|
823 persistent-nodemap: no no no |
|
824 copies-sdc: yes no no |
|
825 plain-cl-delta: yes yes yes |
|
826 compression: * (glob) |
|
827 compression-level: default default default |
|
828 $ hg debugupgraderepo --run --quiet |
|
829 upgrade will perform the following actions: |
|
830 |
|
831 requirements |
|
832 preserved: * (glob) |
|
833 removed: exp-copies-sidedata-changeset, exp-sidedata-flag |
|
834 |
|
835 #endif |
587 |
836 |
588 Test copy information chaining |
837 Test copy information chaining |
589 ============================== |
838 ============================== |
590 |
839 |
591 merging with unrelated change does not interfere with the renames |
840 merging with unrelated change does not interfere with the renames |
1344 $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mBC-revert-m-0")' |
1593 $ hg status --copies --rev 'desc("c-1")' --rev 'desc("mBC-revert-m-0")' |
1345 M b |
1594 M b |
1346 A d |
1595 A d |
1347 $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mCB-revert-m-0")' |
1596 $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mCB-revert-m-0")' |
1348 $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBC-revert-m-0")' |
1597 $ hg status --copies --rev 'desc("b-1")' --rev 'desc("mBC-revert-m-0")' |
1349 |
|
1350 |
|
1351 Test that sidedata computations during upgrades ares correct |
|
1352 ============================================================ |
|
1353 |
|
1354 We upgrade a repository that is not using sidedata (the filelog case) and |
|
1355 check that the same side data have been generated as if they were computed at |
|
1356 commit time. |
|
1357 |
|
1358 |
|
1359 #if filelog |
|
1360 $ cat >> $HGRCPATH << EOF |
|
1361 > [format] |
|
1362 > exp-use-side-data = yes |
|
1363 > exp-use-copies-side-data-changeset = yes |
|
1364 > EOF |
|
1365 $ hg debugformat -v |
|
1366 format-variant repo config default |
|
1367 fncache: yes yes yes |
|
1368 dotencode: yes yes yes |
|
1369 generaldelta: yes yes yes |
|
1370 sparserevlog: yes yes yes |
|
1371 sidedata: no yes no |
|
1372 persistent-nodemap: no no no |
|
1373 copies-sdc: no yes no |
|
1374 plain-cl-delta: yes yes yes |
|
1375 compression: * (glob) |
|
1376 compression-level: default default default |
|
1377 $ hg debugupgraderepo --run --quiet |
|
1378 upgrade will perform the following actions: |
|
1379 |
|
1380 requirements |
|
1381 preserved: * (glob) |
|
1382 added: exp-copies-sidedata-changeset, exp-sidedata-flag |
|
1383 |
|
1384 #endif |
|
1385 |
|
1386 |
|
1387 #if no-compatibility no-changeset |
|
1388 |
|
1389 $ for rev in `hg log --rev 'all()' -T '{rev}\n'`; do |
|
1390 > echo "##### revision $rev #####" |
|
1391 > hg debugsidedata -c -v -- $rev |
|
1392 > hg debugchangedfiles $rev |
|
1393 > done |
|
1394 ##### revision 0 ##### |
|
1395 1 sidedata entries |
|
1396 entry-0014 size 34 |
|
1397 '\x00\x00\x00\x03\x04\x00\x00\x00\x01\x00\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x00abh' |
|
1398 added : a, ; |
|
1399 added : b, ; |
|
1400 added : h, ; |
|
1401 ##### revision 1 ##### |
|
1402 1 sidedata entries |
|
1403 entry-0014 size 24 |
|
1404 '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00ac' |
|
1405 removed : a, ; |
|
1406 added p1: c, a; |
|
1407 ##### revision 2 ##### |
|
1408 1 sidedata entries |
|
1409 entry-0014 size 24 |
|
1410 '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00cd' |
|
1411 removed : c, ; |
|
1412 added p1: d, c; |
|
1413 ##### revision 3 ##### |
|
1414 1 sidedata entries |
|
1415 entry-0014 size 24 |
|
1416 '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00de' |
|
1417 removed : d, ; |
|
1418 added p1: e, d; |
|
1419 ##### revision 4 ##### |
|
1420 1 sidedata entries |
|
1421 entry-0014 size 24 |
|
1422 '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00ef' |
|
1423 removed : e, ; |
|
1424 added p1: f, e; |
|
1425 ##### revision 5 ##### |
|
1426 1 sidedata entries |
|
1427 entry-0014 size 14 |
|
1428 '\x00\x00\x00\x01\x14\x00\x00\x00\x01\x00\x00\x00\x00b' |
|
1429 touched : b, ; |
|
1430 ##### revision 6 ##### |
|
1431 1 sidedata entries |
|
1432 entry-0014 size 14 |
|
1433 '\x00\x00\x00\x01\x0c\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
1434 removed : d, ; |
|
1435 ##### revision 7 ##### |
|
1436 1 sidedata entries |
|
1437 entry-0014 size 14 |
|
1438 '\x00\x00\x00\x01\x0c\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
1439 removed : d, ; |
|
1440 ##### revision 8 ##### |
|
1441 1 sidedata entries |
|
1442 entry-0014 size 14 |
|
1443 '\x00\x00\x00\x01\x04\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
1444 added : d, ; |
|
1445 ##### revision 9 ##### |
|
1446 1 sidedata entries |
|
1447 entry-0014 size 24 |
|
1448 '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00bg' |
|
1449 removed : b, ; |
|
1450 added p1: g, b; |
|
1451 ##### revision 10 ##### |
|
1452 1 sidedata entries |
|
1453 entry-0014 size 24 |
|
1454 '\x00\x00\x00\x02\x06\x00\x00\x00\x01\x00\x00\x00\x01\x0c\x00\x00\x00\x02\x00\x00\x00\x00fg' |
|
1455 added p1: f, g; |
|
1456 removed : g, ; |
|
1457 ##### revision 11 ##### |
|
1458 1 sidedata entries |
|
1459 entry-0014 size 4 |
|
1460 '\x00\x00\x00\x00' |
|
1461 ##### revision 12 ##### |
|
1462 1 sidedata entries |
|
1463 entry-0014 size 4 |
|
1464 '\x00\x00\x00\x00' |
|
1465 ##### revision 13 ##### |
|
1466 1 sidedata entries |
|
1467 entry-0014 size 4 |
|
1468 '\x00\x00\x00\x00' |
|
1469 ##### revision 14 ##### |
|
1470 1 sidedata entries |
|
1471 entry-0014 size 14 |
|
1472 '\x00\x00\x00\x01\x04\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
1473 added : d, ; |
|
1474 ##### revision 15 ##### |
|
1475 1 sidedata entries |
|
1476 entry-0014 size 4 |
|
1477 '\x00\x00\x00\x00' |
|
1478 ##### revision 16 ##### |
|
1479 1 sidedata entries |
|
1480 entry-0014 size 14 |
|
1481 '\x00\x00\x00\x01\x04\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
1482 added : d, ; |
|
1483 ##### revision 17 ##### |
|
1484 1 sidedata entries |
|
1485 entry-0014 size 4 |
|
1486 '\x00\x00\x00\x00' |
|
1487 ##### revision 18 ##### |
|
1488 1 sidedata entries |
|
1489 entry-0014 size 4 |
|
1490 '\x00\x00\x00\x00' |
|
1491 ##### revision 19 ##### |
|
1492 1 sidedata entries |
|
1493 entry-0014 size 14 |
|
1494 '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00f' |
|
1495 merged : f, ; |
|
1496 ##### revision 20 ##### |
|
1497 1 sidedata entries |
|
1498 entry-0014 size 14 |
|
1499 '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00f' |
|
1500 merged : f, ; |
|
1501 ##### revision 21 ##### |
|
1502 1 sidedata entries |
|
1503 entry-0014 size 24 |
|
1504 '\x00\x00\x00\x02\x0c\x00\x00\x00\x01\x00\x00\x00\x00\x06\x00\x00\x00\x02\x00\x00\x00\x00hi' |
|
1505 removed : h, ; |
|
1506 added p1: i, h; |
|
1507 ##### revision 22 ##### |
|
1508 1 sidedata entries |
|
1509 entry-0014 size 24 |
|
1510 '\x00\x00\x00\x02\x16\x00\x00\x00\x01\x00\x00\x00\x01\x0c\x00\x00\x00\x02\x00\x00\x00\x00di' |
|
1511 touched p1: d, i; |
|
1512 removed : i, ; |
|
1513 ##### revision 23 ##### |
|
1514 1 sidedata entries |
|
1515 entry-0014 size 4 |
|
1516 '\x00\x00\x00\x00' |
|
1517 ##### revision 24 ##### |
|
1518 1 sidedata entries |
|
1519 entry-0014 size 4 |
|
1520 '\x00\x00\x00\x00' |
|
1521 ##### revision 25 ##### |
|
1522 1 sidedata entries |
|
1523 entry-0014 size 14 |
|
1524 '\x00\x00\x00\x01\x14\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
1525 touched : d, ; |
|
1526 ##### revision 26 ##### |
|
1527 1 sidedata entries |
|
1528 entry-0014 size 14 |
|
1529 '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
1530 merged : d, ; |
|
1531 ##### revision 27 ##### |
|
1532 1 sidedata entries |
|
1533 entry-0014 size 14 |
|
1534 '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
1535 merged : d, ; |
|
1536 ##### revision 28 ##### |
|
1537 1 sidedata entries |
|
1538 entry-0014 size 14 |
|
1539 '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
1540 merged : d, ; |
|
1541 ##### revision 29 ##### |
|
1542 1 sidedata entries |
|
1543 entry-0014 size 14 |
|
1544 '\x00\x00\x00\x01\x08\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
1545 merged : d, ; |
|
1546 ##### revision 30 ##### |
|
1547 1 sidedata entries |
|
1548 entry-0014 size 14 |
|
1549 '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
1550 salvaged : d, ; |
|
1551 ##### revision 31 ##### |
|
1552 1 sidedata entries |
|
1553 entry-0014 size 14 |
|
1554 '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
1555 salvaged : d, ; |
|
1556 ##### revision 32 ##### |
|
1557 1 sidedata entries |
|
1558 entry-0014 size 14 |
|
1559 '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
1560 salvaged : d, ; |
|
1561 ##### revision 33 ##### |
|
1562 1 sidedata entries |
|
1563 entry-0014 size 14 |
|
1564 '\x00\x00\x00\x01\x10\x00\x00\x00\x01\x00\x00\x00\x00d' |
|
1565 salvaged : d, ; |
|
1566 |
|
1567 #endif |
|