|
|
==============================================================================================
|
|
|
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 ..
|
|
|
|