author | Anton Shestakov <av6@dwimlabs.net> |
Sat, 26 Sep 2015 17:15:58 +0800 | |
changeset 26390 | 0f0cda81e9b0 |
parent 26118 | 049005de325e |
child 26423 | c93f91c1db1c |
permissions | -rw-r--r-- |
19764
e92650e39f1c
generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff
changeset
|
1 |
Check whether size of generaldelta revlog is not bigger than its |
e92650e39f1c
generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff
changeset
|
2 |
regular equivalent. Test would fail if generaldelta was naive |
e92650e39f1c
generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff
changeset
|
3 |
implementation of parentdelta: third manifest revision would be fully |
e92650e39f1c
generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff
changeset
|
4 |
inserted due to big distance from its paren revision (zero). |
e92650e39f1c
generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff
changeset
|
5 |
|
e92650e39f1c
generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff
changeset
|
6 |
$ hg init repo |
e92650e39f1c
generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff
changeset
|
7 |
$ cd repo |
e92650e39f1c
generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff
changeset
|
8 |
$ echo foo > foo |
e92650e39f1c
generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff
changeset
|
9 |
$ echo bar > bar |
e92650e39f1c
generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff
changeset
|
10 |
$ hg commit -q -Am boo |
e92650e39f1c
generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff
changeset
|
11 |
$ hg clone --pull . ../gdrepo -q --config format.generaldelta=yes |
e92650e39f1c
generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff
changeset
|
12 |
$ for r in 1 2 3; do |
e92650e39f1c
generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff
changeset
|
13 |
> echo $r > foo |
e92650e39f1c
generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff
changeset
|
14 |
> hg commit -q -m $r |
e92650e39f1c
generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff
changeset
|
15 |
> hg up -q -r 0 |
e92650e39f1c
generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff
changeset
|
16 |
> hg pull . -q -r $r -R ../gdrepo |
e92650e39f1c
generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff
changeset
|
17 |
> done |
19942
2c886dedd902
tests: move generaldelta test to inline python (issue4064)
Matt Mackall <mpm@selenic.com>
parents:
19888
diff
changeset
|
18 |
|
19764
e92650e39f1c
generaldelta: initialize basecache properly
Wojciech Lopata <lopek@fb.com>
parents:
diff
changeset
|
19 |
$ cd .. |
19942
2c886dedd902
tests: move generaldelta test to inline python (issue4064)
Matt Mackall <mpm@selenic.com>
parents:
19888
diff
changeset
|
20 |
>>> import os |
2c886dedd902
tests: move generaldelta test to inline python (issue4064)
Matt Mackall <mpm@selenic.com>
parents:
19888
diff
changeset
|
21 |
>>> regsize = os.stat("repo/.hg/store/00manifest.i").st_size |
2c886dedd902
tests: move generaldelta test to inline python (issue4064)
Matt Mackall <mpm@selenic.com>
parents:
19888
diff
changeset
|
22 |
>>> gdsize = os.stat("gdrepo/.hg/store/00manifest.i").st_size |
2c886dedd902
tests: move generaldelta test to inline python (issue4064)
Matt Mackall <mpm@selenic.com>
parents:
19888
diff
changeset
|
23 |
>>> if regsize < gdsize: |
2c886dedd902
tests: move generaldelta test to inline python (issue4064)
Matt Mackall <mpm@selenic.com>
parents:
19888
diff
changeset
|
24 |
... print 'generaldata increased size of manifest' |
23381
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
25 |
|
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
26 |
Verify rev reordering doesnt create invalid bundles (issue4462) |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
27 |
This requires a commit tree that when pulled will reorder manifest revs such |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
28 |
that the second manifest to create a file rev will be ordered before the first |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
29 |
manifest to create that file rev. We also need to do a partial pull to ensure |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
30 |
reordering happens. At the end we verify the linkrev points at the earliest |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
31 |
commit. |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
32 |
|
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
33 |
$ hg init server --config format.generaldelta=True |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
34 |
$ cd server |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
35 |
$ touch a |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
36 |
$ hg commit -Aqm a |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
37 |
$ echo x > x |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
38 |
$ echo y > y |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
39 |
$ hg commit -Aqm xy |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
40 |
$ hg up -q '.^' |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
41 |
$ echo x > x |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
42 |
$ echo z > z |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
43 |
$ hg commit -Aqm xz |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
44 |
$ hg up -q 1 |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
45 |
$ echo b > b |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
46 |
$ hg commit -Aqm b |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
47 |
$ hg merge -q 2 |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
48 |
$ hg commit -Aqm merge |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
49 |
$ echo c > c |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
50 |
$ hg commit -Aqm c |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
51 |
$ hg log -G -T '{rev} {shortest(node)} {desc}' |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
52 |
@ 5 ebb8 c |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
53 |
| |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
54 |
o 4 baf7 merge |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
55 |
|\ |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
56 |
| o 3 a129 b |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
57 |
| | |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
58 |
o | 2 958c xz |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
59 |
| | |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
60 |
| o 1 f00c xy |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
61 |
|/ |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
62 |
o 0 3903 a |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
63 |
|
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
64 |
$ cd .. |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
65 |
$ hg init client |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
66 |
$ cd client |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
67 |
$ hg pull -q ../server -r 4 |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
68 |
$ hg debugindex x |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
69 |
rev offset length base linkrev nodeid p1 p2 |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
70 |
0 0 3 0 1 1406e7411862 000000000000 000000000000 |
cc0ff93d0c0c
changegroup: fix file linkrevs during reorders (issue4462)
Durham Goode <durham@fb.com>
parents:
19942
diff
changeset
|
71 |
|
26118
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
72 |
$ cd .. |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
73 |
|
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
74 |
Test format.aggressivemergedeltas |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
75 |
|
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
76 |
$ hg init --config format.generaldelta=1 aggressive |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
77 |
$ cd aggressive |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
78 |
$ touch a b c d e |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
79 |
$ hg commit -Aqm side1 |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
80 |
$ hg up -q null |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
81 |
$ touch x y |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
82 |
$ hg commit -Aqm side2 |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
83 |
|
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
84 |
- Verify non-aggressive merge uses p1 (commit 1) as delta parent |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
85 |
$ hg merge -q 0 |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
86 |
$ hg commit -q -m merge |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
87 |
$ hg debugindex -m |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
88 |
rev offset length delta linkrev nodeid p1 p2 |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
89 |
0 0 59 -1 0 8dde941edb6e 000000000000 000000000000 |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
90 |
1 59 59 -1 1 315c023f341d 000000000000 000000000000 |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
91 |
2 118 65 1 2 2ab389a983eb 315c023f341d 8dde941edb6e |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
92 |
|
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
93 |
$ hg strip -q -r . --config extensions.strip= |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
94 |
|
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
95 |
- Verify aggressive merge uses p2 (commit 0) as delta parent |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
96 |
$ hg up -q -C 1 |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
97 |
$ hg merge -q 0 |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
98 |
$ hg commit -q -m merge --config format.aggressivemergedeltas=True |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
99 |
$ hg debugindex -m |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
100 |
rev offset length delta linkrev nodeid p1 p2 |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
101 |
0 0 59 -1 0 8dde941edb6e 000000000000 000000000000 |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
102 |
1 59 59 -1 1 315c023f341d 000000000000 000000000000 |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
103 |
2 118 62 0 2 2ab389a983eb 315c023f341d 8dde941edb6e |
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
104 |
|
049005de325e
revlog: add an aggressivemergedelta option
Durham Goode <durham@fb.com>
parents:
23381
diff
changeset
|
105 |
$ cd .. |