##// END OF EJS Templates
clone-bundles: reorder some test section and add titles...
marmoute -
r51593:f4e8c82e default
parent child Browse files
Show More
@@ -1,818 +1,838 b''
1 #require no-reposimplestore no-chg
1 #require no-reposimplestore no-chg
2
2
3 Set up a server
3 Set up a server
4
4
5 $ hg init server
5 $ hg init server
6 $ cd server
6 $ cd server
7 $ cat >> .hg/hgrc << EOF
7 $ cat >> .hg/hgrc << EOF
8 > [extensions]
8 > [extensions]
9 > clonebundles =
9 > clonebundles =
10 > EOF
10 > EOF
11
11
12 $ touch foo
12 $ touch foo
13 $ hg -q commit -A -m 'add foo'
13 $ hg -q commit -A -m 'add foo'
14 $ touch bar
14 $ touch bar
15 $ hg -q commit -A -m 'add bar'
15 $ hg -q commit -A -m 'add bar'
16
16
17 $ hg serve -d -p $HGPORT --pid-file hg.pid --accesslog access.log
17 $ hg serve -d -p $HGPORT --pid-file hg.pid --accesslog access.log
18 $ cat hg.pid >> $DAEMON_PIDS
18 $ cat hg.pid >> $DAEMON_PIDS
19 $ cd ..
19 $ cd ..
20
20
21 Missing manifest should not result in server lookup
21 Missing manifest should not result in server lookup
22
22
23 $ hg --verbose clone -U http://localhost:$HGPORT no-manifest
23 $ hg --verbose clone -U http://localhost:$HGPORT no-manifest
24 requesting all changes
24 requesting all changes
25 adding changesets
25 adding changesets
26 adding manifests
26 adding manifests
27 adding file changes
27 adding file changes
28 added 2 changesets with 2 changes to 2 files
28 added 2 changesets with 2 changes to 2 files
29 new changesets 53245c60e682:aaff8d2ffbbf
29 new changesets 53245c60e682:aaff8d2ffbbf
30 (sent 3 HTTP requests and * bytes; received * bytes in responses) (glob)
30 (sent 3 HTTP requests and * bytes; received * bytes in responses) (glob)
31
31
32 $ cat server/access.log
32 $ cat server/access.log
33 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
33 * - - [*] "GET /?cmd=capabilities HTTP/1.1" 200 - (glob)
34 $LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
34 $LOCALIP - - [$LOGDATE$] "GET /?cmd=batch HTTP/1.1" 200 - x-hgarg-1:cmds=heads+%3Bknown+nodes%3D x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
35 $LOCALIP - - [$LOGDATE$] "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:bookmarks=1&$USUAL_BUNDLE_CAPS$&cg=1&common=0000000000000000000000000000000000000000&heads=aaff8d2ffbbf07a46dd1f05d8ae7877e3f56e2a2&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
35 $LOCALIP - - [$LOGDATE$] "GET /?cmd=getbundle HTTP/1.1" 200 - x-hgarg-1:bookmarks=1&$USUAL_BUNDLE_CAPS$&cg=1&common=0000000000000000000000000000000000000000&heads=aaff8d2ffbbf07a46dd1f05d8ae7877e3f56e2a2&listkeys=bookmarks&phases=1 x-hgproto-1:0.1 0.2 comp=$USUAL_COMPRESSIONS$ partial-pull (glob)
36
36
37 Empty manifest file results in retrieval
37 Empty manifest file results in retrieval
38 (the extension only checks if the manifest file exists)
38 (the extension only checks if the manifest file exists)
39
39
40 $ touch server/.hg/clonebundles.manifest
40 $ touch server/.hg/clonebundles.manifest
41 $ hg --verbose clone -U http://localhost:$HGPORT empty-manifest
41 $ hg --verbose clone -U http://localhost:$HGPORT empty-manifest
42 no clone bundles available on remote; falling back to regular clone
42 no clone bundles available on remote; falling back to regular clone
43 requesting all changes
43 requesting all changes
44 adding changesets
44 adding changesets
45 adding manifests
45 adding manifests
46 adding file changes
46 adding file changes
47 added 2 changesets with 2 changes to 2 files
47 added 2 changesets with 2 changes to 2 files
48 new changesets 53245c60e682:aaff8d2ffbbf
48 new changesets 53245c60e682:aaff8d2ffbbf
49 (sent 4 HTTP requests and * bytes; received * bytes in responses) (glob)
49 (sent 4 HTTP requests and * bytes; received * bytes in responses) (glob)
50
50
51 Manifest file with invalid URL aborts
51 Manifest file with invalid URL aborts
52
52
53 $ echo 'http://does.not.exist/bundle.hg' > server/.hg/clonebundles.manifest
53 $ echo 'http://does.not.exist/bundle.hg' > server/.hg/clonebundles.manifest
54 $ hg clone http://localhost:$HGPORT 404-url
54 $ hg clone http://localhost:$HGPORT 404-url
55 applying clone bundle from http://does.not.exist/bundle.hg
55 applying clone bundle from http://does.not.exist/bundle.hg
56 error fetching bundle: (.* not known|(\[Errno -?\d+] )?([Nn]o address associated with (host)?name|Temporary failure in name resolution|Name does not resolve)) (re) (no-windows !)
56 error fetching bundle: (.* not known|(\[Errno -?\d+] )?([Nn]o address associated with (host)?name|Temporary failure in name resolution|Name does not resolve)) (re) (no-windows !)
57 error fetching bundle: [Errno 1100*] getaddrinfo failed (glob) (windows !)
57 error fetching bundle: [Errno 1100*] getaddrinfo failed (glob) (windows !)
58 abort: error applying bundle
58 abort: error applying bundle
59 (if this error persists, consider contacting the server operator or disable clone bundles via "--config ui.clonebundles=false")
59 (if this error persists, consider contacting the server operator or disable clone bundles via "--config ui.clonebundles=false")
60 [255]
60 [255]
61
61
62 Manifest file with URL with unknown scheme skips the URL
62 Manifest file with URL with unknown scheme skips the URL
63 $ echo 'weirdscheme://does.not.exist/bundle.hg' > server/.hg/clonebundles.manifest
63 $ echo 'weirdscheme://does.not.exist/bundle.hg' > server/.hg/clonebundles.manifest
64 $ hg clone http://localhost:$HGPORT unknown-scheme
64 $ hg clone http://localhost:$HGPORT unknown-scheme
65 no compatible clone bundles available on server; falling back to regular clone
65 no compatible clone bundles available on server; falling back to regular clone
66 (you may want to report this to the server operator)
66 (you may want to report this to the server operator)
67 requesting all changes
67 requesting all changes
68 adding changesets
68 adding changesets
69 adding manifests
69 adding manifests
70 adding file changes
70 adding file changes
71 added 2 changesets with 2 changes to 2 files
71 added 2 changesets with 2 changes to 2 files
72 new changesets 53245c60e682:aaff8d2ffbbf
72 new changesets 53245c60e682:aaff8d2ffbbf
73 updating to branch default
73 updating to branch default
74 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
74 2 files updated, 0 files merged, 0 files removed, 0 files unresolved
75
75
76 Server is not running aborts
76 Server is not running aborts
77
77
78 $ echo "http://localhost:$HGPORT1/bundle.hg" > server/.hg/clonebundles.manifest
78 $ echo "http://localhost:$HGPORT1/bundle.hg" > server/.hg/clonebundles.manifest
79 $ hg clone http://localhost:$HGPORT server-not-runner
79 $ hg clone http://localhost:$HGPORT server-not-runner
80 applying clone bundle from http://localhost:$HGPORT1/bundle.hg
80 applying clone bundle from http://localhost:$HGPORT1/bundle.hg
81 error fetching bundle: (.* refused.*|Protocol not supported|(.* )?\$EADDRNOTAVAIL\$|.* No route to host) (re)
81 error fetching bundle: (.* refused.*|Protocol not supported|(.* )?\$EADDRNOTAVAIL\$|.* No route to host) (re)
82 abort: error applying bundle
82 abort: error applying bundle
83 (if this error persists, consider contacting the server operator or disable clone bundles via "--config ui.clonebundles=false")
83 (if this error persists, consider contacting the server operator or disable clone bundles via "--config ui.clonebundles=false")
84 [255]
84 [255]
85
85
86 Server returns 404
86 Server returns 404
87
87
88 $ "$PYTHON" $TESTDIR/dumbhttp.py -p $HGPORT1 --pid http.pid
88 $ "$PYTHON" $TESTDIR/dumbhttp.py -p $HGPORT1 --pid http.pid
89 $ cat http.pid >> $DAEMON_PIDS
89 $ cat http.pid >> $DAEMON_PIDS
90 $ hg clone http://localhost:$HGPORT running-404
90 $ hg clone http://localhost:$HGPORT running-404
91 applying clone bundle from http://localhost:$HGPORT1/bundle.hg
91 applying clone bundle from http://localhost:$HGPORT1/bundle.hg
92 HTTP error fetching bundle: HTTP Error 404: File not found
92 HTTP error fetching bundle: HTTP Error 404: File not found
93 abort: error applying bundle
93 abort: error applying bundle
94 (if this error persists, consider contacting the server operator or disable clone bundles via "--config ui.clonebundles=false")
94 (if this error persists, consider contacting the server operator or disable clone bundles via "--config ui.clonebundles=false")
95 [255]
95 [255]
96
96
97 We can override failure to fall back to regular clone
97 We can override failure to fall back to regular clone
98
98
99 $ hg --config ui.clonebundlefallback=true clone -U http://localhost:$HGPORT 404-fallback
99 $ hg --config ui.clonebundlefallback=true clone -U http://localhost:$HGPORT 404-fallback
100 applying clone bundle from http://localhost:$HGPORT1/bundle.hg
100 applying clone bundle from http://localhost:$HGPORT1/bundle.hg
101 HTTP error fetching bundle: HTTP Error 404: File not found
101 HTTP error fetching bundle: HTTP Error 404: File not found
102 falling back to normal clone
102 falling back to normal clone
103 requesting all changes
103 requesting all changes
104 adding changesets
104 adding changesets
105 adding manifests
105 adding manifests
106 adding file changes
106 adding file changes
107 added 2 changesets with 2 changes to 2 files
107 added 2 changesets with 2 changes to 2 files
108 new changesets 53245c60e682:aaff8d2ffbbf
108 new changesets 53245c60e682:aaff8d2ffbbf
109
109
110 Bundle with partial content works
110 Bundle with partial content works
111
111
112 $ hg -R server bundle --type gzip-v1 --base null -r 53245c60e682 partial.hg
112 $ hg -R server bundle --type gzip-v1 --base null -r 53245c60e682 partial.hg
113 1 changesets found
113 1 changesets found
114
114
115 We verify exact bundle content as an extra check against accidental future
115 We verify exact bundle content as an extra check against accidental future
116 changes. If this output changes, we could break old clients.
116 changes. If this output changes, we could break old clients.
117
117
118 $ f --size --hexdump partial.hg
118 $ f --size --hexdump partial.hg
119 partial.hg: size=207
119 partial.hg: size=207
120 0000: 48 47 31 30 47 5a 78 9c 63 60 60 98 17 ac 12 93 |HG10GZx.c``.....|
120 0000: 48 47 31 30 47 5a 78 9c 63 60 60 98 17 ac 12 93 |HG10GZx.c``.....|
121 0010: f0 ac a9 23 45 70 cb bf 0d 5f 59 4e 4a 7f 79 21 |...#Ep..._YNJ.y!|
121 0010: f0 ac a9 23 45 70 cb bf 0d 5f 59 4e 4a 7f 79 21 |...#Ep..._YNJ.y!|
122 0020: 9b cc 40 24 20 a0 d7 ce 2c d1 38 25 cd 24 25 d5 |..@$ ...,.8%.$%.|
122 0020: 9b cc 40 24 20 a0 d7 ce 2c d1 38 25 cd 24 25 d5 |..@$ ...,.8%.$%.|
123 0030: d8 c2 22 cd 38 d9 24 cd 22 d5 c8 22 cd 24 cd 32 |..".8.$."..".$.2|
123 0030: d8 c2 22 cd 38 d9 24 cd 22 d5 c8 22 cd 24 cd 32 |..".8.$."..".$.2|
124 0040: d1 c2 d0 c4 c8 d2 32 d1 38 39 29 c9 34 cd d4 80 |......2.89).4...|
124 0040: d1 c2 d0 c4 c8 d2 32 d1 38 39 29 c9 34 cd d4 80 |......2.89).4...|
125 0050: ab 24 b5 b8 84 cb 40 c1 80 2b 2d 3f 9f 8b 2b 31 |.$....@..+-?..+1|
125 0050: ab 24 b5 b8 84 cb 40 c1 80 2b 2d 3f 9f 8b 2b 31 |.$....@..+-?..+1|
126 0060: 25 45 01 c8 80 9a d2 9b 65 fb e5 9e 45 bf 8d 7f |%E......e...E...|
126 0060: 25 45 01 c8 80 9a d2 9b 65 fb e5 9e 45 bf 8d 7f |%E......e...E...|
127 0070: 9f c6 97 9f 2b 44 34 67 d9 ec 8e 0f a0 92 0b 75 |....+D4g.......u|
127 0070: 9f c6 97 9f 2b 44 34 67 d9 ec 8e 0f a0 92 0b 75 |....+D4g.......u|
128 0080: 41 d6 24 59 18 a4 a4 9a a6 18 1a 5b 98 9b 5a 98 |A.$Y.......[..Z.|
128 0080: 41 d6 24 59 18 a4 a4 9a a6 18 1a 5b 98 9b 5a 98 |A.$Y.......[..Z.|
129 0090: 9a 18 26 9b a6 19 98 1a 99 99 26 a6 18 9a 98 24 |..&.......&....$|
129 0090: 9a 18 26 9b a6 19 98 1a 99 99 26 a6 18 9a 98 24 |..&.......&....$|
130 00a0: 26 59 a6 25 5a 98 a5 18 a6 24 71 41 35 b1 43 dc |&Y.%Z....$qA5.C.|
130 00a0: 26 59 a6 25 5a 98 a5 18 a6 24 71 41 35 b1 43 dc |&Y.%Z....$qA5.C.|
131 00b0: 16 b2 83 f7 e9 45 8b d2 56 c7 a3 1f 82 52 d7 8a |.....E..V....R..|
131 00b0: 16 b2 83 f7 e9 45 8b d2 56 c7 a3 1f 82 52 d7 8a |.....E..V....R..|
132 00c0: 78 ed fc d5 76 f1 36 35 dc 05 00 36 ed 5e c7 |x...v.65...6.^.|
132 00c0: 78 ed fc d5 76 f1 36 35 dc 05 00 36 ed 5e c7 |x...v.65...6.^.|
133
133
134 $ echo "http://localhost:$HGPORT1/partial.hg" > server/.hg/clonebundles.manifest
134 $ echo "http://localhost:$HGPORT1/partial.hg" > server/.hg/clonebundles.manifest
135 $ hg clone -U http://localhost:$HGPORT partial-bundle
135 $ hg clone -U http://localhost:$HGPORT partial-bundle
136 applying clone bundle from http://localhost:$HGPORT1/partial.hg
136 applying clone bundle from http://localhost:$HGPORT1/partial.hg
137 adding changesets
137 adding changesets
138 adding manifests
138 adding manifests
139 adding file changes
139 adding file changes
140 added 1 changesets with 1 changes to 1 files
140 added 1 changesets with 1 changes to 1 files
141 finished applying clone bundle
141 finished applying clone bundle
142 searching for changes
142 searching for changes
143 adding changesets
143 adding changesets
144 adding manifests
144 adding manifests
145 adding file changes
145 adding file changes
146 added 1 changesets with 1 changes to 1 files
146 added 1 changesets with 1 changes to 1 files
147 new changesets aaff8d2ffbbf
147 new changesets aaff8d2ffbbf
148 1 local changesets published
148 1 local changesets published
149
149
150 Incremental pull doesn't fetch bundle
150 Incremental pull doesn't fetch bundle
151
151
152 $ hg clone -r 53245c60e682 -U http://localhost:$HGPORT partial-clone
152 $ hg clone -r 53245c60e682 -U http://localhost:$HGPORT partial-clone
153 adding changesets
153 adding changesets
154 adding manifests
154 adding manifests
155 adding file changes
155 adding file changes
156 added 1 changesets with 1 changes to 1 files
156 added 1 changesets with 1 changes to 1 files
157 new changesets 53245c60e682
157 new changesets 53245c60e682
158
158
159 $ cd partial-clone
159 $ cd partial-clone
160 $ hg pull
160 $ hg pull
161 pulling from http://localhost:$HGPORT/
161 pulling from http://localhost:$HGPORT/
162 searching for changes
162 searching for changes
163 adding changesets
163 adding changesets
164 adding manifests
164 adding manifests
165 adding file changes
165 adding file changes
166 added 1 changesets with 1 changes to 1 files
166 added 1 changesets with 1 changes to 1 files
167 new changesets aaff8d2ffbbf
167 new changesets aaff8d2ffbbf
168 (run 'hg update' to get a working copy)
168 (run 'hg update' to get a working copy)
169 $ cd ..
169 $ cd ..
170
170
171 Bundle with full content works
171 Bundle with full content works
172
172
173 $ hg -R server bundle --type gzip-v2 --base null -r tip full.hg
173 $ hg -R server bundle --type gzip-v2 --base null -r tip full.hg
174 2 changesets found
174 2 changesets found
175
175
176 Again, we perform an extra check against bundle content changes. If this content
176 Again, we perform an extra check against bundle content changes. If this content
177 changes, clone bundles produced by new Mercurial versions may not be readable
177 changes, clone bundles produced by new Mercurial versions may not be readable
178 by old clients.
178 by old clients.
179
179
180 $ f --size --hexdump full.hg
180 $ f --size --hexdump full.hg
181 full.hg: size=442
181 full.hg: size=442
182 0000: 48 47 32 30 00 00 00 0e 43 6f 6d 70 72 65 73 73 |HG20....Compress|
182 0000: 48 47 32 30 00 00 00 0e 43 6f 6d 70 72 65 73 73 |HG20....Compress|
183 0010: 69 6f 6e 3d 47 5a 78 9c 63 60 60 d0 e4 76 f6 70 |ion=GZx.c``..v.p|
183 0010: 69 6f 6e 3d 47 5a 78 9c 63 60 60 d0 e4 76 f6 70 |ion=GZx.c``..v.p|
184 0020: f4 73 77 75 0f f2 0f 0d 60 00 02 46 46 76 26 4e |.swu....`..FFv&N|
184 0020: f4 73 77 75 0f f2 0f 0d 60 00 02 46 46 76 26 4e |.swu....`..FFv&N|
185 0030: c6 b2 d4 a2 e2 cc fc 3c 03 a3 bc a4 e4 8c c4 bc |.......<........|
185 0030: c6 b2 d4 a2 e2 cc fc 3c 03 a3 bc a4 e4 8c c4 bc |.......<........|
186 0040: f4 d4 62 23 06 06 e6 19 40 f9 4d c1 2a 31 09 cf |..b#....@.M.*1..|
186 0040: f4 d4 62 23 06 06 e6 19 40 f9 4d c1 2a 31 09 cf |..b#....@.M.*1..|
187 0050: 9a 3a 52 04 b7 fc db f0 95 e5 a4 f4 97 17 b2 c9 |.:R.............|
187 0050: 9a 3a 52 04 b7 fc db f0 95 e5 a4 f4 97 17 b2 c9 |.:R.............|
188 0060: 0c 14 00 02 e6 d9 99 25 1a a7 a4 99 a4 a4 1a 5b |.......%.......[|
188 0060: 0c 14 00 02 e6 d9 99 25 1a a7 a4 99 a4 a4 1a 5b |.......%.......[|
189 0070: 58 a4 19 27 9b a4 59 a4 1a 59 a4 99 a4 59 26 5a |X..'..Y..Y...Y&Z|
189 0070: 58 a4 19 27 9b a4 59 a4 1a 59 a4 99 a4 59 26 5a |X..'..Y..Y...Y&Z|
190 0080: 18 9a 18 59 5a 26 1a 27 27 25 99 a6 99 1a 70 95 |...YZ&.''%....p.|
190 0080: 18 9a 18 59 5a 26 1a 27 27 25 99 a6 99 1a 70 95 |...YZ&.''%....p.|
191 0090: a4 16 97 70 19 28 18 70 a5 e5 e7 73 71 25 a6 a4 |...p.(.p...sq%..|
191 0090: a4 16 97 70 19 28 18 70 a5 e5 e7 73 71 25 a6 a4 |...p.(.p...sq%..|
192 00a0: 28 00 19 20 17 af fa df ab ff 7b 3f fb 92 dc 8b |(.. ......{?....|
192 00a0: 28 00 19 20 17 af fa df ab ff 7b 3f fb 92 dc 8b |(.. ......{?....|
193 00b0: 1f 62 bb 9e b7 d7 d9 87 3d 5a 44 89 2f b0 99 87 |.b......=ZD./...|
193 00b0: 1f 62 bb 9e b7 d7 d9 87 3d 5a 44 89 2f b0 99 87 |.b......=ZD./...|
194 00c0: ec e2 54 63 43 e3 b4 64 43 73 23 33 43 53 0b 63 |..TcC..dCs#3CS.c|
194 00c0: ec e2 54 63 43 e3 b4 64 43 73 23 33 43 53 0b 63 |..TcC..dCs#3CS.c|
195 00d0: d3 14 23 03 a0 fb 2c 2c 0c d3 80 1e 30 49 49 b1 |..#...,,....0II.|
195 00d0: d3 14 23 03 a0 fb 2c 2c 0c d3 80 1e 30 49 49 b1 |..#...,,....0II.|
196 00e0: 4c 4a 32 48 33 30 b0 34 42 b8 38 29 b1 08 e2 62 |LJ2H30.4B.8)...b|
196 00e0: 4c 4a 32 48 33 30 b0 34 42 b8 38 29 b1 08 e2 62 |LJ2H30.4B.8)...b|
197 00f0: 20 03 6a ca c2 2c db 2f f7 2c fa 6d fc fb 34 be | .j..,./.,.m..4.|
197 00f0: 20 03 6a ca c2 2c db 2f f7 2c fa 6d fc fb 34 be | .j..,./.,.m..4.|
198 0100: fc 5c 21 a2 39 cb 66 77 7c 00 0d c3 59 17 14 58 |.\!.9.fw|...Y..X|
198 0100: fc 5c 21 a2 39 cb 66 77 7c 00 0d c3 59 17 14 58 |.\!.9.fw|...Y..X|
199 0110: 49 16 06 29 a9 a6 29 86 c6 16 e6 a6 16 a6 26 86 |I..)..).......&.|
199 0110: 49 16 06 29 a9 a6 29 86 c6 16 e6 a6 16 a6 26 86 |I..)..).......&.|
200 0120: c9 a6 69 06 a6 46 66 a6 89 29 86 26 26 89 49 96 |..i..Ff..).&&.I.|
200 0120: c9 a6 69 06 a6 46 66 a6 89 29 86 26 26 89 49 96 |..i..Ff..).&&.I.|
201 0130: 69 89 16 66 29 86 29 49 5c 20 07 3e 16 fe 23 ae |i..f).)I\ .>..#.|
201 0130: 69 89 16 66 29 86 29 49 5c 20 07 3e 16 fe 23 ae |i..f).)I\ .>..#.|
202 0140: 26 da 1c ab 10 1f d1 f8 e3 b3 ef cd dd fc 0c 93 |&...............|
202 0140: 26 da 1c ab 10 1f d1 f8 e3 b3 ef cd dd fc 0c 93 |&...............|
203 0150: 88 75 34 36 75 04 82 55 17 14 36 a4 38 10 04 d8 |.u46u..U..6.8...|
203 0150: 88 75 34 36 75 04 82 55 17 14 36 a4 38 10 04 d8 |.u46u..U..6.8...|
204 0160: 21 01 9a b1 83 f7 e9 45 8b d2 56 c7 a3 1f 82 52 |!......E..V....R|
204 0160: 21 01 9a b1 83 f7 e9 45 8b d2 56 c7 a3 1f 82 52 |!......E..V....R|
205 0170: d7 8a 78 ed fc d5 76 f1 36 25 81 89 c7 ad ec 90 |..x...v.6%......|
205 0170: d7 8a 78 ed fc d5 76 f1 36 25 81 89 c7 ad ec 90 |..x...v.6%......|
206 0180: 54 47 75 2b 89 48 b1 b2 62 c9 89 c9 19 a9 56 45 |TGu+.H..b.....VE|
206 0180: 54 47 75 2b 89 48 b1 b2 62 c9 89 c9 19 a9 56 45 |TGu+.H..b.....VE|
207 0190: a9 65 ba 49 45 89 79 c9 19 ba 60 01 a0 14 23 58 |.e.IE.y...`...#X|
207 0190: a9 65 ba 49 45 89 79 c9 19 ba 60 01 a0 14 23 58 |.e.IE.y...`...#X|
208 01a0: 81 35 c8 7d 40 cc 04 e2 a4 a4 a6 25 96 e6 94 60 |.5.}@......%...`|
208 01a0: 81 35 c8 7d 40 cc 04 e2 a4 a4 a6 25 96 e6 94 60 |.5.}@......%...`|
209 01b0: 33 17 5f 54 00 00 d3 1b 0d 4c |3._T.....L|
209 01b0: 33 17 5f 54 00 00 d3 1b 0d 4c |3._T.....L|
210
210
211 $ echo "http://localhost:$HGPORT1/full.hg" > server/.hg/clonebundles.manifest
211 $ echo "http://localhost:$HGPORT1/full.hg" > server/.hg/clonebundles.manifest
212 $ hg clone -U http://localhost:$HGPORT full-bundle
212 $ hg clone -U http://localhost:$HGPORT full-bundle
213 applying clone bundle from http://localhost:$HGPORT1/full.hg
213 applying clone bundle from http://localhost:$HGPORT1/full.hg
214 adding changesets
214 adding changesets
215 adding manifests
215 adding manifests
216 adding file changes
216 adding file changes
217 added 2 changesets with 2 changes to 2 files
217 added 2 changesets with 2 changes to 2 files
218 finished applying clone bundle
218 finished applying clone bundle
219 searching for changes
219 searching for changes
220 no changes found
220 no changes found
221 2 local changesets published
221 2 local changesets published
222
222
223 Feature works over SSH
223 Feature works over SSH
224
224
225 $ hg clone -U ssh://user@dummy/server ssh-full-clone
225 $ hg clone -U ssh://user@dummy/server ssh-full-clone
226 applying clone bundle from http://localhost:$HGPORT1/full.hg
226 applying clone bundle from http://localhost:$HGPORT1/full.hg
227 adding changesets
227 adding changesets
228 adding manifests
228 adding manifests
229 adding file changes
229 adding file changes
230 added 2 changesets with 2 changes to 2 files
230 added 2 changesets with 2 changes to 2 files
231 finished applying clone bundle
231 finished applying clone bundle
232 searching for changes
232 searching for changes
233 no changes found
233 no changes found
234 2 local changesets published
234 2 local changesets published
235
235
236 Inline bundle
237 =============
238
239 Checking bundle retrieved over the wireprotocol
240
236 Feature works over SSH with inline bundle
241 Feature works over SSH with inline bundle
242 -----------------------------------------
243
237 $ mkdir server/.hg/bundle-cache/
244 $ mkdir server/.hg/bundle-cache/
238 $ cp full.hg server/.hg/bundle-cache/
245 $ cp full.hg server/.hg/bundle-cache/
239 $ echo "peer-bundle-cache://full.hg" > server/.hg/clonebundles.manifest
246 $ echo "peer-bundle-cache://full.hg" > server/.hg/clonebundles.manifest
240 $ hg clone -U ssh://user@dummy/server ssh-inline-clone
247 $ hg clone -U ssh://user@dummy/server ssh-inline-clone
241 applying clone bundle from peer-bundle-cache://full.hg
248 applying clone bundle from peer-bundle-cache://full.hg
242 adding changesets
249 adding changesets
243 adding manifests
250 adding manifests
244 adding file changes
251 adding file changes
245 added 2 changesets with 2 changes to 2 files
252 added 2 changesets with 2 changes to 2 files
246 finished applying clone bundle
253 finished applying clone bundle
247 searching for changes
254 searching for changes
248 no changes found
255 no changes found
249 2 local changesets published
256 2 local changesets published
250
257
258 HTTP Supports
259 -------------
260
261 Or lack of it actually
262
263 Feature does not use inline bundle over HTTP(S) because there is no protocaps support
264 (so no way for the client to announce that it supports inline clonebundles)
265 $ hg clone -U http://localhost:$HGPORT http-inline-clone
266 requesting all changes
267 adding changesets
268 adding manifests
269 adding file changes
270 added 2 changesets with 2 changes to 2 files
271 new changesets 53245c60e682:aaff8d2ffbbf
272
273 Pre-transmit Hook
274 -----------------
275
251 Hooks work with inline bundle
276 Hooks work with inline bundle
277
252 $ cp server/.hg/hgrc server/.hg/hgrc-beforeinlinehooks
278 $ cp server/.hg/hgrc server/.hg/hgrc-beforeinlinehooks
253 $ echo "[hooks]" >> server/.hg/hgrc
279 $ echo "[hooks]" >> server/.hg/hgrc
254 $ echo "pretransmit-inline-clone-bundle=echo foo" >> server/.hg/hgrc
280 $ echo "pretransmit-inline-clone-bundle=echo foo" >> server/.hg/hgrc
255 $ hg clone -U ssh://user@dummy/server ssh-inline-clone-hook
281 $ hg clone -U ssh://user@dummy/server ssh-inline-clone-hook
256 applying clone bundle from peer-bundle-cache://full.hg
282 applying clone bundle from peer-bundle-cache://full.hg
257 remote: foo
283 remote: foo
258 adding changesets
284 adding changesets
259 adding manifests
285 adding manifests
260 adding file changes
286 adding file changes
261 added 2 changesets with 2 changes to 2 files
287 added 2 changesets with 2 changes to 2 files
262 finished applying clone bundle
288 finished applying clone bundle
263 searching for changes
289 searching for changes
264 no changes found
290 no changes found
265 2 local changesets published
291 2 local changesets published
266
292
267 Hooks can make an inline bundle fail
293 Hooks can make an inline bundle fail
294
268 $ cp server/.hg/hgrc-beforeinlinehooks server/.hg/hgrc
295 $ cp server/.hg/hgrc-beforeinlinehooks server/.hg/hgrc
269 $ echo "[hooks]" >> server/.hg/hgrc
296 $ echo "[hooks]" >> server/.hg/hgrc
270 $ echo "pretransmit-inline-clone-bundle=echo bar && false" >> server/.hg/hgrc
297 $ echo "pretransmit-inline-clone-bundle=echo bar && false" >> server/.hg/hgrc
271 $ hg clone -U ssh://user@dummy/server ssh-inline-clone-hook-fail
298 $ hg clone -U ssh://user@dummy/server ssh-inline-clone-hook-fail
272 applying clone bundle from peer-bundle-cache://full.hg
299 applying clone bundle from peer-bundle-cache://full.hg
273 remote: bar
300 remote: bar
274 remote: abort: pretransmit-inline-clone-bundle hook exited with status 1
301 remote: abort: pretransmit-inline-clone-bundle hook exited with status 1
275 abort: stream ended unexpectedly (got 0 bytes, expected 1)
302 abort: stream ended unexpectedly (got 0 bytes, expected 1)
276 [255]
303 [255]
277 $ cp server/.hg/hgrc-beforeinlinehooks server/.hg/hgrc
304 $ cp server/.hg/hgrc-beforeinlinehooks server/.hg/hgrc
278
305
279 Feature does not use inline bundle over HTTP(S) because there is no protocaps support
306 Other tests
280 (so no way for the client to announce that it supports inline clonebundles)
307 ===========
281 $ hg clone -U http://localhost:$HGPORT http-inline-clone
282 requesting all changes
283 adding changesets
284 adding manifests
285 adding file changes
286 added 2 changesets with 2 changes to 2 files
287 new changesets 53245c60e682:aaff8d2ffbbf
288
308
289 Entry with unknown BUNDLESPEC is filtered and not used
309 Entry with unknown BUNDLESPEC is filtered and not used
290
310
291 $ cat > server/.hg/clonebundles.manifest << EOF
311 $ cat > server/.hg/clonebundles.manifest << EOF
292 > http://bad.entry1 BUNDLESPEC=UNKNOWN
312 > http://bad.entry1 BUNDLESPEC=UNKNOWN
293 > http://bad.entry2 BUNDLESPEC=xz-v1
313 > http://bad.entry2 BUNDLESPEC=xz-v1
294 > http://bad.entry3 BUNDLESPEC=none-v100
314 > http://bad.entry3 BUNDLESPEC=none-v100
295 > http://localhost:$HGPORT1/full.hg BUNDLESPEC=gzip-v2
315 > http://localhost:$HGPORT1/full.hg BUNDLESPEC=gzip-v2
296 > EOF
316 > EOF
297
317
298 $ hg clone -U http://localhost:$HGPORT filter-unknown-type
318 $ hg clone -U http://localhost:$HGPORT filter-unknown-type
299 applying clone bundle from http://localhost:$HGPORT1/full.hg
319 applying clone bundle from http://localhost:$HGPORT1/full.hg
300 adding changesets
320 adding changesets
301 adding manifests
321 adding manifests
302 adding file changes
322 adding file changes
303 added 2 changesets with 2 changes to 2 files
323 added 2 changesets with 2 changes to 2 files
304 finished applying clone bundle
324 finished applying clone bundle
305 searching for changes
325 searching for changes
306 no changes found
326 no changes found
307 2 local changesets published
327 2 local changesets published
308
328
309 Automatic fallback when all entries are filtered
329 Automatic fallback when all entries are filtered
310
330
311 $ cat > server/.hg/clonebundles.manifest << EOF
331 $ cat > server/.hg/clonebundles.manifest << EOF
312 > http://bad.entry BUNDLESPEC=UNKNOWN
332 > http://bad.entry BUNDLESPEC=UNKNOWN
313 > EOF
333 > EOF
314
334
315 $ hg clone -U http://localhost:$HGPORT filter-all
335 $ hg clone -U http://localhost:$HGPORT filter-all
316 no compatible clone bundles available on server; falling back to regular clone
336 no compatible clone bundles available on server; falling back to regular clone
317 (you may want to report this to the server operator)
337 (you may want to report this to the server operator)
318 requesting all changes
338 requesting all changes
319 adding changesets
339 adding changesets
320 adding manifests
340 adding manifests
321 adding file changes
341 adding file changes
322 added 2 changesets with 2 changes to 2 files
342 added 2 changesets with 2 changes to 2 files
323 new changesets 53245c60e682:aaff8d2ffbbf
343 new changesets 53245c60e682:aaff8d2ffbbf
324
344
325 We require a Python version that supports SNI. Therefore, URLs requiring SNI
345 We require a Python version that supports SNI. Therefore, URLs requiring SNI
326 are not filtered.
346 are not filtered.
327
347
328 $ cp full.hg sni.hg
348 $ cp full.hg sni.hg
329 $ cat > server/.hg/clonebundles.manifest << EOF
349 $ cat > server/.hg/clonebundles.manifest << EOF
330 > http://localhost:$HGPORT1/sni.hg REQUIRESNI=true
350 > http://localhost:$HGPORT1/sni.hg REQUIRESNI=true
331 > http://localhost:$HGPORT1/full.hg
351 > http://localhost:$HGPORT1/full.hg
332 > EOF
352 > EOF
333
353
334 $ hg clone -U http://localhost:$HGPORT sni-supported
354 $ hg clone -U http://localhost:$HGPORT sni-supported
335 applying clone bundle from http://localhost:$HGPORT1/sni.hg
355 applying clone bundle from http://localhost:$HGPORT1/sni.hg
336 adding changesets
356 adding changesets
337 adding manifests
357 adding manifests
338 adding file changes
358 adding file changes
339 added 2 changesets with 2 changes to 2 files
359 added 2 changesets with 2 changes to 2 files
340 finished applying clone bundle
360 finished applying clone bundle
341 searching for changes
361 searching for changes
342 no changes found
362 no changes found
343 2 local changesets published
363 2 local changesets published
344
364
345 Stream clone bundles are supported
365 Stream clone bundles are supported
346
366
347 $ hg -R server debugcreatestreamclonebundle packed.hg
367 $ hg -R server debugcreatestreamclonebundle packed.hg
348 writing 613 bytes for 4 files
368 writing 613 bytes for 4 files
349 bundle requirements: generaldelta, revlogv1, sparserevlog (no-rust no-zstd !)
369 bundle requirements: generaldelta, revlogv1, sparserevlog (no-rust no-zstd !)
350 bundle requirements: generaldelta, revlog-compression-zstd, revlogv1, sparserevlog (no-rust zstd !)
370 bundle requirements: generaldelta, revlog-compression-zstd, revlogv1, sparserevlog (no-rust zstd !)
351 bundle requirements: generaldelta, revlog-compression-zstd, revlogv1, sparserevlog (rust !)
371 bundle requirements: generaldelta, revlog-compression-zstd, revlogv1, sparserevlog (rust !)
352
372
353 No bundle spec should work
373 No bundle spec should work
354
374
355 $ cat > server/.hg/clonebundles.manifest << EOF
375 $ cat > server/.hg/clonebundles.manifest << EOF
356 > http://localhost:$HGPORT1/packed.hg
376 > http://localhost:$HGPORT1/packed.hg
357 > EOF
377 > EOF
358
378
359 $ hg clone -U http://localhost:$HGPORT stream-clone-no-spec
379 $ hg clone -U http://localhost:$HGPORT stream-clone-no-spec
360 applying clone bundle from http://localhost:$HGPORT1/packed.hg
380 applying clone bundle from http://localhost:$HGPORT1/packed.hg
361 4 files to transfer, 613 bytes of data
381 4 files to transfer, 613 bytes of data
362 transferred 613 bytes in *.* seconds (*) (glob)
382 transferred 613 bytes in *.* seconds (*) (glob)
363 finished applying clone bundle
383 finished applying clone bundle
364 searching for changes
384 searching for changes
365 no changes found
385 no changes found
366
386
367 Bundle spec without parameters should work
387 Bundle spec without parameters should work
368
388
369 $ cat > server/.hg/clonebundles.manifest << EOF
389 $ cat > server/.hg/clonebundles.manifest << EOF
370 > http://localhost:$HGPORT1/packed.hg BUNDLESPEC=none-packed1
390 > http://localhost:$HGPORT1/packed.hg BUNDLESPEC=none-packed1
371 > EOF
391 > EOF
372
392
373 $ hg clone -U http://localhost:$HGPORT stream-clone-vanilla-spec
393 $ hg clone -U http://localhost:$HGPORT stream-clone-vanilla-spec
374 applying clone bundle from http://localhost:$HGPORT1/packed.hg
394 applying clone bundle from http://localhost:$HGPORT1/packed.hg
375 4 files to transfer, 613 bytes of data
395 4 files to transfer, 613 bytes of data
376 transferred 613 bytes in *.* seconds (*) (glob)
396 transferred 613 bytes in *.* seconds (*) (glob)
377 finished applying clone bundle
397 finished applying clone bundle
378 searching for changes
398 searching for changes
379 no changes found
399 no changes found
380
400
381 Bundle spec with format requirements should work
401 Bundle spec with format requirements should work
382
402
383 $ cat > server/.hg/clonebundles.manifest << EOF
403 $ cat > server/.hg/clonebundles.manifest << EOF
384 > http://localhost:$HGPORT1/packed.hg BUNDLESPEC=none-packed1;requirements%3Drevlogv1
404 > http://localhost:$HGPORT1/packed.hg BUNDLESPEC=none-packed1;requirements%3Drevlogv1
385 > EOF
405 > EOF
386
406
387 $ hg clone -U http://localhost:$HGPORT stream-clone-supported-requirements
407 $ hg clone -U http://localhost:$HGPORT stream-clone-supported-requirements
388 applying clone bundle from http://localhost:$HGPORT1/packed.hg
408 applying clone bundle from http://localhost:$HGPORT1/packed.hg
389 4 files to transfer, 613 bytes of data
409 4 files to transfer, 613 bytes of data
390 transferred 613 bytes in *.* seconds (*) (glob)
410 transferred 613 bytes in *.* seconds (*) (glob)
391 finished applying clone bundle
411 finished applying clone bundle
392 searching for changes
412 searching for changes
393 no changes found
413 no changes found
394
414
395 Stream bundle spec with unknown requirements should be filtered out
415 Stream bundle spec with unknown requirements should be filtered out
396
416
397 $ cat > server/.hg/clonebundles.manifest << EOF
417 $ cat > server/.hg/clonebundles.manifest << EOF
398 > http://localhost:$HGPORT1/packed.hg BUNDLESPEC=none-packed1;requirements%3Drevlogv42
418 > http://localhost:$HGPORT1/packed.hg BUNDLESPEC=none-packed1;requirements%3Drevlogv42
399 > EOF
419 > EOF
400
420
401 $ hg clone -U http://localhost:$HGPORT stream-clone-unsupported-requirements
421 $ hg clone -U http://localhost:$HGPORT stream-clone-unsupported-requirements
402 no compatible clone bundles available on server; falling back to regular clone
422 no compatible clone bundles available on server; falling back to regular clone
403 (you may want to report this to the server operator)
423 (you may want to report this to the server operator)
404 requesting all changes
424 requesting all changes
405 adding changesets
425 adding changesets
406 adding manifests
426 adding manifests
407 adding file changes
427 adding file changes
408 added 2 changesets with 2 changes to 2 files
428 added 2 changesets with 2 changes to 2 files
409 new changesets 53245c60e682:aaff8d2ffbbf
429 new changesets 53245c60e682:aaff8d2ffbbf
410
430
411 Set up manifest for testing preferences
431 Set up manifest for testing preferences
412 (Remember, the TYPE does not have to match reality - the URL is
432 (Remember, the TYPE does not have to match reality - the URL is
413 important)
433 important)
414
434
415 $ cp full.hg gz-a.hg
435 $ cp full.hg gz-a.hg
416 $ cp full.hg gz-b.hg
436 $ cp full.hg gz-b.hg
417 $ cp full.hg bz2-a.hg
437 $ cp full.hg bz2-a.hg
418 $ cp full.hg bz2-b.hg
438 $ cp full.hg bz2-b.hg
419 $ cat > server/.hg/clonebundles.manifest << EOF
439 $ cat > server/.hg/clonebundles.manifest << EOF
420 > http://localhost:$HGPORT1/gz-a.hg BUNDLESPEC=gzip-v2 extra=a
440 > http://localhost:$HGPORT1/gz-a.hg BUNDLESPEC=gzip-v2 extra=a
421 > http://localhost:$HGPORT1/bz2-a.hg BUNDLESPEC=bzip2-v2 extra=a
441 > http://localhost:$HGPORT1/bz2-a.hg BUNDLESPEC=bzip2-v2 extra=a
422 > http://localhost:$HGPORT1/gz-b.hg BUNDLESPEC=gzip-v2 extra=b
442 > http://localhost:$HGPORT1/gz-b.hg BUNDLESPEC=gzip-v2 extra=b
423 > http://localhost:$HGPORT1/bz2-b.hg BUNDLESPEC=bzip2-v2 extra=b
443 > http://localhost:$HGPORT1/bz2-b.hg BUNDLESPEC=bzip2-v2 extra=b
424 > EOF
444 > EOF
425
445
426 Preferring an undefined attribute will take first entry
446 Preferring an undefined attribute will take first entry
427
447
428 $ hg --config ui.clonebundleprefers=foo=bar clone -U http://localhost:$HGPORT prefer-foo
448 $ hg --config ui.clonebundleprefers=foo=bar clone -U http://localhost:$HGPORT prefer-foo
429 applying clone bundle from http://localhost:$HGPORT1/gz-a.hg
449 applying clone bundle from http://localhost:$HGPORT1/gz-a.hg
430 adding changesets
450 adding changesets
431 adding manifests
451 adding manifests
432 adding file changes
452 adding file changes
433 added 2 changesets with 2 changes to 2 files
453 added 2 changesets with 2 changes to 2 files
434 finished applying clone bundle
454 finished applying clone bundle
435 searching for changes
455 searching for changes
436 no changes found
456 no changes found
437 2 local changesets published
457 2 local changesets published
438
458
439 Preferring bz2 type will download first entry of that type
459 Preferring bz2 type will download first entry of that type
440
460
441 $ hg --config ui.clonebundleprefers=COMPRESSION=bzip2 clone -U http://localhost:$HGPORT prefer-bz
461 $ hg --config ui.clonebundleprefers=COMPRESSION=bzip2 clone -U http://localhost:$HGPORT prefer-bz
442 applying clone bundle from http://localhost:$HGPORT1/bz2-a.hg
462 applying clone bundle from http://localhost:$HGPORT1/bz2-a.hg
443 adding changesets
463 adding changesets
444 adding manifests
464 adding manifests
445 adding file changes
465 adding file changes
446 added 2 changesets with 2 changes to 2 files
466 added 2 changesets with 2 changes to 2 files
447 finished applying clone bundle
467 finished applying clone bundle
448 searching for changes
468 searching for changes
449 no changes found
469 no changes found
450 2 local changesets published
470 2 local changesets published
451
471
452 Preferring multiple values of an option works
472 Preferring multiple values of an option works
453
473
454 $ hg --config ui.clonebundleprefers=COMPRESSION=unknown,COMPRESSION=bzip2 clone -U http://localhost:$HGPORT prefer-multiple-bz
474 $ hg --config ui.clonebundleprefers=COMPRESSION=unknown,COMPRESSION=bzip2 clone -U http://localhost:$HGPORT prefer-multiple-bz
455 applying clone bundle from http://localhost:$HGPORT1/bz2-a.hg
475 applying clone bundle from http://localhost:$HGPORT1/bz2-a.hg
456 adding changesets
476 adding changesets
457 adding manifests
477 adding manifests
458 adding file changes
478 adding file changes
459 added 2 changesets with 2 changes to 2 files
479 added 2 changesets with 2 changes to 2 files
460 finished applying clone bundle
480 finished applying clone bundle
461 searching for changes
481 searching for changes
462 no changes found
482 no changes found
463 2 local changesets published
483 2 local changesets published
464
484
465 Sorting multiple values should get us back to original first entry
485 Sorting multiple values should get us back to original first entry
466
486
467 $ hg --config ui.clonebundleprefers=BUNDLESPEC=unknown,BUNDLESPEC=gzip-v2,BUNDLESPEC=bzip2-v2 clone -U http://localhost:$HGPORT prefer-multiple-gz
487 $ hg --config ui.clonebundleprefers=BUNDLESPEC=unknown,BUNDLESPEC=gzip-v2,BUNDLESPEC=bzip2-v2 clone -U http://localhost:$HGPORT prefer-multiple-gz
468 applying clone bundle from http://localhost:$HGPORT1/gz-a.hg
488 applying clone bundle from http://localhost:$HGPORT1/gz-a.hg
469 adding changesets
489 adding changesets
470 adding manifests
490 adding manifests
471 adding file changes
491 adding file changes
472 added 2 changesets with 2 changes to 2 files
492 added 2 changesets with 2 changes to 2 files
473 finished applying clone bundle
493 finished applying clone bundle
474 searching for changes
494 searching for changes
475 no changes found
495 no changes found
476 2 local changesets published
496 2 local changesets published
477
497
478 Preferring multiple attributes has correct order
498 Preferring multiple attributes has correct order
479
499
480 $ hg --config ui.clonebundleprefers=extra=b,BUNDLESPEC=bzip2-v2 clone -U http://localhost:$HGPORT prefer-separate-attributes
500 $ hg --config ui.clonebundleprefers=extra=b,BUNDLESPEC=bzip2-v2 clone -U http://localhost:$HGPORT prefer-separate-attributes
481 applying clone bundle from http://localhost:$HGPORT1/bz2-b.hg
501 applying clone bundle from http://localhost:$HGPORT1/bz2-b.hg
482 adding changesets
502 adding changesets
483 adding manifests
503 adding manifests
484 adding file changes
504 adding file changes
485 added 2 changesets with 2 changes to 2 files
505 added 2 changesets with 2 changes to 2 files
486 finished applying clone bundle
506 finished applying clone bundle
487 searching for changes
507 searching for changes
488 no changes found
508 no changes found
489 2 local changesets published
509 2 local changesets published
490
510
491 Test where attribute is missing from some entries
511 Test where attribute is missing from some entries
492
512
493 $ cat > server/.hg/clonebundles.manifest << EOF
513 $ cat > server/.hg/clonebundles.manifest << EOF
494 > http://localhost:$HGPORT1/gz-a.hg BUNDLESPEC=gzip-v2
514 > http://localhost:$HGPORT1/gz-a.hg BUNDLESPEC=gzip-v2
495 > http://localhost:$HGPORT1/bz2-a.hg BUNDLESPEC=bzip2-v2
515 > http://localhost:$HGPORT1/bz2-a.hg BUNDLESPEC=bzip2-v2
496 > http://localhost:$HGPORT1/gz-b.hg BUNDLESPEC=gzip-v2 extra=b
516 > http://localhost:$HGPORT1/gz-b.hg BUNDLESPEC=gzip-v2 extra=b
497 > http://localhost:$HGPORT1/bz2-b.hg BUNDLESPEC=bzip2-v2 extra=b
517 > http://localhost:$HGPORT1/bz2-b.hg BUNDLESPEC=bzip2-v2 extra=b
498 > EOF
518 > EOF
499
519
500 $ hg --config ui.clonebundleprefers=extra=b clone -U http://localhost:$HGPORT prefer-partially-defined-attribute
520 $ hg --config ui.clonebundleprefers=extra=b clone -U http://localhost:$HGPORT prefer-partially-defined-attribute
501 applying clone bundle from http://localhost:$HGPORT1/gz-b.hg
521 applying clone bundle from http://localhost:$HGPORT1/gz-b.hg
502 adding changesets
522 adding changesets
503 adding manifests
523 adding manifests
504 adding file changes
524 adding file changes
505 added 2 changesets with 2 changes to 2 files
525 added 2 changesets with 2 changes to 2 files
506 finished applying clone bundle
526 finished applying clone bundle
507 searching for changes
527 searching for changes
508 no changes found
528 no changes found
509 2 local changesets published
529 2 local changesets published
510
530
511 Test a bad attribute list
531 Test a bad attribute list
512
532
513 $ hg --config ui.clonebundleprefers=bad clone -U http://localhost:$HGPORT bad-input
533 $ hg --config ui.clonebundleprefers=bad clone -U http://localhost:$HGPORT bad-input
514 abort: invalid ui.clonebundleprefers item: bad
534 abort: invalid ui.clonebundleprefers item: bad
515 (each comma separated item should be key=value pairs)
535 (each comma separated item should be key=value pairs)
516 [255]
536 [255]
517 $ hg --config ui.clonebundleprefers=key=val,bad,key2=val2 clone \
537 $ hg --config ui.clonebundleprefers=key=val,bad,key2=val2 clone \
518 > -U http://localhost:$HGPORT bad-input
538 > -U http://localhost:$HGPORT bad-input
519 abort: invalid ui.clonebundleprefers item: bad
539 abort: invalid ui.clonebundleprefers item: bad
520 (each comma separated item should be key=value pairs)
540 (each comma separated item should be key=value pairs)
521 [255]
541 [255]
522
542
523
543
524 Test interaction between clone bundles and --stream
544 Test interaction between clone bundles and --stream
525
545
526 A manifest with just a gzip bundle
546 A manifest with just a gzip bundle
527
547
528 $ cat > server/.hg/clonebundles.manifest << EOF
548 $ cat > server/.hg/clonebundles.manifest << EOF
529 > http://localhost:$HGPORT1/gz-a.hg BUNDLESPEC=gzip-v2
549 > http://localhost:$HGPORT1/gz-a.hg BUNDLESPEC=gzip-v2
530 > EOF
550 > EOF
531
551
532 $ hg clone -U --stream http://localhost:$HGPORT uncompressed-gzip
552 $ hg clone -U --stream http://localhost:$HGPORT uncompressed-gzip
533 no compatible clone bundles available on server; falling back to regular clone
553 no compatible clone bundles available on server; falling back to regular clone
534 (you may want to report this to the server operator)
554 (you may want to report this to the server operator)
535 streaming all changes
555 streaming all changes
536 9 files to transfer, 816 bytes of data
556 9 files to transfer, 816 bytes of data
537 transferred 816 bytes in * seconds (*) (glob)
557 transferred 816 bytes in * seconds (*) (glob)
538
558
539 A manifest with a stream clone but no BUNDLESPEC
559 A manifest with a stream clone but no BUNDLESPEC
540
560
541 $ cat > server/.hg/clonebundles.manifest << EOF
561 $ cat > server/.hg/clonebundles.manifest << EOF
542 > http://localhost:$HGPORT1/packed.hg
562 > http://localhost:$HGPORT1/packed.hg
543 > EOF
563 > EOF
544
564
545 $ hg clone -U --stream http://localhost:$HGPORT uncompressed-no-bundlespec
565 $ hg clone -U --stream http://localhost:$HGPORT uncompressed-no-bundlespec
546 no compatible clone bundles available on server; falling back to regular clone
566 no compatible clone bundles available on server; falling back to regular clone
547 (you may want to report this to the server operator)
567 (you may want to report this to the server operator)
548 streaming all changes
568 streaming all changes
549 9 files to transfer, 816 bytes of data
569 9 files to transfer, 816 bytes of data
550 transferred 816 bytes in * seconds (*) (glob)
570 transferred 816 bytes in * seconds (*) (glob)
551
571
552 A manifest with a gzip bundle and a stream clone
572 A manifest with a gzip bundle and a stream clone
553
573
554 $ cat > server/.hg/clonebundles.manifest << EOF
574 $ cat > server/.hg/clonebundles.manifest << EOF
555 > http://localhost:$HGPORT1/gz-a.hg BUNDLESPEC=gzip-v2
575 > http://localhost:$HGPORT1/gz-a.hg BUNDLESPEC=gzip-v2
556 > http://localhost:$HGPORT1/packed.hg BUNDLESPEC=none-packed1
576 > http://localhost:$HGPORT1/packed.hg BUNDLESPEC=none-packed1
557 > EOF
577 > EOF
558
578
559 $ hg clone -U --stream http://localhost:$HGPORT uncompressed-gzip-packed
579 $ hg clone -U --stream http://localhost:$HGPORT uncompressed-gzip-packed
560 applying clone bundle from http://localhost:$HGPORT1/packed.hg
580 applying clone bundle from http://localhost:$HGPORT1/packed.hg
561 4 files to transfer, 613 bytes of data
581 4 files to transfer, 613 bytes of data
562 transferred 613 bytes in * seconds (*) (glob)
582 transferred 613 bytes in * seconds (*) (glob)
563 finished applying clone bundle
583 finished applying clone bundle
564 searching for changes
584 searching for changes
565 no changes found
585 no changes found
566
586
567 A manifest with a gzip bundle and stream clone with supported requirements
587 A manifest with a gzip bundle and stream clone with supported requirements
568
588
569 $ cat > server/.hg/clonebundles.manifest << EOF
589 $ cat > server/.hg/clonebundles.manifest << EOF
570 > http://localhost:$HGPORT1/gz-a.hg BUNDLESPEC=gzip-v2
590 > http://localhost:$HGPORT1/gz-a.hg BUNDLESPEC=gzip-v2
571 > http://localhost:$HGPORT1/packed.hg BUNDLESPEC=none-packed1;requirements%3Drevlogv1
591 > http://localhost:$HGPORT1/packed.hg BUNDLESPEC=none-packed1;requirements%3Drevlogv1
572 > EOF
592 > EOF
573
593
574 $ hg clone -U --stream http://localhost:$HGPORT uncompressed-gzip-packed-requirements
594 $ hg clone -U --stream http://localhost:$HGPORT uncompressed-gzip-packed-requirements
575 applying clone bundle from http://localhost:$HGPORT1/packed.hg
595 applying clone bundle from http://localhost:$HGPORT1/packed.hg
576 4 files to transfer, 613 bytes of data
596 4 files to transfer, 613 bytes of data
577 transferred 613 bytes in * seconds (*) (glob)
597 transferred 613 bytes in * seconds (*) (glob)
578 finished applying clone bundle
598 finished applying clone bundle
579 searching for changes
599 searching for changes
580 no changes found
600 no changes found
581
601
582 A manifest with a gzip bundle and a stream clone with unsupported requirements
602 A manifest with a gzip bundle and a stream clone with unsupported requirements
583
603
584 $ cat > server/.hg/clonebundles.manifest << EOF
604 $ cat > server/.hg/clonebundles.manifest << EOF
585 > http://localhost:$HGPORT1/gz-a.hg BUNDLESPEC=gzip-v2
605 > http://localhost:$HGPORT1/gz-a.hg BUNDLESPEC=gzip-v2
586 > http://localhost:$HGPORT1/packed.hg BUNDLESPEC=none-packed1;requirements%3Drevlogv42
606 > http://localhost:$HGPORT1/packed.hg BUNDLESPEC=none-packed1;requirements%3Drevlogv42
587 > EOF
607 > EOF
588
608
589 $ hg clone -U --stream http://localhost:$HGPORT uncompressed-gzip-packed-unsupported-requirements
609 $ hg clone -U --stream http://localhost:$HGPORT uncompressed-gzip-packed-unsupported-requirements
590 no compatible clone bundles available on server; falling back to regular clone
610 no compatible clone bundles available on server; falling back to regular clone
591 (you may want to report this to the server operator)
611 (you may want to report this to the server operator)
592 streaming all changes
612 streaming all changes
593 9 files to transfer, 816 bytes of data
613 9 files to transfer, 816 bytes of data
594 transferred 816 bytes in * seconds (*) (glob)
614 transferred 816 bytes in * seconds (*) (glob)
595
615
596 Test clone bundle retrieved through bundle2
616 Test clone bundle retrieved through bundle2
597
617
598 $ cat << EOF >> $HGRCPATH
618 $ cat << EOF >> $HGRCPATH
599 > [extensions]
619 > [extensions]
600 > largefiles=
620 > largefiles=
601 > EOF
621 > EOF
602 $ killdaemons.py
622 $ killdaemons.py
603 $ hg -R server serve -d -p $HGPORT --pid-file hg.pid --accesslog access.log
623 $ hg -R server serve -d -p $HGPORT --pid-file hg.pid --accesslog access.log
604 $ cat hg.pid >> $DAEMON_PIDS
624 $ cat hg.pid >> $DAEMON_PIDS
605
625
606 $ hg -R server debuglfput gz-a.hg
626 $ hg -R server debuglfput gz-a.hg
607 1f74b3d08286b9b3a16fb3fa185dd29219cbc6ae
627 1f74b3d08286b9b3a16fb3fa185dd29219cbc6ae
608
628
609 $ cat > server/.hg/clonebundles.manifest << EOF
629 $ cat > server/.hg/clonebundles.manifest << EOF
610 > largefile://1f74b3d08286b9b3a16fb3fa185dd29219cbc6ae BUNDLESPEC=gzip-v2
630 > largefile://1f74b3d08286b9b3a16fb3fa185dd29219cbc6ae BUNDLESPEC=gzip-v2
611 > EOF
631 > EOF
612
632
613 $ hg clone -U http://localhost:$HGPORT largefile-provided --traceback
633 $ hg clone -U http://localhost:$HGPORT largefile-provided --traceback
614 applying clone bundle from largefile://1f74b3d08286b9b3a16fb3fa185dd29219cbc6ae
634 applying clone bundle from largefile://1f74b3d08286b9b3a16fb3fa185dd29219cbc6ae
615 adding changesets
635 adding changesets
616 adding manifests
636 adding manifests
617 adding file changes
637 adding file changes
618 added 2 changesets with 2 changes to 2 files
638 added 2 changesets with 2 changes to 2 files
619 finished applying clone bundle
639 finished applying clone bundle
620 searching for changes
640 searching for changes
621 no changes found
641 no changes found
622 2 local changesets published
642 2 local changesets published
623 $ killdaemons.py
643 $ killdaemons.py
624
644
625 A manifest with a gzip bundle requiring too much memory for a 16MB system and working
645 A manifest with a gzip bundle requiring too much memory for a 16MB system and working
626 on a 32MB system.
646 on a 32MB system.
627
647
628 $ "$PYTHON" $TESTDIR/dumbhttp.py -p $HGPORT1 --pid http.pid
648 $ "$PYTHON" $TESTDIR/dumbhttp.py -p $HGPORT1 --pid http.pid
629 $ cat http.pid >> $DAEMON_PIDS
649 $ cat http.pid >> $DAEMON_PIDS
630 $ hg -R server serve -d -p $HGPORT --pid-file hg.pid --accesslog access.log
650 $ hg -R server serve -d -p $HGPORT --pid-file hg.pid --accesslog access.log
631 $ cat hg.pid >> $DAEMON_PIDS
651 $ cat hg.pid >> $DAEMON_PIDS
632
652
633 $ cat > server/.hg/clonebundles.manifest << EOF
653 $ cat > server/.hg/clonebundles.manifest << EOF
634 > http://localhost:$HGPORT1/gz-a.hg BUNDLESPEC=gzip-v2 REQUIREDRAM=12MB
654 > http://localhost:$HGPORT1/gz-a.hg BUNDLESPEC=gzip-v2 REQUIREDRAM=12MB
635 > EOF
655 > EOF
636
656
637 $ hg clone -U --debug --config ui.available-memory=16MB http://localhost:$HGPORT gzip-too-large
657 $ hg clone -U --debug --config ui.available-memory=16MB http://localhost:$HGPORT gzip-too-large
638 using http://localhost:$HGPORT/
658 using http://localhost:$HGPORT/
639 sending capabilities command
659 sending capabilities command
640 sending clonebundles command
660 sending clonebundles command
641 filtering http://localhost:$HGPORT1/gz-a.hg as it needs more than 2/3 of system memory
661 filtering http://localhost:$HGPORT1/gz-a.hg as it needs more than 2/3 of system memory
642 no compatible clone bundles available on server; falling back to regular clone
662 no compatible clone bundles available on server; falling back to regular clone
643 (you may want to report this to the server operator)
663 (you may want to report this to the server operator)
644 query 1; heads
664 query 1; heads
645 sending batch command
665 sending batch command
646 requesting all changes
666 requesting all changes
647 sending getbundle command
667 sending getbundle command
648 bundle2-input-bundle: with-transaction
668 bundle2-input-bundle: with-transaction
649 bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
669 bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
650 adding changesets
670 adding changesets
651 add changeset 53245c60e682
671 add changeset 53245c60e682
652 add changeset aaff8d2ffbbf
672 add changeset aaff8d2ffbbf
653 adding manifests
673 adding manifests
654 adding file changes
674 adding file changes
655 adding bar revisions
675 adding bar revisions
656 adding foo revisions
676 adding foo revisions
657 bundle2-input-part: total payload size 936
677 bundle2-input-part: total payload size 936
658 bundle2-input-part: "listkeys" (params: 1 mandatory) supported
678 bundle2-input-part: "listkeys" (params: 1 mandatory) supported
659 bundle2-input-part: "phase-heads" supported
679 bundle2-input-part: "phase-heads" supported
660 bundle2-input-part: total payload size 24
680 bundle2-input-part: total payload size 24
661 bundle2-input-bundle: 3 parts total
681 bundle2-input-bundle: 3 parts total
662 checking for updated bookmarks
682 checking for updated bookmarks
663 updating the branch cache
683 updating the branch cache
664 added 2 changesets with 2 changes to 2 files
684 added 2 changesets with 2 changes to 2 files
665 new changesets 53245c60e682:aaff8d2ffbbf
685 new changesets 53245c60e682:aaff8d2ffbbf
666 calling hook changegroup.lfiles: hgext.largefiles.reposetup.checkrequireslfiles
686 calling hook changegroup.lfiles: hgext.largefiles.reposetup.checkrequireslfiles
667 updating the branch cache
687 updating the branch cache
668 (sent 4 HTTP requests and * bytes; received * bytes in responses) (glob)
688 (sent 4 HTTP requests and * bytes; received * bytes in responses) (glob)
669
689
670 $ hg clone -U --debug --config ui.available-memory=32MB http://localhost:$HGPORT gzip-too-large2
690 $ hg clone -U --debug --config ui.available-memory=32MB http://localhost:$HGPORT gzip-too-large2
671 using http://localhost:$HGPORT/
691 using http://localhost:$HGPORT/
672 sending capabilities command
692 sending capabilities command
673 sending clonebundles command
693 sending clonebundles command
674 applying clone bundle from http://localhost:$HGPORT1/gz-a.hg
694 applying clone bundle from http://localhost:$HGPORT1/gz-a.hg
675 bundle2-input-bundle: 1 params with-transaction
695 bundle2-input-bundle: 1 params with-transaction
676 bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
696 bundle2-input-part: "changegroup" (params: 1 mandatory 1 advisory) supported
677 adding changesets
697 adding changesets
678 add changeset 53245c60e682
698 add changeset 53245c60e682
679 add changeset aaff8d2ffbbf
699 add changeset aaff8d2ffbbf
680 adding manifests
700 adding manifests
681 adding file changes
701 adding file changes
682 adding bar revisions
702 adding bar revisions
683 adding foo revisions
703 adding foo revisions
684 bundle2-input-part: total payload size 920
704 bundle2-input-part: total payload size 920
685 bundle2-input-part: "cache:rev-branch-cache" (advisory) supported
705 bundle2-input-part: "cache:rev-branch-cache" (advisory) supported
686 bundle2-input-part: total payload size 59
706 bundle2-input-part: total payload size 59
687 bundle2-input-bundle: 2 parts total
707 bundle2-input-bundle: 2 parts total
688 updating the branch cache
708 updating the branch cache
689 added 2 changesets with 2 changes to 2 files
709 added 2 changesets with 2 changes to 2 files
690 finished applying clone bundle
710 finished applying clone bundle
691 query 1; heads
711 query 1; heads
692 sending batch command
712 sending batch command
693 searching for changes
713 searching for changes
694 all remote heads known locally
714 all remote heads known locally
695 no changes found
715 no changes found
696 sending getbundle command
716 sending getbundle command
697 bundle2-input-bundle: with-transaction
717 bundle2-input-bundle: with-transaction
698 bundle2-input-part: "listkeys" (params: 1 mandatory) supported
718 bundle2-input-part: "listkeys" (params: 1 mandatory) supported
699 bundle2-input-part: "phase-heads" supported
719 bundle2-input-part: "phase-heads" supported
700 bundle2-input-part: total payload size 24
720 bundle2-input-part: total payload size 24
701 bundle2-input-bundle: 2 parts total
721 bundle2-input-bundle: 2 parts total
702 checking for updated bookmarks
722 checking for updated bookmarks
703 2 local changesets published
723 2 local changesets published
704 calling hook changegroup.lfiles: hgext.largefiles.reposetup.checkrequireslfiles
724 calling hook changegroup.lfiles: hgext.largefiles.reposetup.checkrequireslfiles
705 updating the branch cache
725 updating the branch cache
706 (sent 4 HTTP requests and * bytes; received * bytes in responses) (glob)
726 (sent 4 HTTP requests and * bytes; received * bytes in responses) (glob)
707 $ killdaemons.py
727 $ killdaemons.py
708
728
709 Testing a clone bundles that involves revlog splitting (issue6811)
729 Testing a clone bundles that involves revlog splitting (issue6811)
710 ==================================================================
730 ==================================================================
711
731
712 $ cat >> $HGRCPATH << EOF
732 $ cat >> $HGRCPATH << EOF
713 > [format]
733 > [format]
714 > revlog-compression=none
734 > revlog-compression=none
715 > use-persistent-nodemap=no
735 > use-persistent-nodemap=no
716 > EOF
736 > EOF
717
737
718 $ hg init server-revlog-split/
738 $ hg init server-revlog-split/
719 $ cd server-revlog-split
739 $ cd server-revlog-split
720 $ cat >> .hg/hgrc << EOF
740 $ cat >> .hg/hgrc << EOF
721 > [extensions]
741 > [extensions]
722 > clonebundles =
742 > clonebundles =
723 > EOF
743 > EOF
724 $ echo foo > A
744 $ echo foo > A
725 $ hg add A
745 $ hg add A
726 $ hg commit -m 'initial commit'
746 $ hg commit -m 'initial commit'
727 IMPORTANT: the revlogs must not be split
747 IMPORTANT: the revlogs must not be split
728 $ ls -1 .hg/store/00manifest.*
748 $ ls -1 .hg/store/00manifest.*
729 .hg/store/00manifest.i
749 .hg/store/00manifest.i
730 $ ls -1 .hg/store/data/_a.*
750 $ ls -1 .hg/store/data/_a.*
731 .hg/store/data/_a.i
751 .hg/store/data/_a.i
732
752
733 do big enough update to split the revlogs
753 do big enough update to split the revlogs
734
754
735 $ $TESTDIR/seq.py 100000 > A
755 $ $TESTDIR/seq.py 100000 > A
736 $ mkdir foo
756 $ mkdir foo
737 $ cd foo
757 $ cd foo
738 $ touch `$TESTDIR/seq.py 10000`
758 $ touch `$TESTDIR/seq.py 10000`
739 $ cd ..
759 $ cd ..
740 $ hg add -q foo
760 $ hg add -q foo
741 $ hg commit -m 'split the manifest and one filelog'
761 $ hg commit -m 'split the manifest and one filelog'
742
762
743 IMPORTANT: now the revlogs must be split
763 IMPORTANT: now the revlogs must be split
744 $ ls -1 .hg/store/00manifest.*
764 $ ls -1 .hg/store/00manifest.*
745 .hg/store/00manifest.d
765 .hg/store/00manifest.d
746 .hg/store/00manifest.i
766 .hg/store/00manifest.i
747 $ ls -1 .hg/store/data/_a.*
767 $ ls -1 .hg/store/data/_a.*
748 .hg/store/data/_a.d
768 .hg/store/data/_a.d
749 .hg/store/data/_a.i
769 .hg/store/data/_a.i
750
770
751 Add an extra commit on top of that
771 Add an extra commit on top of that
752
772
753 $ echo foo >> A
773 $ echo foo >> A
754 $ hg commit -m 'one extra commit'
774 $ hg commit -m 'one extra commit'
755
775
756 $ cd ..
776 $ cd ..
757
777
758 Do a bundle that contains the split, but not the update
778 Do a bundle that contains the split, but not the update
759
779
760 $ hg bundle --exact --rev '::(default~1)' -R server-revlog-split/ --type gzip-v2 split-test.hg
780 $ hg bundle --exact --rev '::(default~1)' -R server-revlog-split/ --type gzip-v2 split-test.hg
761 2 changesets found
781 2 changesets found
762
782
763 $ cat > server-revlog-split/.hg/clonebundles.manifest << EOF
783 $ cat > server-revlog-split/.hg/clonebundles.manifest << EOF
764 > http://localhost:$HGPORT1/split-test.hg BUNDLESPEC=gzip-v2
784 > http://localhost:$HGPORT1/split-test.hg BUNDLESPEC=gzip-v2
765 > EOF
785 > EOF
766
786
767 start the necessary server
787 start the necessary server
768
788
769 $ "$PYTHON" $TESTDIR/dumbhttp.py -p $HGPORT1 --pid http.pid
789 $ "$PYTHON" $TESTDIR/dumbhttp.py -p $HGPORT1 --pid http.pid
770 $ cat http.pid >> $DAEMON_PIDS
790 $ cat http.pid >> $DAEMON_PIDS
771 $ hg -R server-revlog-split serve -d -p $HGPORT --pid-file hg.pid --accesslog access.log
791 $ hg -R server-revlog-split serve -d -p $HGPORT --pid-file hg.pid --accesslog access.log
772 $ cat hg.pid >> $DAEMON_PIDS
792 $ cat hg.pid >> $DAEMON_PIDS
773
793
774 Check that clone works fine
794 Check that clone works fine
775 ===========================
795 ===========================
776
796
777 Here, the initial clone will trigger a revlog split (which is a bit clowny it
797 Here, the initial clone will trigger a revlog split (which is a bit clowny it
778 itself, but whatever). The split revlogs will see additionnal data added to
798 itself, but whatever). The split revlogs will see additionnal data added to
779 them in the subsequent pull. This should not be a problem
799 them in the subsequent pull. This should not be a problem
780
800
781 $ hg clone http://localhost:$HGPORT revlog-split-in-the-bundle
801 $ hg clone http://localhost:$HGPORT revlog-split-in-the-bundle
782 applying clone bundle from http://localhost:$HGPORT1/split-test.hg
802 applying clone bundle from http://localhost:$HGPORT1/split-test.hg
783 adding changesets
803 adding changesets
784 adding manifests
804 adding manifests
785 adding file changes
805 adding file changes
786 added 2 changesets with 10002 changes to 10001 files
806 added 2 changesets with 10002 changes to 10001 files
787 finished applying clone bundle
807 finished applying clone bundle
788 searching for changes
808 searching for changes
789 adding changesets
809 adding changesets
790 adding manifests
810 adding manifests
791 adding file changes
811 adding file changes
792 added 1 changesets with 1 changes to 1 files
812 added 1 changesets with 1 changes to 1 files
793 new changesets e3879eaa1db7
813 new changesets e3879eaa1db7
794 2 local changesets published
814 2 local changesets published
795 updating to branch default
815 updating to branch default
796 10001 files updated, 0 files merged, 0 files removed, 0 files unresolved
816 10001 files updated, 0 files merged, 0 files removed, 0 files unresolved
797
817
798 check the results
818 check the results
799
819
800 $ cd revlog-split-in-the-bundle
820 $ cd revlog-split-in-the-bundle
801 $ f --size .hg/store/00manifest.*
821 $ f --size .hg/store/00manifest.*
802 .hg/store/00manifest.d: size=499037
822 .hg/store/00manifest.d: size=499037
803 .hg/store/00manifest.i: size=192
823 .hg/store/00manifest.i: size=192
804 $ f --size .hg/store/data/_a.*
824 $ f --size .hg/store/data/_a.*
805 .hg/store/data/_a.d: size=588917
825 .hg/store/data/_a.d: size=588917
806 .hg/store/data/_a.i: size=192
826 .hg/store/data/_a.i: size=192
807
827
808 manifest should work
828 manifest should work
809
829
810 $ hg files -r tip | wc -l
830 $ hg files -r tip | wc -l
811 \s*10001 (re)
831 \s*10001 (re)
812
832
813 file content should work
833 file content should work
814
834
815 $ hg cat -r tip A | wc -l
835 $ hg cat -r tip A | wc -l
816 \s*100001 (re)
836 \s*100001 (re)
817
837
818
838
General Comments 0
You need to be logged in to leave comments. Login now