# HG changeset patch # User Pierre-Yves David # Date 1694017412 -7200 # Node ID 9c668377aa9f5655cae736f423ad7f494f602652 # Parent bf1d26bd5b6afb7276ecd405edf69a94b51bb58f narrow: add a test for linkrev computation done during widen This new tests show that the linkrev computed and sent by the server might end up being wrong during a widen operation. diff -r bf1d26bd5b6a -r 9c668377aa9f tests/test-narrow-widen-linkrev-computation.t --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-narrow-widen-linkrev-computation.t Wed Sep 06 18:23:32 2023 +0200 @@ -0,0 +1,627 @@ +============================================================================================== +Test the computation of linkrev that is needed when sending file content after their changeset +============================================================================================== + +Setup +===== + +tree/flat make the hash unstable had are anoying, reinstall that later. +.. #testcases tree flat + $ . "$TESTDIR/narrow-library.sh" + +.. #if tree +.. $ cat << EOF >> $HGRCPATH +.. > [experimental] +.. > treemanifest = 1 +.. > EOF +.. #endif + + $ hg init server + $ cd server + +We build a non linear history with some filenome that exist in parallel. + + $ echo foo > readme.txt + $ hg add readme.txt + $ hg ci -m 'root' + $ mkdir dir_x + $ echo foo > dir_x/f1 + $ echo fo0 > dir_x/f2 + $ echo f0o > dir_x/f3 + $ mkdir dir_y + $ echo bar > dir_y/f1 + $ echo 8ar > dir_y/f2 + $ echo ba9 > dir_y/f3 + $ hg add dir_x dir_y + adding dir_x/f1 + adding dir_x/f2 + adding dir_x/f3 + adding dir_y/f1 + adding dir_y/f2 + adding dir_y/f3 + $ hg ci -m 'rev_a_' + + $ hg update 'desc("rev_a_")' + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ echo foo-01 > dir_x/f1 + $ hg ci -m 'rev_b_0_' + + $ hg update 'desc("rev_b_0_")' + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ echo foo-02 > dir_x/f1 + $ hg ci -m 'rev_b_1_' + + $ hg update 'desc("rev_a_")' + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ mkdir dir_z + $ echo bar-01 > dir_y/f1 + $ echo 8ar-01 > dir_y/f2 + $ echo babar > dir_z/f1 + $ hg add dir_z + adding dir_z/f1 + $ hg ci -m 'rev_c_0_' + created new head + + $ hg update 'desc("rev_c_0_")' + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ echo celeste > dir_z/f2 + $ echo zephir > dir_z/f1 + $ hg add dir_z + adding dir_z/f2 + $ hg ci -m 'rev_c_1_' + + $ hg update 'desc("rev_b_1_")' + 3 files updated, 0 files merged, 2 files removed, 0 files unresolved + $ echo fo0-01 > dir_x/f2 + $ mkdir dir_z + $ ls dir_z + $ echo babar > dir_z/f1 + $ echo celeste > dir_z/f2 + $ echo foo > dir_z/f3 + $ hg add dir_z + adding dir_z/f1 + adding dir_z/f2 + adding dir_z/f3 + $ hg ci -m 'rev_b_2_' + + $ hg update 'desc("rev_b_2_")' + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ echo f0o-01 > dir_x/f3 + $ echo zephir > dir_z/f1 + $ echo arthur > dir_z/f2 + $ hg ci -m 'rev_b_3_' + + $ hg update 'desc("rev_c_1_")' + 6 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ echo bar-02 > dir_y/f1 + $ echo ba9-01 > dir_y/f3 + $ echo bar > dir_z/f4 + $ hg add dir_z/ + adding dir_z/f4 + $ echo arthur > dir_z/f2 + $ hg ci -m 'rev_c_2_' + + $ hg update 'desc("rev_b_3_")' + 7 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ hg merge 'desc("rev_c_2_")' + 4 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + $ echo flore > dir_z/f1 + $ echo foo-04 > dir_x/f1 + $ echo foo-01 > dir_z/f3 + $ hg ci -m 'rev_d_0_' + $ echo alexandre > dir_z/f1 + $ echo bar-01 > dir_z/f4 + $ echo bar-04 > dir_y/f1 + $ hg ci -m 'rev_d_1_' + $ hg status + $ hg status -A + C dir_x/f1 + C dir_x/f2 + C dir_x/f3 + C dir_y/f1 + C dir_y/f2 + C dir_y/f3 + C dir_z/f1 + C dir_z/f2 + C dir_z/f3 + C dir_z/f4 + C readme.txt + $ hg up null + 0 files updated, 0 files merged, 11 files removed, 0 files unresolved + +Resulting graph + + $ hg log -GT "{rev}:{node|short}: {desc}\n {files}\n" + o 10:71e6a9c7a6a2: rev_d_1_ + | dir_y/f1 dir_z/f1 dir_z/f4 + o 9:b0a0cbe5ce57: rev_d_0_ + |\ dir_x/f1 dir_z/f1 dir_z/f3 + | o 8:d04e01dcc82d: rev_c_2_ + | | dir_y/f1 dir_y/f3 dir_z/f2 dir_z/f4 + o | 7:fc05b303b551: rev_b_3_ + | | dir_x/f3 dir_z/f1 dir_z/f2 + o | 6:17fd34adb43b: rev_b_2_ + | | dir_x/f2 dir_z/f1 dir_z/f2 dir_z/f3 + | o 5:fa05dbe8eed1: rev_c_1_ + | | dir_z/f1 dir_z/f2 + | o 4:59b4258b00dc: rev_c_0_ + | | dir_y/f1 dir_y/f2 dir_z/f1 + o | 3:328f8ced5276: rev_b_1_ + | | dir_x/f1 + o | 2:0ccce83dd29b: rev_b_0_ + |/ dir_x/f1 + o 1:63f468a0fdac: rev_a_ + | dir_x/f1 dir_x/f2 dir_x/f3 dir_y/f1 dir_y/f2 dir_y/f3 + o 0:4978c5c7386b: root + readme.txt + +Useful save useful nodes : + + $ hg log -T '{node}' > ../rev_c_2_ --rev 'desc("rev_c_2_")' + $ hg log -T '{node}' > ../rev_b_3_ --rev 'desc("rev_b_3_")' + +Reference output + +Since we have the same file conent on each side, we should get a limited number +of file revision (and the associated linkrev). + +This these shared file-revision and the associated linkrev computation is +fueling the complexity test in this file. + + $ cat > ../linkrev-check.sh << EOF + > echo '# expected linkrev for dir_z/f1' + > hg log -T '0 {rev}\n' --rev 'min(desc(rev_b_2_) or desc(rev_c_0_))' + > hg log -T '1 {rev}\n' --rev 'min(desc(rev_b_3_) or desc(rev_c_1_))' + > hg log -T '2 {rev}\n' --rev 'min(desc(rev_d_0_))' + > hg log -T '3 {rev}\n' --rev 'min(desc(rev_d_1_))' + > hg debugindex dir_z/f1 + > # rev linkrev nodeid p1-nodeid p2-nodeid + > # 0 4 360afd990eef 000000000000 000000000000 + > # 1 5 7054ee088631 360afd990eef 000000000000 + > # 2 9 6bb290463f21 7054ee088631 000000000000 + > # 3 10 91fec784ff86 6bb290463f21 000000000000 + > echo '# expected linkrev for dir_z/f2' + > hg log -T '0 {rev}\n' --rev 'min(desc(rev_c_1_) or desc(rev_b_2_))' + > hg log -T '1 {rev}\n' --rev 'min(desc(rev_c_2_) or desc(rev_b_3_))' + > hg debugindex dir_z/f2 + > # rev linkrev nodeid p1-nodeid p2-nodeid + > # 0 5 093bb0f8a0fb 000000000000 000000000000 + > # 1 7 0f47e254cb19 093bb0f8a0fb 000000000000 + > if hg files --rev tip | grep dir_z/f3 > /dev/null; then + > echo '# expected linkrev for dir_z/f3' + > hg log -T '0 {rev}\n' --rev 'desc(rev_b_2_)' + > hg log -T '1 {rev}\n' --rev 'desc(rev_d_0_)' + > hg debugindex dir_z/f3 + > # rev linkrev nodeid p1-nodeid p2-nodeid + > # 0 6 2ed2a3912a0b 000000000000 000000000000 + > # 1 9 7c6d649320ae 2ed2a3912a0b 000000000000 + > fi + > if hg files --rev tip | grep dir_z/f4 > /dev/null; then + > echo '# expected linkrev for dir_z/f4' + > hg log -T '0 {rev}\n' --rev 'desc(rev_c_2_)' + > hg log -T '1 {rev}\n' --rev 'desc(rev_d_1_)' + > hg debugindex dir_z/f4 + > # rev linkrev nodeid p1-nodeid p2-nodeid + > # 0 8 b004912a8510 000000000000 000000000000 + > # 1 10 9f85b3b95e70 b004912a8510 000000000000 + > fi + > echo '# verify the repository' + > hg verify + > EOF + $ sh ../linkrev-check.sh + # expected linkrev for dir_z/f1 + 0 4 + 1 5 + 2 9 + 3 10 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 4 360afd990eef 000000000000 000000000000 + 1 5 7054ee088631 360afd990eef 000000000000 + 2 9 6bb290463f21 7054ee088631 000000000000 + 3 10 91fec784ff86 6bb290463f21 000000000000 + # expected linkrev for dir_z/f2 + 0 5 + 1 7 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 5 093bb0f8a0fb 000000000000 000000000000 + 1 7 0f47e254cb19 093bb0f8a0fb 000000000000 + # expected linkrev for dir_z/f3 + 0 6 + 1 9 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 6 2ed2a3912a0b 000000000000 000000000000 + 1 9 7c6d649320ae 2ed2a3912a0b 000000000000 + # expected linkrev for dir_z/f4 + 0 8 + 1 10 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 8 b004912a8510 000000000000 000000000000 + 1 10 9f85b3b95e70 b004912a8510 000000000000 + # verify the repository + checking changesets + checking manifests + crosschecking files in changesets and manifests + checking files + checking dirstate + checked 11 changesets with 27 changes to 11 files + + $ cd .. + +Test linkrev computation for various widening scenario +====================================================== + +Having cloning all revisions initially +-------------------------------------- + + $ hg clone --narrow ssh://user@dummy/server --include dir_x --include dir_y client_xy_rev_all --noupdate + requesting all changes + adding changesets + adding manifests + adding file changes + added 11 changesets with 16 changes to 6 files + new changesets 4978c5c7386b:71e6a9c7a6a2 + $ cd client_xy_rev_all + $ hg log -GT "{rev}:{node|short}: {desc}\n {files}\n" + o 10:71e6a9c7a6a2: rev_d_1_ + | dir_y/f1 dir_z/f1 dir_z/f4 + o 9:b0a0cbe5ce57: rev_d_0_ + |\ dir_x/f1 dir_z/f1 dir_z/f3 + | o 8:d04e01dcc82d: rev_c_2_ + | | dir_y/f1 dir_y/f3 dir_z/f2 dir_z/f4 + o | 7:fc05b303b551: rev_b_3_ + | | dir_x/f3 dir_z/f1 dir_z/f2 + o | 6:17fd34adb43b: rev_b_2_ + | | dir_x/f2 dir_z/f1 dir_z/f2 dir_z/f3 + | o 5:fa05dbe8eed1: rev_c_1_ + | | dir_z/f1 dir_z/f2 + | o 4:59b4258b00dc: rev_c_0_ + | | dir_y/f1 dir_y/f2 dir_z/f1 + o | 3:328f8ced5276: rev_b_1_ + | | dir_x/f1 + o | 2:0ccce83dd29b: rev_b_0_ + |/ dir_x/f1 + o 1:63f468a0fdac: rev_a_ + | dir_x/f1 dir_x/f2 dir_x/f3 dir_y/f1 dir_y/f2 dir_y/f3 + o 0:4978c5c7386b: root + readme.txt + + $ hg tracked --addinclude dir_z + comparing with ssh://user@dummy/server + searching for changes + adding changesets + adding manifests + adding file changes + added 0 changesets with 10 changes to 4 files + $ sh ../linkrev-check.sh + # expected linkrev for dir_z/f1 + 0 4 + 1 5 + 2 9 + 3 10 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 4 360afd990eef 000000000000 000000000000 + 1 5 7054ee088631 360afd990eef 000000000000 + 2 9 6bb290463f21 7054ee088631 000000000000 + 3 10 91fec784ff86 6bb290463f21 000000000000 + # expected linkrev for dir_z/f2 + 0 5 + 1 7 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 5 093bb0f8a0fb 000000000000 000000000000 + 1 7 0f47e254cb19 093bb0f8a0fb 000000000000 + # expected linkrev for dir_z/f3 + 0 6 + 1 9 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 6 2ed2a3912a0b 000000000000 000000000000 + 1 9 7c6d649320ae 2ed2a3912a0b 000000000000 + # expected linkrev for dir_z/f4 + 0 8 + 1 10 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 8 b004912a8510 000000000000 000000000000 + 1 10 9f85b3b95e70 b004912a8510 000000000000 + # verify the repository + checking changesets + checking manifests + crosschecking files in changesets and manifests + checking files + checking dirstate + checked 11 changesets with 26 changes to 10 files + $ cd .. + + +Having cloning all only branch b +-------------------------------- + + $ hg clone --narrow ssh://user@dummy/server --rev `cat ./rev_b_3_` --include dir_x --include dir_y client_xy_rev_from_b_only --noupdate + adding changesets + adding manifests + adding file changes + added 6 changesets with 10 changes to 6 files + new changesets 4978c5c7386b:fc05b303b551 + $ cd client_xy_rev_from_b_only + $ hg log -GT "{rev}:{node|short}: {desc}\n {files}\n" + o 5:fc05b303b551: rev_b_3_ + | dir_x/f3 dir_z/f1 dir_z/f2 + o 4:17fd34adb43b: rev_b_2_ + | dir_x/f2 dir_z/f1 dir_z/f2 dir_z/f3 + o 3:328f8ced5276: rev_b_1_ + | dir_x/f1 + o 2:0ccce83dd29b: rev_b_0_ + | dir_x/f1 + o 1:63f468a0fdac: rev_a_ + | dir_x/f1 dir_x/f2 dir_x/f3 dir_y/f1 dir_y/f2 dir_y/f3 + o 0:4978c5c7386b: root + readme.txt + + $ hg tracked --addinclude dir_z + comparing with ssh://user@dummy/server + searching for changes + adding changesets + adding manifests + adding file changes + added 0 changesets with 5 changes to 3 files + $ sh ../linkrev-check.sh + # expected linkrev for dir_z/f1 + 0 4 + 1 5 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 4 360afd990eef 000000000000 000000000000 + 1 5 7054ee088631 360afd990eef 000000000000 + # expected linkrev for dir_z/f2 + 0 4 + 1 5 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 4 093bb0f8a0fb 000000000000 000000000000 + 1 5 0f47e254cb19 093bb0f8a0fb 000000000000 + # expected linkrev for dir_z/f3 + 0 4 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 4 2ed2a3912a0b 000000000000 000000000000 + # verify the repository + checking changesets + checking manifests + crosschecking files in changesets and manifests + checking files + checking dirstate + checked 6 changesets with 15 changes to 9 files + $ cd .. + + +Having cloning all only branch c +-------------------------------- + + $ hg clone --narrow ssh://user@dummy/server --rev `cat ./rev_c_2_` --include dir_x --include dir_y client_xy_rev_from_c_only --noupdate + adding changesets + adding manifests + adding file changes + added 5 changesets with 10 changes to 6 files + new changesets 4978c5c7386b:d04e01dcc82d + $ cd client_xy_rev_from_c_only + $ hg log -GT "{rev}:{node|short}: {desc}\n {files}\n" + o 4:d04e01dcc82d: rev_c_2_ + | dir_y/f1 dir_y/f3 dir_z/f2 dir_z/f4 + o 3:fa05dbe8eed1: rev_c_1_ + | dir_z/f1 dir_z/f2 + o 2:59b4258b00dc: rev_c_0_ + | dir_y/f1 dir_y/f2 dir_z/f1 + o 1:63f468a0fdac: rev_a_ + | dir_x/f1 dir_x/f2 dir_x/f3 dir_y/f1 dir_y/f2 dir_y/f3 + o 0:4978c5c7386b: root + readme.txt + + $ hg tracked --addinclude dir_z + comparing with ssh://user@dummy/server + searching for changes + adding changesets + adding manifests + adding file changes + added 0 changesets with 5 changes to 3 files + $ sh ../linkrev-check.sh + # expected linkrev for dir_z/f1 + 0 2 + 1 3 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 2 360afd990eef 000000000000 000000000000 + 1 3 7054ee088631 360afd990eef 000000000000 + # expected linkrev for dir_z/f2 + 0 3 + 1 4 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 3 093bb0f8a0fb 000000000000 000000000000 + 1 4 0f47e254cb19 093bb0f8a0fb 000000000000 + # expected linkrev for dir_z/f4 + 0 4 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 4 b004912a8510 000000000000 000000000000 + # verify the repository + checking changesets + checking manifests + crosschecking files in changesets and manifests + checking files + checking dirstate + checked 5 changesets with 15 changes to 9 files + $ cd .. + +Having cloning all first branch b +--------------------------------- + + $ hg clone --narrow ssh://user@dummy/server --rev `cat ./rev_b_3_` --include dir_x --include dir_y client_xy_rev_from_b_first --noupdate + adding changesets + adding manifests + adding file changes + added 6 changesets with 10 changes to 6 files + new changesets 4978c5c7386b:fc05b303b551 + $ cd client_xy_rev_from_b_first + $ hg pull + pulling from ssh://user@dummy/server + searching for changes + adding changesets + adding manifests + adding file changes + added 5 changesets with 6 changes to 4 files + new changesets 59b4258b00dc:71e6a9c7a6a2 + (run 'hg update' to get a working copy) + $ hg log -GT "{rev}:{node|short}: {desc}\n {files}\n" + o 10:71e6a9c7a6a2: rev_d_1_ + | dir_y/f1 dir_z/f1 dir_z/f4 + o 9:b0a0cbe5ce57: rev_d_0_ + |\ dir_x/f1 dir_z/f1 dir_z/f3 + | o 8:d04e01dcc82d: rev_c_2_ + | | dir_y/f1 dir_y/f3 dir_z/f2 dir_z/f4 + | o 7:fa05dbe8eed1: rev_c_1_ + | | dir_z/f1 dir_z/f2 + | o 6:59b4258b00dc: rev_c_0_ + | | dir_y/f1 dir_y/f2 dir_z/f1 + o | 5:fc05b303b551: rev_b_3_ + | | dir_x/f3 dir_z/f1 dir_z/f2 + o | 4:17fd34adb43b: rev_b_2_ + | | dir_x/f2 dir_z/f1 dir_z/f2 dir_z/f3 + o | 3:328f8ced5276: rev_b_1_ + | | dir_x/f1 + o | 2:0ccce83dd29b: rev_b_0_ + |/ dir_x/f1 + o 1:63f468a0fdac: rev_a_ + | dir_x/f1 dir_x/f2 dir_x/f3 dir_y/f1 dir_y/f2 dir_y/f3 + o 0:4978c5c7386b: root + readme.txt + + $ hg tracked --addinclude dir_z + comparing with ssh://user@dummy/server + searching for changes + adding changesets + adding manifests + adding file changes + added 0 changesets with 10 changes to 4 files + $ sh ../linkrev-check.sh + # expected linkrev for dir_z/f1 + 0 4 + 1 5 + 2 9 + 3 10 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 6 360afd990eef 000000000000 000000000000 (known-bad-output !) + 0 4 360afd990eef 000000000000 000000000000 (missing-correct-output !) + 1 7 7054ee088631 360afd990eef 000000000000 (known-bad-output !) + 1 5 7054ee088631 360afd990eef 000000000000 (missing-correct-output !) + 2 9 6bb290463f21 7054ee088631 000000000000 + 3 10 91fec784ff86 6bb290463f21 000000000000 + # expected linkrev for dir_z/f2 + 0 4 + 1 5 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 7 093bb0f8a0fb 000000000000 000000000000 (known-bad-output !) + 0 4 093bb0f8a0fb 000000000000 000000000000 (missing-correct-output !) + 1 5 0f47e254cb19 093bb0f8a0fb 000000000000 + # expected linkrev for dir_z/f3 + 0 4 + 1 9 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 4 2ed2a3912a0b 000000000000 000000000000 + 1 9 7c6d649320ae 2ed2a3912a0b 000000000000 + # expected linkrev for dir_z/f4 + 0 8 + 1 10 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 8 b004912a8510 000000000000 000000000000 + 1 10 9f85b3b95e70 b004912a8510 000000000000 + # verify the repository + checking changesets + checking manifests + crosschecking files in changesets and manifests + checking files + checking dirstate + checked 11 changesets with 26 changes to 10 files + $ cd .. + + +Having cloning all first branch c +--------------------------------- + + $ hg clone --narrow ssh://user@dummy/server --rev `cat ./rev_c_2_` --include dir_x --include dir_y client_xy_rev_from_c_first --noupdate + adding changesets + adding manifests + adding file changes + added 5 changesets with 10 changes to 6 files + new changesets 4978c5c7386b:d04e01dcc82d + $ cd client_xy_rev_from_c_first + $ hg pull + pulling from ssh://user@dummy/server + searching for changes + adding changesets + adding manifests + adding file changes + added 6 changesets with 6 changes to 4 files + new changesets 0ccce83dd29b:71e6a9c7a6a2 + (run 'hg update' to get a working copy) + $ hg log -GT "{rev}:{node|short}: {desc}\n {files}\n" + o 10:71e6a9c7a6a2: rev_d_1_ + | dir_y/f1 dir_z/f1 dir_z/f4 + o 9:b0a0cbe5ce57: rev_d_0_ + |\ dir_x/f1 dir_z/f1 dir_z/f3 + | o 8:fc05b303b551: rev_b_3_ + | | dir_x/f3 dir_z/f1 dir_z/f2 + | o 7:17fd34adb43b: rev_b_2_ + | | dir_x/f2 dir_z/f1 dir_z/f2 dir_z/f3 + | o 6:328f8ced5276: rev_b_1_ + | | dir_x/f1 + | o 5:0ccce83dd29b: rev_b_0_ + | | dir_x/f1 + o | 4:d04e01dcc82d: rev_c_2_ + | | dir_y/f1 dir_y/f3 dir_z/f2 dir_z/f4 + o | 3:fa05dbe8eed1: rev_c_1_ + | | dir_z/f1 dir_z/f2 + o | 2:59b4258b00dc: rev_c_0_ + |/ dir_y/f1 dir_y/f2 dir_z/f1 + o 1:63f468a0fdac: rev_a_ + | dir_x/f1 dir_x/f2 dir_x/f3 dir_y/f1 dir_y/f2 dir_y/f3 + o 0:4978c5c7386b: root + readme.txt + + $ hg tracked --addinclude dir_z + comparing with ssh://user@dummy/server + searching for changes + adding changesets + adding manifests + adding file changes + added 0 changesets with 10 changes to 4 files + $ sh ../linkrev-check.sh + # expected linkrev for dir_z/f1 + 0 2 + 1 3 + 2 9 + 3 10 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 2 360afd990eef 000000000000 000000000000 + 1 3 7054ee088631 360afd990eef 000000000000 + 2 9 6bb290463f21 7054ee088631 000000000000 + 3 10 91fec784ff86 6bb290463f21 000000000000 + # expected linkrev for dir_z/f2 + 0 3 + 1 4 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 3 093bb0f8a0fb 000000000000 000000000000 + 1 8 0f47e254cb19 093bb0f8a0fb 000000000000 (known-bad-output !) + 1 4 0f47e254cb19 093bb0f8a0fb 000000000000 (missing-correct-output !) + # expected linkrev for dir_z/f3 + 0 7 + 1 9 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 7 2ed2a3912a0b 000000000000 000000000000 + 1 9 7c6d649320ae 2ed2a3912a0b 000000000000 + # expected linkrev for dir_z/f4 + 0 4 + 1 10 + rev linkrev nodeid p1-nodeid p2-nodeid + 0 4 b004912a8510 000000000000 000000000000 + 1 10 9f85b3b95e70 b004912a8510 000000000000 + # verify the repository + checking changesets + checking manifests + crosschecking files in changesets and manifests + checking files + checking dirstate + checked 11 changesets with 26 changes to 10 files + $ cd ..