comparison tests/test-branches.t @ 51530:fc710c993ec9

branchcache: simplify the branch rev cache test We don't need that many content dump and this gets in the way in change in access pattern (e.g. accessing revision in a different order change the order of branches in the "names" file). So we simplify this test in advance.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Thu, 07 Mar 2024 01:35:43 +0100
parents 0d4a6ab3c8da
children f85f23f1479b
comparison
equal deleted inserted replaced
51529:4141d12de073 51530:fc710c993ec9
865 .hg/cache/rbc-revs-v1: size=8 865 .hg/cache/rbc-revs-v1: size=8
866 $ f -qDB 112 rbc-revs-v1 >> .hg/cache/rbc-revs-v1 866 $ f -qDB 112 rbc-revs-v1 >> .hg/cache/rbc-revs-v1
867 $ f --size .hg/cache/rbc-revs* 867 $ f --size .hg/cache/rbc-revs*
868 .hg/cache/rbc-revs-v1: size=120 868 .hg/cache/rbc-revs-v1: size=120
869 $ hg log -r 'branch(.)' -T '{rev} ' --debug 869 $ hg log -r 'branch(.)' -T '{rev} ' --debug
870 history modification detected - truncating revision branch cache to revision 13 870 history modification detected - truncating revision branch cache to revision * (glob)
871 history modification detected - truncating revision branch cache to revision 1 871 history modification detected - truncating revision branch cache to revision 1
872 3 4 8 9 10 11 12 13 truncating cache/rbc-revs-v1 to 8 872 3 4 8 9 10 11 12 13 truncating cache/rbc-revs-v1 to 8
873 $ rm -f .hg/cache/branch* && hg head a -T '{rev}\n' --debug 873 $ rm -f .hg/cache/branch* && hg head a -T '{rev}\n' --debug
874 5 874 5
875 truncating cache/rbc-revs-v1 to 104 875 truncating cache/rbc-revs-v1 to 104
887 887
888 update after rollback - the cache will be correct but rbc-names will will still 888 update after rollback - the cache will be correct but rbc-names will will still
889 contain the branch name even though it no longer is used 889 contain the branch name even though it no longer is used
890 $ hg up -qr '.^' 890 $ hg up -qr '.^'
891 $ hg rollback -qf 891 $ hg rollback -qf
892 $ f --size --hexdump .hg/cache/rbc-* 892 $ f --size .hg/cache/rbc-names-*
893 .hg/cache/rbc-names-v1: size=111 893 .hg/cache/rbc-names-v1: size=111
894 0000: 64 65 66 61 75 6c 74 00 61 00 62 00 63 00 61 20 |default.a.b.c.a | 894 $ grep "i-will-regret-this" .hg/cache/rbc-names-* > /dev/null
895 0010: 62 72 61 6e 63 68 20 6e 61 6d 65 20 6d 75 63 68 |branch name much| 895 $ f --size .hg/cache/rbc-revs-*
896 0020: 20 6c 6f 6e 67 65 72 20 74 68 61 6e 20 74 68 65 | longer than the|
897 0030: 20 64 65 66 61 75 6c 74 20 6a 75 73 74 69 66 69 | default justifi|
898 0040: 63 61 74 69 6f 6e 20 75 73 65 64 20 62 79 20 62 |cation used by b|
899 0050: 72 61 6e 63 68 65 73 00 6d 00 6d 64 00 69 2d 77 |ranches.m.md.i-w|
900 0060: 69 6c 6c 2d 72 65 67 72 65 74 2d 74 68 69 73 |ill-regret-this|
901 .hg/cache/rbc-revs-v1: size=160 896 .hg/cache/rbc-revs-v1: size=160
902 0000: 19 70 9c 5a 00 00 00 00 dd 6b 44 0d 00 00 00 01 |.p.Z.....kD.....|
903 0010: 88 1f e2 b9 00 00 00 01 ac 22 03 33 00 00 00 02 |.........".3....|
904 0020: ae e3 9c d1 00 00 00 02 d8 cb c6 1d 00 00 00 01 |................|
905 0030: 58 97 36 a2 00 00 00 03 10 ff 58 95 00 00 00 04 |X.6.......X.....|
906 0040: ee bb 94 44 00 00 00 02 5f 40 61 bb 00 00 00 02 |...D...._@a.....|
907 0050: bf be 84 1b 00 00 00 02 d3 f1 63 45 80 00 00 02 |..........cE....|
908 0060: e3 d4 9c 05 80 00 00 02 e2 3b 55 05 00 00 00 02 |.........;U.....|
909 0070: f8 94 c2 56 80 00 00 03 f3 44 76 37 00 00 00 05 |...V.....Dv7....|
910 0080: a5 8c a5 d3 00 00 00 05 df 34 3b 0d 00 00 00 05 |.........4;.....|
911 0090: c9 14 c9 9f 00 00 00 06 cd 21 a8 0b 80 00 00 05 |.........!......|
912 897
913 cache is updated/truncated when stripping - it is thus very hard to get in a 898 cache is updated/truncated when stripping - it is thus very hard to get in a
914 situation where the cache is out of sync and the hash check detects it 899 situation where the cache is out of sync and the hash check detects it
915 $ hg --config extensions.strip= strip -r tip --nob 900 $ hg --config extensions.strip= strip -r tip --nob
916 $ f --size .hg/cache/rbc-revs* 901 $ f --size .hg/cache/rbc-revs*
919 cache is rebuilt when corruption is detected 904 cache is rebuilt when corruption is detected
920 $ echo > .hg/cache/rbc-names-v1 905 $ echo > .hg/cache/rbc-names-v1
921 $ hg log -r '5:&branch(.)' -T '{rev} ' --debug 906 $ hg log -r '5:&branch(.)' -T '{rev} ' --debug
922 referenced branch names not found - rebuilding revision branch cache from scratch 907 referenced branch names not found - rebuilding revision branch cache from scratch
923 8 9 10 11 12 13 truncating cache/rbc-revs-v1 to 40 908 8 9 10 11 12 13 truncating cache/rbc-revs-v1 to 40
924 $ f --size --hexdump .hg/cache/rbc-* 909 $ f --size .hg/cache/rbc-names-*
925 .hg/cache/rbc-names-v1: size=84 910 .hg/cache/rbc-names-v1: size=84
926 0000: 62 00 61 00 63 00 61 20 62 72 61 6e 63 68 20 6e |b.a.c.a branch n| 911 $ grep "i-will-regret-this" .hg/cache/rbc-names-* > /dev/null
927 0010: 61 6d 65 20 6d 75 63 68 20 6c 6f 6e 67 65 72 20 |ame much longer | 912 [1]
928 0020: 74 68 61 6e 20 74 68 65 20 64 65 66 61 75 6c 74 |than the default| 913 $ f --size .hg/cache/rbc-revs-*
929 0030: 20 6a 75 73 74 69 66 69 63 61 74 69 6f 6e 20 75 | justification u|
930 0040: 73 65 64 20 62 79 20 62 72 61 6e 63 68 65 73 00 |sed by branches.|
931 0050: 6d 00 6d 64 |m.md|
932 .hg/cache/rbc-revs-v1: size=152 914 .hg/cache/rbc-revs-v1: size=152
933 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
934 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
935 0020: 00 00 00 00 00 00 00 00 d8 cb c6 1d 00 00 00 01 |................|
936 0030: 58 97 36 a2 00 00 00 02 10 ff 58 95 00 00 00 03 |X.6.......X.....|
937 0040: ee bb 94 44 00 00 00 00 5f 40 61 bb 00 00 00 00 |...D...._@a.....|
938 0050: bf be 84 1b 00 00 00 00 d3 f1 63 45 80 00 00 00 |..........cE....|
939 0060: e3 d4 9c 05 80 00 00 00 e2 3b 55 05 00 00 00 00 |.........;U.....|
940 0070: f8 94 c2 56 80 00 00 02 f3 44 76 37 00 00 00 04 |...V.....Dv7....|
941 0080: a5 8c a5 d3 00 00 00 04 df 34 3b 0d 00 00 00 04 |.........4;.....|
942 0090: c9 14 c9 9f 00 00 00 05 |........|
943 915
944 Test that cache files are created and grows correctly: 916 Test that cache files are created and grows correctly:
945 917
946 $ rm .hg/cache/rbc* 918 $ rm .hg/cache/rbc*
947 $ hg log -r "5 & branch(5)" -T "{rev}\n" 919 $ hg log -r "5 & branch(5)" -T "{rev}\n"
948 5 920 5
949 $ f --size --hexdump .hg/cache/rbc-* 921 $ f --size .hg/cache/rbc-*
950 .hg/cache/rbc-names-v1: size=1 922 .hg/cache/rbc-names-v1: size=1
951 0000: 61 |a|
952 .hg/cache/rbc-revs-v1: size=48 923 .hg/cache/rbc-revs-v1: size=48
953 0000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
954 0010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
955 0020: 00 00 00 00 00 00 00 00 d8 cb c6 1d 00 00 00 00 |................|
956 924
957 $ cd .. 925 $ cd ..
958 926
959 Test for multiple incorrect branch cache entries: 927 Test for multiple incorrect branch cache entries:
960 928
965 $ echo >> f 933 $ echo >> f
966 $ hg ci -Amf 934 $ hg ci -Amf
967 $ hg branch -q branch 935 $ hg branch -q branch
968 $ hg ci -Amf 936 $ hg ci -Amf
969 937
970 $ f --size --hexdump .hg/cache/rbc-* 938 #if v2
971 .hg/cache/rbc-names-v1: size=14 939
972 0000: 64 65 66 61 75 6c 74 00 62 72 61 6e 63 68 |default.branch| 940 $ f --size --sha256 .hg/cache/rbc-*
973 .hg/cache/rbc-revs-v1: size=24 941 .hg/cache/rbc-names-v1: size=14, sha256=d376f7eea9a7e28fac6470e78dae753c81a5543c9ad436e96999590e004a281c
974 0000: 66 e5 f5 aa 00 00 00 00 fa 4c 04 e5 00 00 00 00 |f........L......| 942 .hg/cache/rbc-revs-v1: size=24, sha256=ec89032fd4e66e7282cb6e403848c681a855a9c36c6b44d19179218553b78779
975 0010: 56 46 78 69 00 00 00 01 |VFxi....| 943
976 $ : > .hg/cache/rbc-revs-v1 944 $ : > .hg/cache/rbc-revs-v1
977 945
978 No superfluous rebuilding of cache: 946 No superfluous rebuilding of cache:
979 $ hg log -r "branch(null)&branch(branch)" --debug 947 $ hg log -r "branch(null)&branch(branch)" --debug
980 $ f --size --hexdump .hg/cache/rbc-* 948 $ f --size --sha256 .hg/cache/rbc-*
981 .hg/cache/rbc-names-v1: size=14 949 .hg/cache/rbc-names-v1: size=14, sha256=d376f7eea9a7e28fac6470e78dae753c81a5543c9ad436e96999590e004a281c
982 0000: 64 65 66 61 75 6c 74 00 62 72 61 6e 63 68 |default.branch| 950 .hg/cache/rbc-revs-v1: size=24, sha256=ec89032fd4e66e7282cb6e403848c681a855a9c36c6b44d19179218553b78779
983 .hg/cache/rbc-revs-v1: size=24 951 #endif
984 0000: 66 e5 f5 aa 00 00 00 00 fa 4c 04 e5 00 00 00 00 |f........L......|
985 0010: 56 46 78 69 00 00 00 01 |VFxi....|
986 952
987 $ cd .. 953 $ cd ..
988 954
989 Test to make sure that `--close-branch` only works on a branch head: 955 Test to make sure that `--close-branch` only works on a branch head:
990 -------------------------------------------------------------------- 956 --------------------------------------------------------------------