##// END OF EJS Templates
copies-rust: use immutable "OrdMap" to store copies information...
marmoute -
r46962:0d99778a default
parent child Browse files
Show More
@@ -1,912 +1,967 b''
1 # This file is automatically @generated by Cargo.
1 # This file is automatically @generated by Cargo.
2 # It is not intended for manual editing.
2 # It is not intended for manual editing.
3 [[package]]
3 [[package]]
4 name = "adler"
4 name = "adler"
5 version = "0.2.3"
5 version = "0.2.3"
6 source = "registry+https://github.com/rust-lang/crates.io-index"
6 source = "registry+https://github.com/rust-lang/crates.io-index"
7
7
8 [[package]]
8 [[package]]
9 name = "aho-corasick"
9 name = "aho-corasick"
10 version = "0.7.13"
10 version = "0.7.13"
11 source = "registry+https://github.com/rust-lang/crates.io-index"
11 source = "registry+https://github.com/rust-lang/crates.io-index"
12 dependencies = [
12 dependencies = [
13 "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
13 "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
14 ]
14 ]
15
15
16 [[package]]
16 [[package]]
17 name = "ansi_term"
17 name = "ansi_term"
18 version = "0.11.0"
18 version = "0.11.0"
19 source = "registry+https://github.com/rust-lang/crates.io-index"
19 source = "registry+https://github.com/rust-lang/crates.io-index"
20 dependencies = [
20 dependencies = [
21 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
21 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
22 ]
22 ]
23
23
24 [[package]]
24 [[package]]
25 name = "atty"
25 name = "atty"
26 version = "0.2.14"
26 version = "0.2.14"
27 source = "registry+https://github.com/rust-lang/crates.io-index"
27 source = "registry+https://github.com/rust-lang/crates.io-index"
28 dependencies = [
28 dependencies = [
29 "hermit-abi 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
29 "hermit-abi 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
30 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
30 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
31 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
31 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
32 ]
32 ]
33
33
34 [[package]]
34 [[package]]
35 name = "autocfg"
35 name = "autocfg"
36 version = "1.0.1"
36 version = "1.0.1"
37 source = "registry+https://github.com/rust-lang/crates.io-index"
37 source = "registry+https://github.com/rust-lang/crates.io-index"
38
38
39 [[package]]
39 [[package]]
40 name = "bitflags"
40 name = "bitflags"
41 version = "1.2.1"
41 version = "1.2.1"
42 source = "registry+https://github.com/rust-lang/crates.io-index"
42 source = "registry+https://github.com/rust-lang/crates.io-index"
43
43
44 [[package]]
44 [[package]]
45 name = "bitmaps"
46 version = "2.1.0"
47 source = "registry+https://github.com/rust-lang/crates.io-index"
48 dependencies = [
49 "typenum 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
50 ]
51
52 [[package]]
45 name = "byteorder"
53 name = "byteorder"
46 version = "1.3.4"
54 version = "1.3.4"
47 source = "registry+https://github.com/rust-lang/crates.io-index"
55 source = "registry+https://github.com/rust-lang/crates.io-index"
48
56
49 [[package]]
57 [[package]]
50 name = "cc"
58 name = "cc"
51 version = "1.0.60"
59 version = "1.0.60"
52 source = "registry+https://github.com/rust-lang/crates.io-index"
60 source = "registry+https://github.com/rust-lang/crates.io-index"
53 dependencies = [
61 dependencies = [
54 "jobserver 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
62 "jobserver 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)",
55 ]
63 ]
56
64
57 [[package]]
65 [[package]]
58 name = "cfg-if"
66 name = "cfg-if"
59 version = "0.1.10"
67 version = "0.1.10"
60 source = "registry+https://github.com/rust-lang/crates.io-index"
68 source = "registry+https://github.com/rust-lang/crates.io-index"
61
69
62 [[package]]
70 [[package]]
63 name = "clap"
71 name = "clap"
64 version = "2.33.3"
72 version = "2.33.3"
65 source = "registry+https://github.com/rust-lang/crates.io-index"
73 source = "registry+https://github.com/rust-lang/crates.io-index"
66 dependencies = [
74 dependencies = [
67 "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
75 "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
68 "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
76 "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
69 "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
77 "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
70 "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
78 "strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)",
71 "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
79 "textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
72 "unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
80 "unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
73 "vec_map 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
81 "vec_map 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
74 ]
82 ]
75
83
76 [[package]]
84 [[package]]
77 name = "cpython"
85 name = "cpython"
78 version = "0.4.1"
86 version = "0.4.1"
79 source = "registry+https://github.com/rust-lang/crates.io-index"
87 source = "registry+https://github.com/rust-lang/crates.io-index"
80 dependencies = [
88 dependencies = [
81 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
89 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
82 "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
90 "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)",
83 "python27-sys 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
91 "python27-sys 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
84 "python3-sys 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
92 "python3-sys 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
85 ]
93 ]
86
94
87 [[package]]
95 [[package]]
88 name = "crc32fast"
96 name = "crc32fast"
89 version = "1.2.0"
97 version = "1.2.0"
90 source = "registry+https://github.com/rust-lang/crates.io-index"
98 source = "registry+https://github.com/rust-lang/crates.io-index"
91 dependencies = [
99 dependencies = [
92 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
100 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
93 ]
101 ]
94
102
95 [[package]]
103 [[package]]
96 name = "crossbeam"
104 name = "crossbeam"
97 version = "0.7.3"
105 version = "0.7.3"
98 source = "registry+https://github.com/rust-lang/crates.io-index"
106 source = "registry+https://github.com/rust-lang/crates.io-index"
99 dependencies = [
107 dependencies = [
100 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
108 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
101 "crossbeam-channel 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
109 "crossbeam-channel 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
102 "crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
110 "crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
103 "crossbeam-epoch 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
111 "crossbeam-epoch 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
104 "crossbeam-queue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
112 "crossbeam-queue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
105 "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
113 "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
106 ]
114 ]
107
115
108 [[package]]
116 [[package]]
109 name = "crossbeam-channel"
117 name = "crossbeam-channel"
110 version = "0.4.4"
118 version = "0.4.4"
111 source = "registry+https://github.com/rust-lang/crates.io-index"
119 source = "registry+https://github.com/rust-lang/crates.io-index"
112 dependencies = [
120 dependencies = [
113 "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
121 "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
114 "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
122 "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
115 ]
123 ]
116
124
117 [[package]]
125 [[package]]
118 name = "crossbeam-deque"
126 name = "crossbeam-deque"
119 version = "0.7.3"
127 version = "0.7.3"
120 source = "registry+https://github.com/rust-lang/crates.io-index"
128 source = "registry+https://github.com/rust-lang/crates.io-index"
121 dependencies = [
129 dependencies = [
122 "crossbeam-epoch 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
130 "crossbeam-epoch 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)",
123 "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
131 "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
124 "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
132 "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
125 ]
133 ]
126
134
127 [[package]]
135 [[package]]
128 name = "crossbeam-epoch"
136 name = "crossbeam-epoch"
129 version = "0.8.2"
137 version = "0.8.2"
130 source = "registry+https://github.com/rust-lang/crates.io-index"
138 source = "registry+https://github.com/rust-lang/crates.io-index"
131 dependencies = [
139 dependencies = [
132 "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
140 "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
133 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
141 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
134 "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
142 "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
135 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
143 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
136 "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
144 "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
137 "memoffset 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
145 "memoffset 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)",
138 "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
146 "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
139 ]
147 ]
140
148
141 [[package]]
149 [[package]]
142 name = "crossbeam-queue"
150 name = "crossbeam-queue"
143 version = "0.2.3"
151 version = "0.2.3"
144 source = "registry+https://github.com/rust-lang/crates.io-index"
152 source = "registry+https://github.com/rust-lang/crates.io-index"
145 dependencies = [
153 dependencies = [
146 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
154 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
147 "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
155 "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
148 "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
156 "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
149 ]
157 ]
150
158
151 [[package]]
159 [[package]]
152 name = "crossbeam-utils"
160 name = "crossbeam-utils"
153 version = "0.7.2"
161 version = "0.7.2"
154 source = "registry+https://github.com/rust-lang/crates.io-index"
162 source = "registry+https://github.com/rust-lang/crates.io-index"
155 dependencies = [
163 dependencies = [
156 "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
164 "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
157 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
165 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
158 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
166 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
159 ]
167 ]
160
168
161 [[package]]
169 [[package]]
162 name = "ctor"
170 name = "ctor"
163 version = "0.1.16"
171 version = "0.1.16"
164 source = "registry+https://github.com/rust-lang/crates.io-index"
172 source = "registry+https://github.com/rust-lang/crates.io-index"
165 dependencies = [
173 dependencies = [
166 "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
174 "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
167 "syn 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
175 "syn 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
168 ]
176 ]
169
177
170 [[package]]
178 [[package]]
171 name = "difference"
179 name = "difference"
172 version = "2.0.0"
180 version = "2.0.0"
173 source = "registry+https://github.com/rust-lang/crates.io-index"
181 source = "registry+https://github.com/rust-lang/crates.io-index"
174
182
175 [[package]]
183 [[package]]
176 name = "either"
184 name = "either"
177 version = "1.6.1"
185 version = "1.6.1"
178 source = "registry+https://github.com/rust-lang/crates.io-index"
186 source = "registry+https://github.com/rust-lang/crates.io-index"
179
187
180 [[package]]
188 [[package]]
181 name = "env_logger"
189 name = "env_logger"
182 version = "0.7.1"
190 version = "0.7.1"
183 source = "registry+https://github.com/rust-lang/crates.io-index"
191 source = "registry+https://github.com/rust-lang/crates.io-index"
184 dependencies = [
192 dependencies = [
185 "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
193 "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)",
186 "humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
194 "humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
187 "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
195 "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
188 "regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
196 "regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
189 "termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
197 "termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
190 ]
198 ]
191
199
192 [[package]]
200 [[package]]
193 name = "flate2"
201 name = "flate2"
194 version = "1.0.17"
202 version = "1.0.17"
195 source = "registry+https://github.com/rust-lang/crates.io-index"
203 source = "registry+https://github.com/rust-lang/crates.io-index"
196 dependencies = [
204 dependencies = [
197 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
205 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
198 "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
206 "crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
199 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
207 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
200 "libz-sys 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
208 "libz-sys 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
201 "miniz_oxide 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
209 "miniz_oxide 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
202 ]
210 ]
203
211
204 [[package]]
212 [[package]]
205 name = "fuchsia-cprng"
213 name = "fuchsia-cprng"
206 version = "0.1.1"
214 version = "0.1.1"
207 source = "registry+https://github.com/rust-lang/crates.io-index"
215 source = "registry+https://github.com/rust-lang/crates.io-index"
208
216
209 [[package]]
217 [[package]]
210 name = "gcc"
218 name = "gcc"
211 version = "0.3.55"
219 version = "0.3.55"
212 source = "registry+https://github.com/rust-lang/crates.io-index"
220 source = "registry+https://github.com/rust-lang/crates.io-index"
213
221
214 [[package]]
222 [[package]]
215 name = "getrandom"
223 name = "getrandom"
216 version = "0.1.15"
224 version = "0.1.15"
217 source = "registry+https://github.com/rust-lang/crates.io-index"
225 source = "registry+https://github.com/rust-lang/crates.io-index"
218 dependencies = [
226 dependencies = [
219 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
227 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
220 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
228 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
221 "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)",
229 "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)",
222 ]
230 ]
223
231
224 [[package]]
232 [[package]]
225 name = "glob"
233 name = "glob"
226 version = "0.3.0"
234 version = "0.3.0"
227 source = "registry+https://github.com/rust-lang/crates.io-index"
235 source = "registry+https://github.com/rust-lang/crates.io-index"
228
236
229 [[package]]
237 [[package]]
230 name = "hermit-abi"
238 name = "hermit-abi"
231 version = "0.1.16"
239 version = "0.1.16"
232 source = "registry+https://github.com/rust-lang/crates.io-index"
240 source = "registry+https://github.com/rust-lang/crates.io-index"
233 dependencies = [
241 dependencies = [
234 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
242 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
235 ]
243 ]
236
244
237 [[package]]
245 [[package]]
238 name = "hex"
246 name = "hex"
239 version = "0.4.2"
247 version = "0.4.2"
240 source = "registry+https://github.com/rust-lang/crates.io-index"
248 source = "registry+https://github.com/rust-lang/crates.io-index"
241
249
242 [[package]]
250 [[package]]
243 name = "hg-core"
251 name = "hg-core"
244 version = "0.1.0"
252 version = "0.1.0"
245 dependencies = [
253 dependencies = [
246 "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
254 "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)",
247 "clap 2.33.3 (registry+https://github.com/rust-lang/crates.io-index)",
255 "clap 2.33.3 (registry+https://github.com/rust-lang/crates.io-index)",
248 "crossbeam 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
256 "crossbeam 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
249 "flate2 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)",
257 "flate2 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)",
250 "hex 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
258 "hex 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
259 "im-rc 15.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
251 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
260 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
252 "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
261 "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
253 "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
262 "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
254 "memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
263 "memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)",
255 "micro-timer 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
264 "micro-timer 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
256 "pretty_assertions 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
265 "pretty_assertions 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
257 "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
266 "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
258 "rand_distr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
267 "rand_distr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
259 "rand_pcg 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
268 "rand_pcg 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
260 "rayon 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
269 "rayon 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
261 "regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
270 "regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
262 "rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
271 "rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)",
263 "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
272 "same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)",
264 "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
273 "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
265 "twox-hash 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
274 "twox-hash 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)",
266 "zstd 0.5.3+zstd.1.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
275 "zstd 0.5.3+zstd.1.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
267 ]
276 ]
268
277
269 [[package]]
278 [[package]]
270 name = "hg-cpython"
279 name = "hg-cpython"
271 version = "0.1.0"
280 version = "0.1.0"
272 dependencies = [
281 dependencies = [
273 "cpython 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
282 "cpython 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)",
274 "env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
283 "env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
275 "hg-core 0.1.0",
284 "hg-core 0.1.0",
276 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
285 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
277 "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
286 "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
278 ]
287 ]
279
288
280 [[package]]
289 [[package]]
281 name = "humantime"
290 name = "humantime"
282 version = "1.3.0"
291 version = "1.3.0"
283 source = "registry+https://github.com/rust-lang/crates.io-index"
292 source = "registry+https://github.com/rust-lang/crates.io-index"
284 dependencies = [
293 dependencies = [
285 "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
294 "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
286 ]
295 ]
287
296
288 [[package]]
297 [[package]]
298 name = "im-rc"
299 version = "15.0.0"
300 source = "registry+https://github.com/rust-lang/crates.io-index"
301 dependencies = [
302 "bitmaps 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
303 "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
304 "rand_xoshiro 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
305 "sized-chunks 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)",
306 "typenum 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
307 "version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
308 ]
309
310 [[package]]
289 name = "itertools"
311 name = "itertools"
290 version = "0.9.0"
312 version = "0.9.0"
291 source = "registry+https://github.com/rust-lang/crates.io-index"
313 source = "registry+https://github.com/rust-lang/crates.io-index"
292 dependencies = [
314 dependencies = [
293 "either 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
315 "either 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
294 ]
316 ]
295
317
296 [[package]]
318 [[package]]
297 name = "jobserver"
319 name = "jobserver"
298 version = "0.1.21"
320 version = "0.1.21"
299 source = "registry+https://github.com/rust-lang/crates.io-index"
321 source = "registry+https://github.com/rust-lang/crates.io-index"
300 dependencies = [
322 dependencies = [
301 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
323 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
302 ]
324 ]
303
325
304 [[package]]
326 [[package]]
305 name = "lazy_static"
327 name = "lazy_static"
306 version = "1.4.0"
328 version = "1.4.0"
307 source = "registry+https://github.com/rust-lang/crates.io-index"
329 source = "registry+https://github.com/rust-lang/crates.io-index"
308
330
309 [[package]]
331 [[package]]
310 name = "libc"
332 name = "libc"
311 version = "0.2.77"
333 version = "0.2.77"
312 source = "registry+https://github.com/rust-lang/crates.io-index"
334 source = "registry+https://github.com/rust-lang/crates.io-index"
313
335
314 [[package]]
336 [[package]]
315 name = "libz-sys"
337 name = "libz-sys"
316 version = "1.1.2"
338 version = "1.1.2"
317 source = "registry+https://github.com/rust-lang/crates.io-index"
339 source = "registry+https://github.com/rust-lang/crates.io-index"
318 dependencies = [
340 dependencies = [
319 "cc 1.0.60 (registry+https://github.com/rust-lang/crates.io-index)",
341 "cc 1.0.60 (registry+https://github.com/rust-lang/crates.io-index)",
320 "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
342 "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)",
321 "vcpkg 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
343 "vcpkg 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)",
322 ]
344 ]
323
345
324 [[package]]
346 [[package]]
325 name = "log"
347 name = "log"
326 version = "0.4.11"
348 version = "0.4.11"
327 source = "registry+https://github.com/rust-lang/crates.io-index"
349 source = "registry+https://github.com/rust-lang/crates.io-index"
328 dependencies = [
350 dependencies = [
329 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
351 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
330 ]
352 ]
331
353
332 [[package]]
354 [[package]]
333 name = "maybe-uninit"
355 name = "maybe-uninit"
334 version = "2.0.0"
356 version = "2.0.0"
335 source = "registry+https://github.com/rust-lang/crates.io-index"
357 source = "registry+https://github.com/rust-lang/crates.io-index"
336
358
337 [[package]]
359 [[package]]
338 name = "memchr"
360 name = "memchr"
339 version = "2.3.3"
361 version = "2.3.3"
340 source = "registry+https://github.com/rust-lang/crates.io-index"
362 source = "registry+https://github.com/rust-lang/crates.io-index"
341
363
342 [[package]]
364 [[package]]
343 name = "memmap"
365 name = "memmap"
344 version = "0.7.0"
366 version = "0.7.0"
345 source = "registry+https://github.com/rust-lang/crates.io-index"
367 source = "registry+https://github.com/rust-lang/crates.io-index"
346 dependencies = [
368 dependencies = [
347 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
369 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
348 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
370 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
349 ]
371 ]
350
372
351 [[package]]
373 [[package]]
352 name = "memoffset"
374 name = "memoffset"
353 version = "0.5.6"
375 version = "0.5.6"
354 source = "registry+https://github.com/rust-lang/crates.io-index"
376 source = "registry+https://github.com/rust-lang/crates.io-index"
355 dependencies = [
377 dependencies = [
356 "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
378 "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
357 ]
379 ]
358
380
359 [[package]]
381 [[package]]
360 name = "micro-timer"
382 name = "micro-timer"
361 version = "0.3.1"
383 version = "0.3.1"
362 source = "registry+https://github.com/rust-lang/crates.io-index"
384 source = "registry+https://github.com/rust-lang/crates.io-index"
363 dependencies = [
385 dependencies = [
364 "micro-timer-macros 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
386 "micro-timer-macros 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
365 "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
387 "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
366 ]
388 ]
367
389
368 [[package]]
390 [[package]]
369 name = "micro-timer-macros"
391 name = "micro-timer-macros"
370 version = "0.3.1"
392 version = "0.3.1"
371 source = "registry+https://github.com/rust-lang/crates.io-index"
393 source = "registry+https://github.com/rust-lang/crates.io-index"
372 dependencies = [
394 dependencies = [
373 "proc-macro2 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)",
395 "proc-macro2 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)",
374 "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
396 "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
375 "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
397 "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
376 "syn 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
398 "syn 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)",
377 ]
399 ]
378
400
379 [[package]]
401 [[package]]
380 name = "miniz_oxide"
402 name = "miniz_oxide"
381 version = "0.4.2"
403 version = "0.4.2"
382 source = "registry+https://github.com/rust-lang/crates.io-index"
404 source = "registry+https://github.com/rust-lang/crates.io-index"
383 dependencies = [
405 dependencies = [
384 "adler 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
406 "adler 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)",
385 "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
407 "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
386 ]
408 ]
387
409
388 [[package]]
410 [[package]]
389 name = "num-traits"
411 name = "num-traits"
390 version = "0.2.12"
412 version = "0.2.12"
391 source = "registry+https://github.com/rust-lang/crates.io-index"
413 source = "registry+https://github.com/rust-lang/crates.io-index"
392 dependencies = [
414 dependencies = [
393 "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
415 "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
394 ]
416 ]
395
417
396 [[package]]
418 [[package]]
397 name = "num_cpus"
419 name = "num_cpus"
398 version = "1.13.0"
420 version = "1.13.0"
399 source = "registry+https://github.com/rust-lang/crates.io-index"
421 source = "registry+https://github.com/rust-lang/crates.io-index"
400 dependencies = [
422 dependencies = [
401 "hermit-abi 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
423 "hermit-abi 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
402 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
424 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
403 ]
425 ]
404
426
405 [[package]]
427 [[package]]
406 name = "output_vt100"
428 name = "output_vt100"
407 version = "0.1.2"
429 version = "0.1.2"
408 source = "registry+https://github.com/rust-lang/crates.io-index"
430 source = "registry+https://github.com/rust-lang/crates.io-index"
409 dependencies = [
431 dependencies = [
410 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
432 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
411 ]
433 ]
412
434
413 [[package]]
435 [[package]]
414 name = "pkg-config"
436 name = "pkg-config"
415 version = "0.3.18"
437 version = "0.3.18"
416 source = "registry+https://github.com/rust-lang/crates.io-index"
438 source = "registry+https://github.com/rust-lang/crates.io-index"
417
439
418 [[package]]
440 [[package]]
419 name = "ppv-lite86"
441 name = "ppv-lite86"
420 version = "0.2.9"
442 version = "0.2.9"
421 source = "registry+https://github.com/rust-lang/crates.io-index"
443 source = "registry+https://github.com/rust-lang/crates.io-index"
422
444
423 [[package]]
445 [[package]]
424 name = "pretty_assertions"
446 name = "pretty_assertions"
425 version = "0.6.1"
447 version = "0.6.1"
426 source = "registry+https://github.com/rust-lang/crates.io-index"
448 source = "registry+https://github.com/rust-lang/crates.io-index"
427 dependencies = [
449 dependencies = [
428 "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
450 "ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)",
429 "ctor 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
451 "ctor 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)",
430 "difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
452 "difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)",
431 "output_vt100 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
453 "output_vt100 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)",
432 ]
454 ]
433
455
434 [[package]]
456 [[package]]
435 name = "proc-macro2"
457 name = "proc-macro2"
436 version = "1.0.21"
458 version = "1.0.21"
437 source = "registry+https://github.com/rust-lang/crates.io-index"
459 source = "registry+https://github.com/rust-lang/crates.io-index"
438 dependencies = [
460 dependencies = [
439 "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
461 "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
440 ]
462 ]
441
463
442 [[package]]
464 [[package]]
443 name = "python27-sys"
465 name = "python27-sys"
444 version = "0.4.1"
466 version = "0.4.1"
445 source = "registry+https://github.com/rust-lang/crates.io-index"
467 source = "registry+https://github.com/rust-lang/crates.io-index"
446 dependencies = [
468 dependencies = [
447 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
469 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
448 "regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
470 "regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
449 ]
471 ]
450
472
451 [[package]]
473 [[package]]
452 name = "python3-sys"
474 name = "python3-sys"
453 version = "0.4.1"
475 version = "0.4.1"
454 source = "registry+https://github.com/rust-lang/crates.io-index"
476 source = "registry+https://github.com/rust-lang/crates.io-index"
455 dependencies = [
477 dependencies = [
456 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
478 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
457 "regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
479 "regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
458 ]
480 ]
459
481
460 [[package]]
482 [[package]]
461 name = "quick-error"
483 name = "quick-error"
462 version = "1.2.3"
484 version = "1.2.3"
463 source = "registry+https://github.com/rust-lang/crates.io-index"
485 source = "registry+https://github.com/rust-lang/crates.io-index"
464
486
465 [[package]]
487 [[package]]
466 name = "quote"
488 name = "quote"
467 version = "1.0.7"
489 version = "1.0.7"
468 source = "registry+https://github.com/rust-lang/crates.io-index"
490 source = "registry+https://github.com/rust-lang/crates.io-index"
469 dependencies = [
491 dependencies = [
470 "proc-macro2 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)",
492 "proc-macro2 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)",
471 ]
493 ]
472
494
473 [[package]]
495 [[package]]
474 name = "rand"
496 name = "rand"
475 version = "0.3.23"
497 version = "0.3.23"
476 source = "registry+https://github.com/rust-lang/crates.io-index"
498 source = "registry+https://github.com/rust-lang/crates.io-index"
477 dependencies = [
499 dependencies = [
478 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
500 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
479 "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
501 "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)",
480 ]
502 ]
481
503
482 [[package]]
504 [[package]]
483 name = "rand"
505 name = "rand"
484 version = "0.4.6"
506 version = "0.4.6"
485 source = "registry+https://github.com/rust-lang/crates.io-index"
507 source = "registry+https://github.com/rust-lang/crates.io-index"
486 dependencies = [
508 dependencies = [
487 "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
509 "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)",
488 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
510 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
489 "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
511 "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
490 "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
512 "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
491 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
513 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
492 ]
514 ]
493
515
494 [[package]]
516 [[package]]
495 name = "rand"
517 name = "rand"
496 version = "0.7.3"
518 version = "0.7.3"
497 source = "registry+https://github.com/rust-lang/crates.io-index"
519 source = "registry+https://github.com/rust-lang/crates.io-index"
498 dependencies = [
520 dependencies = [
499 "getrandom 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
521 "getrandom 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
500 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
522 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
501 "rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
523 "rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)",
502 "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
524 "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
503 "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
525 "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
504 ]
526 ]
505
527
506 [[package]]
528 [[package]]
507 name = "rand_chacha"
529 name = "rand_chacha"
508 version = "0.2.2"
530 version = "0.2.2"
509 source = "registry+https://github.com/rust-lang/crates.io-index"
531 source = "registry+https://github.com/rust-lang/crates.io-index"
510 dependencies = [
532 dependencies = [
511 "ppv-lite86 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
533 "ppv-lite86 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)",
512 "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
534 "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
513 ]
535 ]
514
536
515 [[package]]
537 [[package]]
516 name = "rand_core"
538 name = "rand_core"
517 version = "0.3.1"
539 version = "0.3.1"
518 source = "registry+https://github.com/rust-lang/crates.io-index"
540 source = "registry+https://github.com/rust-lang/crates.io-index"
519 dependencies = [
541 dependencies = [
520 "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
542 "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)",
521 ]
543 ]
522
544
523 [[package]]
545 [[package]]
524 name = "rand_core"
546 name = "rand_core"
525 version = "0.4.2"
547 version = "0.4.2"
526 source = "registry+https://github.com/rust-lang/crates.io-index"
548 source = "registry+https://github.com/rust-lang/crates.io-index"
527
549
528 [[package]]
550 [[package]]
529 name = "rand_core"
551 name = "rand_core"
530 version = "0.5.1"
552 version = "0.5.1"
531 source = "registry+https://github.com/rust-lang/crates.io-index"
553 source = "registry+https://github.com/rust-lang/crates.io-index"
532 dependencies = [
554 dependencies = [
533 "getrandom 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
555 "getrandom 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)",
534 ]
556 ]
535
557
536 [[package]]
558 [[package]]
537 name = "rand_distr"
559 name = "rand_distr"
538 version = "0.2.2"
560 version = "0.2.2"
539 source = "registry+https://github.com/rust-lang/crates.io-index"
561 source = "registry+https://github.com/rust-lang/crates.io-index"
540 dependencies = [
562 dependencies = [
541 "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
563 "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
542 ]
564 ]
543
565
544 [[package]]
566 [[package]]
545 name = "rand_hc"
567 name = "rand_hc"
546 version = "0.2.0"
568 version = "0.2.0"
547 source = "registry+https://github.com/rust-lang/crates.io-index"
569 source = "registry+https://github.com/rust-lang/crates.io-index"
548 dependencies = [
570 dependencies = [
549 "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
571 "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
550 ]
572 ]
551
573
552 [[package]]
574 [[package]]
553 name = "rand_pcg"
575 name = "rand_pcg"
554 version = "0.2.1"
576 version = "0.2.1"
555 source = "registry+https://github.com/rust-lang/crates.io-index"
577 source = "registry+https://github.com/rust-lang/crates.io-index"
556 dependencies = [
578 dependencies = [
557 "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
579 "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
558 ]
580 ]
559
581
560 [[package]]
582 [[package]]
583 name = "rand_xoshiro"
584 version = "0.4.0"
585 source = "registry+https://github.com/rust-lang/crates.io-index"
586 dependencies = [
587 "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)",
588 ]
589
590 [[package]]
561 name = "rayon"
591 name = "rayon"
562 version = "1.4.0"
592 version = "1.4.0"
563 source = "registry+https://github.com/rust-lang/crates.io-index"
593 source = "registry+https://github.com/rust-lang/crates.io-index"
564 dependencies = [
594 dependencies = [
565 "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
595 "autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
566 "crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
596 "crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
567 "either 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
597 "either 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)",
568 "rayon-core 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
598 "rayon-core 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)",
569 ]
599 ]
570
600
571 [[package]]
601 [[package]]
572 name = "rayon-core"
602 name = "rayon-core"
573 version = "1.8.1"
603 version = "1.8.1"
574 source = "registry+https://github.com/rust-lang/crates.io-index"
604 source = "registry+https://github.com/rust-lang/crates.io-index"
575 dependencies = [
605 dependencies = [
576 "crossbeam-channel 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
606 "crossbeam-channel 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)",
577 "crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
607 "crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
578 "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
608 "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)",
579 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
609 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
580 "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
610 "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)",
581 ]
611 ]
582
612
583 [[package]]
613 [[package]]
584 name = "rdrand"
614 name = "rdrand"
585 version = "0.4.0"
615 version = "0.4.0"
586 source = "registry+https://github.com/rust-lang/crates.io-index"
616 source = "registry+https://github.com/rust-lang/crates.io-index"
587 dependencies = [
617 dependencies = [
588 "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
618 "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
589 ]
619 ]
590
620
591 [[package]]
621 [[package]]
592 name = "redox_syscall"
622 name = "redox_syscall"
593 version = "0.1.57"
623 version = "0.1.57"
594 source = "registry+https://github.com/rust-lang/crates.io-index"
624 source = "registry+https://github.com/rust-lang/crates.io-index"
595
625
596 [[package]]
626 [[package]]
597 name = "regex"
627 name = "regex"
598 version = "1.3.9"
628 version = "1.3.9"
599 source = "registry+https://github.com/rust-lang/crates.io-index"
629 source = "registry+https://github.com/rust-lang/crates.io-index"
600 dependencies = [
630 dependencies = [
601 "aho-corasick 0.7.13 (registry+https://github.com/rust-lang/crates.io-index)",
631 "aho-corasick 0.7.13 (registry+https://github.com/rust-lang/crates.io-index)",
602 "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
632 "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)",
603 "regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)",
633 "regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)",
604 "thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
634 "thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)",
605 ]
635 ]
606
636
607 [[package]]
637 [[package]]
608 name = "regex-syntax"
638 name = "regex-syntax"
609 version = "0.6.18"
639 version = "0.6.18"
610 source = "registry+https://github.com/rust-lang/crates.io-index"
640 source = "registry+https://github.com/rust-lang/crates.io-index"
611
641
612 [[package]]
642 [[package]]
613 name = "remove_dir_all"
643 name = "remove_dir_all"
614 version = "0.5.3"
644 version = "0.5.3"
615 source = "registry+https://github.com/rust-lang/crates.io-index"
645 source = "registry+https://github.com/rust-lang/crates.io-index"
616 dependencies = [
646 dependencies = [
617 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
647 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
618 ]
648 ]
619
649
620 [[package]]
650 [[package]]
621 name = "rhg"
651 name = "rhg"
622 version = "0.1.0"
652 version = "0.1.0"
623 dependencies = [
653 dependencies = [
624 "clap 2.33.3 (registry+https://github.com/rust-lang/crates.io-index)",
654 "clap 2.33.3 (registry+https://github.com/rust-lang/crates.io-index)",
625 "env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
655 "env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)",
626 "hg-core 0.1.0",
656 "hg-core 0.1.0",
627 "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
657 "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)",
628 "micro-timer 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
658 "micro-timer 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)",
629 ]
659 ]
630
660
631 [[package]]
661 [[package]]
632 name = "rust-crypto"
662 name = "rust-crypto"
633 version = "0.2.36"
663 version = "0.2.36"
634 source = "registry+https://github.com/rust-lang/crates.io-index"
664 source = "registry+https://github.com/rust-lang/crates.io-index"
635 dependencies = [
665 dependencies = [
636 "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)",
666 "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)",
637 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
667 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
638 "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
668 "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)",
639 "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
669 "rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)",
640 "time 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)",
670 "time 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)",
641 ]
671 ]
642
672
643 [[package]]
673 [[package]]
644 name = "rustc-serialize"
674 name = "rustc-serialize"
645 version = "0.3.24"
675 version = "0.3.24"
646 source = "registry+https://github.com/rust-lang/crates.io-index"
676 source = "registry+https://github.com/rust-lang/crates.io-index"
647
677
648 [[package]]
678 [[package]]
649 name = "same-file"
679 name = "same-file"
650 version = "1.0.6"
680 version = "1.0.6"
651 source = "registry+https://github.com/rust-lang/crates.io-index"
681 source = "registry+https://github.com/rust-lang/crates.io-index"
652 dependencies = [
682 dependencies = [
653 "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
683 "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
654 ]
684 ]
655
685
656 [[package]]
686 [[package]]
657 name = "scopeguard"
687 name = "scopeguard"
658 version = "1.1.0"
688 version = "1.1.0"
659 source = "registry+https://github.com/rust-lang/crates.io-index"
689 source = "registry+https://github.com/rust-lang/crates.io-index"
660
690
661 [[package]]
691 [[package]]
692 name = "sized-chunks"
693 version = "0.6.2"
694 source = "registry+https://github.com/rust-lang/crates.io-index"
695 dependencies = [
696 "bitmaps 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)",
697 "typenum 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)",
698 ]
699
700 [[package]]
662 name = "strsim"
701 name = "strsim"
663 version = "0.8.0"
702 version = "0.8.0"
664 source = "registry+https://github.com/rust-lang/crates.io-index"
703 source = "registry+https://github.com/rust-lang/crates.io-index"
665
704
666 [[package]]
705 [[package]]
667 name = "syn"
706 name = "syn"
668 version = "1.0.41"
707 version = "1.0.41"
669 source = "registry+https://github.com/rust-lang/crates.io-index"
708 source = "registry+https://github.com/rust-lang/crates.io-index"
670 dependencies = [
709 dependencies = [
671 "proc-macro2 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)",
710 "proc-macro2 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)",
672 "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
711 "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)",
673 "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
712 "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)",
674 ]
713 ]
675
714
676 [[package]]
715 [[package]]
677 name = "tempfile"
716 name = "tempfile"
678 version = "3.1.0"
717 version = "3.1.0"
679 source = "registry+https://github.com/rust-lang/crates.io-index"
718 source = "registry+https://github.com/rust-lang/crates.io-index"
680 dependencies = [
719 dependencies = [
681 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
720 "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)",
682 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
721 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
683 "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
722 "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
684 "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)",
723 "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)",
685 "remove_dir_all 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
724 "remove_dir_all 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)",
686 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
725 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
687 ]
726 ]
688
727
689 [[package]]
728 [[package]]
690 name = "termcolor"
729 name = "termcolor"
691 version = "1.1.0"
730 version = "1.1.0"
692 source = "registry+https://github.com/rust-lang/crates.io-index"
731 source = "registry+https://github.com/rust-lang/crates.io-index"
693 dependencies = [
732 dependencies = [
694 "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
733 "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)",
695 ]
734 ]
696
735
697 [[package]]
736 [[package]]
698 name = "textwrap"
737 name = "textwrap"
699 version = "0.11.0"
738 version = "0.11.0"
700 source = "registry+https://github.com/rust-lang/crates.io-index"
739 source = "registry+https://github.com/rust-lang/crates.io-index"
701 dependencies = [
740 dependencies = [
702 "unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
741 "unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)",
703 ]
742 ]
704
743
705 [[package]]
744 [[package]]
706 name = "thread_local"
745 name = "thread_local"
707 version = "1.0.1"
746 version = "1.0.1"
708 source = "registry+https://github.com/rust-lang/crates.io-index"
747 source = "registry+https://github.com/rust-lang/crates.io-index"
709 dependencies = [
748 dependencies = [
710 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
749 "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
711 ]
750 ]
712
751
713 [[package]]
752 [[package]]
714 name = "time"
753 name = "time"
715 version = "0.1.44"
754 version = "0.1.44"
716 source = "registry+https://github.com/rust-lang/crates.io-index"
755 source = "registry+https://github.com/rust-lang/crates.io-index"
717 dependencies = [
756 dependencies = [
718 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
757 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
719 "wasi 0.10.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)",
758 "wasi 0.10.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)",
720 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
759 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
721 ]
760 ]
722
761
723 [[package]]
762 [[package]]
724 name = "twox-hash"
763 name = "twox-hash"
725 version = "1.5.0"
764 version = "1.5.0"
726 source = "registry+https://github.com/rust-lang/crates.io-index"
765 source = "registry+https://github.com/rust-lang/crates.io-index"
727 dependencies = [
766 dependencies = [
728 "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
767 "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)",
729 ]
768 ]
730
769
731 [[package]]
770 [[package]]
771 name = "typenum"
772 version = "1.12.0"
773 source = "registry+https://github.com/rust-lang/crates.io-index"
774
775 [[package]]
732 name = "unicode-width"
776 name = "unicode-width"
733 version = "0.1.8"
777 version = "0.1.8"
734 source = "registry+https://github.com/rust-lang/crates.io-index"
778 source = "registry+https://github.com/rust-lang/crates.io-index"
735
779
736 [[package]]
780 [[package]]
737 name = "unicode-xid"
781 name = "unicode-xid"
738 version = "0.2.1"
782 version = "0.2.1"
739 source = "registry+https://github.com/rust-lang/crates.io-index"
783 source = "registry+https://github.com/rust-lang/crates.io-index"
740
784
741 [[package]]
785 [[package]]
742 name = "vcpkg"
786 name = "vcpkg"
743 version = "0.2.10"
787 version = "0.2.10"
744 source = "registry+https://github.com/rust-lang/crates.io-index"
788 source = "registry+https://github.com/rust-lang/crates.io-index"
745
789
746 [[package]]
790 [[package]]
747 name = "vec_map"
791 name = "vec_map"
748 version = "0.8.2"
792 version = "0.8.2"
749 source = "registry+https://github.com/rust-lang/crates.io-index"
793 source = "registry+https://github.com/rust-lang/crates.io-index"
750
794
751 [[package]]
795 [[package]]
796 name = "version_check"
797 version = "0.9.1"
798 source = "registry+https://github.com/rust-lang/crates.io-index"
799
800 [[package]]
752 name = "wasi"
801 name = "wasi"
753 version = "0.9.0+wasi-snapshot-preview1"
802 version = "0.9.0+wasi-snapshot-preview1"
754 source = "registry+https://github.com/rust-lang/crates.io-index"
803 source = "registry+https://github.com/rust-lang/crates.io-index"
755
804
756 [[package]]
805 [[package]]
757 name = "wasi"
806 name = "wasi"
758 version = "0.10.0+wasi-snapshot-preview1"
807 version = "0.10.0+wasi-snapshot-preview1"
759 source = "registry+https://github.com/rust-lang/crates.io-index"
808 source = "registry+https://github.com/rust-lang/crates.io-index"
760
809
761 [[package]]
810 [[package]]
762 name = "winapi"
811 name = "winapi"
763 version = "0.3.9"
812 version = "0.3.9"
764 source = "registry+https://github.com/rust-lang/crates.io-index"
813 source = "registry+https://github.com/rust-lang/crates.io-index"
765 dependencies = [
814 dependencies = [
766 "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
815 "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
767 "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
816 "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)",
768 ]
817 ]
769
818
770 [[package]]
819 [[package]]
771 name = "winapi-i686-pc-windows-gnu"
820 name = "winapi-i686-pc-windows-gnu"
772 version = "0.4.0"
821 version = "0.4.0"
773 source = "registry+https://github.com/rust-lang/crates.io-index"
822 source = "registry+https://github.com/rust-lang/crates.io-index"
774
823
775 [[package]]
824 [[package]]
776 name = "winapi-util"
825 name = "winapi-util"
777 version = "0.1.5"
826 version = "0.1.5"
778 source = "registry+https://github.com/rust-lang/crates.io-index"
827 source = "registry+https://github.com/rust-lang/crates.io-index"
779 dependencies = [
828 dependencies = [
780 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
829 "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)",
781 ]
830 ]
782
831
783 [[package]]
832 [[package]]
784 name = "winapi-x86_64-pc-windows-gnu"
833 name = "winapi-x86_64-pc-windows-gnu"
785 version = "0.4.0"
834 version = "0.4.0"
786 source = "registry+https://github.com/rust-lang/crates.io-index"
835 source = "registry+https://github.com/rust-lang/crates.io-index"
787
836
788 [[package]]
837 [[package]]
789 name = "zstd"
838 name = "zstd"
790 version = "0.5.3+zstd.1.4.5"
839 version = "0.5.3+zstd.1.4.5"
791 source = "registry+https://github.com/rust-lang/crates.io-index"
840 source = "registry+https://github.com/rust-lang/crates.io-index"
792 dependencies = [
841 dependencies = [
793 "zstd-safe 2.0.5+zstd.1.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
842 "zstd-safe 2.0.5+zstd.1.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
794 ]
843 ]
795
844
796 [[package]]
845 [[package]]
797 name = "zstd-safe"
846 name = "zstd-safe"
798 version = "2.0.5+zstd.1.4.5"
847 version = "2.0.5+zstd.1.4.5"
799 source = "registry+https://github.com/rust-lang/crates.io-index"
848 source = "registry+https://github.com/rust-lang/crates.io-index"
800 dependencies = [
849 dependencies = [
801 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
850 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
802 "zstd-sys 1.4.17+zstd.1.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
851 "zstd-sys 1.4.17+zstd.1.4.5 (registry+https://github.com/rust-lang/crates.io-index)",
803 ]
852 ]
804
853
805 [[package]]
854 [[package]]
806 name = "zstd-sys"
855 name = "zstd-sys"
807 version = "1.4.17+zstd.1.4.5"
856 version = "1.4.17+zstd.1.4.5"
808 source = "registry+https://github.com/rust-lang/crates.io-index"
857 source = "registry+https://github.com/rust-lang/crates.io-index"
809 dependencies = [
858 dependencies = [
810 "cc 1.0.60 (registry+https://github.com/rust-lang/crates.io-index)",
859 "cc 1.0.60 (registry+https://github.com/rust-lang/crates.io-index)",
811 "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
860 "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)",
812 "itertools 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
861 "itertools 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)",
813 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
862 "libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)",
814 ]
863 ]
815
864
816 [metadata]
865 [metadata]
817 "checksum adler 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
866 "checksum adler 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
818 "checksum aho-corasick 0.7.13 (registry+https://github.com/rust-lang/crates.io-index)" = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
867 "checksum aho-corasick 0.7.13 (registry+https://github.com/rust-lang/crates.io-index)" = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
819 "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
868 "checksum ansi_term 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee49baf6cb617b853aa8d93bf420db2383fab46d314482ca2803b40d5fde979b"
820 "checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
869 "checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
821 "checksum autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
870 "checksum autocfg 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cdb031dd78e28731d87d56cc8ffef4a8f36ca26c38fe2de700543e627f8a464a"
822 "checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
871 "checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
872 "checksum bitmaps 2.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2"
823 "checksum byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
873 "checksum byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de"
824 "checksum cc 1.0.60 (registry+https://github.com/rust-lang/crates.io-index)" = "ef611cc68ff783f18535d77ddd080185275713d852c4f5cbb6122c462a7a825c"
874 "checksum cc 1.0.60 (registry+https://github.com/rust-lang/crates.io-index)" = "ef611cc68ff783f18535d77ddd080185275713d852c4f5cbb6122c462a7a825c"
825 "checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
875 "checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
826 "checksum clap 2.33.3 (registry+https://github.com/rust-lang/crates.io-index)" = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
876 "checksum clap 2.33.3 (registry+https://github.com/rust-lang/crates.io-index)" = "37e58ac78573c40708d45522f0d80fa2f01cc4f9b4e2bf749807255454312002"
827 "checksum cpython 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bfaf3847ab963e40c4f6dd8d6be279bdf74007ae2413786a0dcbb28c52139a95"
877 "checksum cpython 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bfaf3847ab963e40c4f6dd8d6be279bdf74007ae2413786a0dcbb28c52139a95"
828 "checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
878 "checksum crc32fast 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
829 "checksum crossbeam 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "69323bff1fb41c635347b8ead484a5ca6c3f11914d784170b158d8449ab07f8e"
879 "checksum crossbeam 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "69323bff1fb41c635347b8ead484a5ca6c3f11914d784170b158d8449ab07f8e"
830 "checksum crossbeam-channel 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87"
880 "checksum crossbeam-channel 0.4.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b153fe7cbef478c567df0f972e02e6d736db11affe43dfc9c56a9374d1adfb87"
831 "checksum crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
881 "checksum crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
832 "checksum crossbeam-epoch 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
882 "checksum crossbeam-epoch 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace"
833 "checksum crossbeam-queue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
883 "checksum crossbeam-queue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
834 "checksum crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
884 "checksum crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8"
835 "checksum ctor 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "7fbaabec2c953050352311293be5c6aba8e141ba19d6811862b232d6fd020484"
885 "checksum ctor 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "7fbaabec2c953050352311293be5c6aba8e141ba19d6811862b232d6fd020484"
836 "checksum difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
886 "checksum difference 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198"
837 "checksum either 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
887 "checksum either 1.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457"
838 "checksum env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
888 "checksum env_logger 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "44533bbbb3bb3c1fa17d9f2e4e38bbbaf8396ba82193c4cb1b6445d711445d36"
839 "checksum flate2 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)" = "766d0e77a2c1502169d4a93ff3b8c15a71fd946cd0126309752104e5f3c46d94"
889 "checksum flate2 1.0.17 (registry+https://github.com/rust-lang/crates.io-index)" = "766d0e77a2c1502169d4a93ff3b8c15a71fd946cd0126309752104e5f3c46d94"
840 "checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
890 "checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba"
841 "checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
891 "checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2"
842 "checksum getrandom 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6"
892 "checksum getrandom 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "fc587bc0ec293155d5bfa6b9891ec18a1e330c234f896ea47fbada4cadbe47e6"
843 "checksum glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
893 "checksum glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574"
844 "checksum hermit-abi 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c30f6d0bc6b00693347368a67d41b58f2fb851215ff1da49e90fe2c5c667151"
894 "checksum hermit-abi 0.1.16 (registry+https://github.com/rust-lang/crates.io-index)" = "4c30f6d0bc6b00693347368a67d41b58f2fb851215ff1da49e90fe2c5c667151"
845 "checksum hex 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35"
895 "checksum hex 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "644f9158b2f133fd50f5fb3242878846d9eb792e445c893805ff0e3824006e35"
846 "checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
896 "checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f"
897 "checksum im-rc 15.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3ca8957e71f04a205cb162508f9326aea04676c8dfd0711220190d6b83664f3f"
847 "checksum itertools 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
898 "checksum itertools 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b"
848 "checksum jobserver 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)" = "5c71313ebb9439f74b00d9d2dcec36440beaf57a6aa0623068441dd7cd81a7f2"
899 "checksum jobserver 0.1.21 (registry+https://github.com/rust-lang/crates.io-index)" = "5c71313ebb9439f74b00d9d2dcec36440beaf57a6aa0623068441dd7cd81a7f2"
849 "checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
900 "checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
850 "checksum libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)" = "f2f96b10ec2560088a8e76961b00d47107b3a625fecb76dedb29ee7ccbf98235"
901 "checksum libc 0.2.77 (registry+https://github.com/rust-lang/crates.io-index)" = "f2f96b10ec2560088a8e76961b00d47107b3a625fecb76dedb29ee7ccbf98235"
851 "checksum libz-sys 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "602113192b08db8f38796c4e85c39e960c145965140e918018bcde1952429655"
902 "checksum libz-sys 1.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "602113192b08db8f38796c4e85c39e960c145965140e918018bcde1952429655"
852 "checksum log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
903 "checksum log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
853 "checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
904 "checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
854 "checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
905 "checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400"
855 "checksum memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b"
906 "checksum memmap 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "6585fd95e7bb50d6cc31e20d4cf9afb4e2ba16c5846fc76793f11218da9c475b"
856 "checksum memoffset 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa"
907 "checksum memoffset 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa"
857 "checksum micro-timer 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2620153e1d903d26b72b89f0e9c48d8c4756cba941c185461dddc234980c298c"
908 "checksum micro-timer 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2620153e1d903d26b72b89f0e9c48d8c4756cba941c185461dddc234980c298c"
858 "checksum micro-timer-macros 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e28a3473e6abd6e9aab36aaeef32ad22ae0bd34e79f376643594c2b152ec1c5d"
909 "checksum micro-timer-macros 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e28a3473e6abd6e9aab36aaeef32ad22ae0bd34e79f376643594c2b152ec1c5d"
859 "checksum miniz_oxide 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c60c0dfe32c10b43a144bad8fc83538c52f58302c92300ea7ec7bf7b38d5a7b9"
910 "checksum miniz_oxide 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c60c0dfe32c10b43a144bad8fc83538c52f58302c92300ea7ec7bf7b38d5a7b9"
860 "checksum num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
911 "checksum num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611"
861 "checksum num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
912 "checksum num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
862 "checksum output_vt100 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53cdc5b785b7a58c5aad8216b3dfa114df64b0b06ae6e1501cef91df2fbdf8f9"
913 "checksum output_vt100 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "53cdc5b785b7a58c5aad8216b3dfa114df64b0b06ae6e1501cef91df2fbdf8f9"
863 "checksum pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)" = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
914 "checksum pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)" = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33"
864 "checksum ppv-lite86 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20"
915 "checksum ppv-lite86 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "c36fa947111f5c62a733b652544dd0016a43ce89619538a8ef92724a6f501a20"
865 "checksum pretty_assertions 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3f81e1644e1b54f5a68959a29aa86cde704219254669da328ecfdf6a1f09d427"
916 "checksum pretty_assertions 0.6.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3f81e1644e1b54f5a68959a29aa86cde704219254669da328ecfdf6a1f09d427"
866 "checksum proc-macro2 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)" = "36e28516df94f3dd551a587da5357459d9b36d945a7c37c3557928c1c2ff2a2c"
917 "checksum proc-macro2 1.0.21 (registry+https://github.com/rust-lang/crates.io-index)" = "36e28516df94f3dd551a587da5357459d9b36d945a7c37c3557928c1c2ff2a2c"
867 "checksum python27-sys 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "67cb041de8615111bf224dd75667af5f25c6e032118251426fed7f1b70ce4c8c"
918 "checksum python27-sys 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "67cb041de8615111bf224dd75667af5f25c6e032118251426fed7f1b70ce4c8c"
868 "checksum python3-sys 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90af11779515a1e530af60782d273b59ac79d33b0e253c071a728563957c76d4"
919 "checksum python3-sys 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90af11779515a1e530af60782d273b59ac79d33b0e253c071a728563957c76d4"
869 "checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
920 "checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
870 "checksum quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
921 "checksum quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
871 "checksum rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)" = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c"
922 "checksum rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)" = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c"
872 "checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
923 "checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293"
873 "checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
924 "checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03"
874 "checksum rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
925 "checksum rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402"
875 "checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
926 "checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b"
876 "checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
927 "checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc"
877 "checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
928 "checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19"
878 "checksum rand_distr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "96977acbdd3a6576fb1d27391900035bf3863d4a16422973a409b488cf29ffb2"
929 "checksum rand_distr 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "96977acbdd3a6576fb1d27391900035bf3863d4a16422973a409b488cf29ffb2"
879 "checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
930 "checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c"
880 "checksum rand_pcg 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
931 "checksum rand_pcg 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429"
932 "checksum rand_xoshiro 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a9fcdd2e881d02f1d9390ae47ad8e5696a9e4be7b547a1da2afbc61973217004"
881 "checksum rayon 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cfd016f0c045ad38b5251be2c9c0ab806917f82da4d36b2a327e5166adad9270"
933 "checksum rayon 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "cfd016f0c045ad38b5251be2c9c0ab806917f82da4d36b2a327e5166adad9270"
882 "checksum rayon-core 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e8c4fec834fb6e6d2dd5eece3c7b432a52f0ba887cf40e595190c4107edc08bf"
934 "checksum rayon-core 1.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e8c4fec834fb6e6d2dd5eece3c7b432a52f0ba887cf40e595190c4107edc08bf"
883 "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
935 "checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2"
884 "checksum redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)" = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
936 "checksum redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)" = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
885 "checksum regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
937 "checksum regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
886 "checksum regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)" = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
938 "checksum regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)" = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
887 "checksum remove_dir_all 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
939 "checksum remove_dir_all 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7"
888 "checksum rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)" = "f76d05d3993fd5f4af9434e8e436db163a12a9d40e1a58a726f27a01dfd12a2a"
940 "checksum rust-crypto 0.2.36 (registry+https://github.com/rust-lang/crates.io-index)" = "f76d05d3993fd5f4af9434e8e436db163a12a9d40e1a58a726f27a01dfd12a2a"
889 "checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
941 "checksum rustc-serialize 0.3.24 (registry+https://github.com/rust-lang/crates.io-index)" = "dcf128d1287d2ea9d80910b5f1120d0b8eede3fbf1abe91c40d39ea7d51e6fda"
890 "checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
942 "checksum same-file 1.0.6 (registry+https://github.com/rust-lang/crates.io-index)" = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
891 "checksum scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
943 "checksum scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
944 "checksum sized-chunks 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1ec31ceca5644fa6d444cc77548b88b67f46db6f7c71683b0f9336e671830d2f"
892 "checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
945 "checksum strsim 0.8.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a"
893 "checksum syn 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)" = "6690e3e9f692504b941dc6c3b188fd28df054f7fb8469ab40680df52fdcc842b"
946 "checksum syn 1.0.41 (registry+https://github.com/rust-lang/crates.io-index)" = "6690e3e9f692504b941dc6c3b188fd28df054f7fb8469ab40680df52fdcc842b"
894 "checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
947 "checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
895 "checksum termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
948 "checksum termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
896 "checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
949 "checksum textwrap 0.11.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060"
897 "checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
950 "checksum thread_local 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14"
898 "checksum time 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)" = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
951 "checksum time 0.1.44 (registry+https://github.com/rust-lang/crates.io-index)" = "6db9e6914ab8b1ae1c260a4ae7a49b6c5611b40328a735b21862567685e73255"
899 "checksum twox-hash 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3bfd5b7557925ce778ff9b9ef90e3ade34c524b5ff10e239c69a42d546d2af56"
952 "checksum twox-hash 1.5.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3bfd5b7557925ce778ff9b9ef90e3ade34c524b5ff10e239c69a42d546d2af56"
953 "checksum typenum 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33"
900 "checksum unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
954 "checksum unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3"
901 "checksum unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
955 "checksum unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
902 "checksum vcpkg 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c"
956 "checksum vcpkg 0.2.10 (registry+https://github.com/rust-lang/crates.io-index)" = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c"
903 "checksum vec_map 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
957 "checksum vec_map 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
958 "checksum version_check 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "078775d0255232fb988e6fccf26ddc9d1ac274299aaedcedce21c6f72cc533ce"
904 "checksum wasi 0.10.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
959 "checksum wasi 0.10.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f"
905 "checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
960 "checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519"
906 "checksum winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
961 "checksum winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
907 "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
962 "checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
908 "checksum winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
963 "checksum winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
909 "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
964 "checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
910 "checksum zstd 0.5.3+zstd.1.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "01b32eaf771efa709e8308605bbf9319bf485dc1503179ec0469b611937c0cd8"
965 "checksum zstd 0.5.3+zstd.1.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "01b32eaf771efa709e8308605bbf9319bf485dc1503179ec0469b611937c0cd8"
911 "checksum zstd-safe 2.0.5+zstd.1.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1cfb642e0d27f64729a639c52db457e0ae906e7bc6f5fe8f5c453230400f1055"
966 "checksum zstd-safe 2.0.5+zstd.1.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "1cfb642e0d27f64729a639c52db457e0ae906e7bc6f5fe8f5c453230400f1055"
912 "checksum zstd-sys 1.4.17+zstd.1.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b89249644df056b522696b1bb9e7c18c87e8ffa3e2f0dc3b0155875d6498f01b"
967 "checksum zstd-sys 1.4.17+zstd.1.4.5 (registry+https://github.com/rust-lang/crates.io-index)" = "b89249644df056b522696b1bb9e7c18c87e8ffa3e2f0dc3b0155875d6498f01b"
@@ -1,46 +1,47 b''
1 [package]
1 [package]
2 name = "hg-core"
2 name = "hg-core"
3 version = "0.1.0"
3 version = "0.1.0"
4 authors = ["Georges Racinet <gracinet@anybox.fr>"]
4 authors = ["Georges Racinet <gracinet@anybox.fr>"]
5 description = "Mercurial pure Rust core library, with no assumption on Python bindings (FFI)"
5 description = "Mercurial pure Rust core library, with no assumption on Python bindings (FFI)"
6 edition = "2018"
6 edition = "2018"
7
7
8 [lib]
8 [lib]
9 name = "hg"
9 name = "hg"
10
10
11 [dependencies]
11 [dependencies]
12 byteorder = "1.3.4"
12 byteorder = "1.3.4"
13 hex = "0.4.2"
13 hex = "0.4.2"
14 im-rc = "15.0.*"
14 lazy_static = "1.4.0"
15 lazy_static = "1.4.0"
15 memchr = "2.3.3"
16 memchr = "2.3.3"
16 rand = "0.7.3"
17 rand = "0.7.3"
17 rand_pcg = "0.2.1"
18 rand_pcg = "0.2.1"
18 rand_distr = "0.2.2"
19 rand_distr = "0.2.2"
19 rayon = "1.3.0"
20 rayon = "1.3.0"
20 regex = "1.3.9"
21 regex = "1.3.9"
21 twox-hash = "1.5.0"
22 twox-hash = "1.5.0"
22 same-file = "1.0.6"
23 same-file = "1.0.6"
23 crossbeam = "0.7.3"
24 crossbeam = "0.7.3"
24 micro-timer = "0.3.0"
25 micro-timer = "0.3.0"
25 log = "0.4.8"
26 log = "0.4.8"
26 memmap = "0.7.0"
27 memmap = "0.7.0"
27 zstd = "0.5.3"
28 zstd = "0.5.3"
28 rust-crypto = "0.2.36"
29 rust-crypto = "0.2.36"
29
30
30 # We don't use the `miniz-oxide` backend to not change rhg benchmarks and until
31 # We don't use the `miniz-oxide` backend to not change rhg benchmarks and until
31 # we have a clearer view of which backend is the fastest.
32 # we have a clearer view of which backend is the fastest.
32 [dependencies.flate2]
33 [dependencies.flate2]
33 version = "1.0.16"
34 version = "1.0.16"
34 features = ["zlib"]
35 features = ["zlib"]
35 default-features = false
36 default-features = false
36
37
37 [dev-dependencies]
38 [dev-dependencies]
38 clap = "*"
39 clap = "*"
39 pretty_assertions = "0.6.1"
40 pretty_assertions = "0.6.1"
40 tempfile = "3.1.0"
41 tempfile = "3.1.0"
41
42
42 [features]
43 [features]
43 # Use a (still unoptimized) tree for the dirstate instead of the current flat
44 # Use a (still unoptimized) tree for the dirstate instead of the current flat
44 # dirstate. This is not yet recommended for performance reasons. A future
45 # dirstate. This is not yet recommended for performance reasons. A future
45 # version might make it the default, or make it a runtime option.
46 # version might make it the default, or make it a runtime option.
46 dirstate-tree = []
47 dirstate-tree = []
@@ -1,262 +1,264 b''
1 use crate::utils::hg_path::HgPathBuf;
1 use crate::utils::hg_path::HgPathBuf;
2 use crate::Revision;
2 use crate::Revision;
3
3
4 use im_rc::ordmap::OrdMap;
5
4 use std::collections::HashMap;
6 use std::collections::HashMap;
5 use std::collections::HashSet;
7 use std::collections::HashSet;
6
8
7 pub type PathCopies = HashMap<HgPathBuf, HgPathBuf>;
9 pub type PathCopies = HashMap<HgPathBuf, HgPathBuf>;
8
10
9 #[derive(Clone, Debug)]
11 #[derive(Clone, Debug)]
10 struct TimeStampedPathCopy {
12 struct TimeStampedPathCopy {
11 /// revision at which the copy information was added
13 /// revision at which the copy information was added
12 rev: Revision,
14 rev: Revision,
13 /// the copy source, (Set to None in case of deletion of the associated
15 /// the copy source, (Set to None in case of deletion of the associated
14 /// key)
16 /// key)
15 path: Option<HgPathBuf>,
17 path: Option<HgPathBuf>,
16 }
18 }
17
19
18 /// maps CopyDestination to Copy Source (+ a "timestamp" for the operation)
20 /// maps CopyDestination to Copy Source (+ a "timestamp" for the operation)
19 type TimeStampedPathCopies = HashMap<HgPathBuf, TimeStampedPathCopy>;
21 type TimeStampedPathCopies = OrdMap<HgPathBuf, TimeStampedPathCopy>;
20
22
21 /// hold parent 1, parent 2 and relevant files actions.
23 /// hold parent 1, parent 2 and relevant files actions.
22 pub type RevInfo = (Revision, Revision, ChangedFiles);
24 pub type RevInfo = (Revision, Revision, ChangedFiles);
23
25
24 /// represent the files affected by a changesets
26 /// represent the files affected by a changesets
25 ///
27 ///
26 /// This hold a subset of mercurial.metadata.ChangingFiles as we do not need
28 /// This hold a subset of mercurial.metadata.ChangingFiles as we do not need
27 /// all the data categories tracked by it.
29 /// all the data categories tracked by it.
28 pub struct ChangedFiles {
30 pub struct ChangedFiles {
29 removed: HashSet<HgPathBuf>,
31 removed: HashSet<HgPathBuf>,
30 merged: HashSet<HgPathBuf>,
32 merged: HashSet<HgPathBuf>,
31 salvaged: HashSet<HgPathBuf>,
33 salvaged: HashSet<HgPathBuf>,
32 copied_from_p1: PathCopies,
34 copied_from_p1: PathCopies,
33 copied_from_p2: PathCopies,
35 copied_from_p2: PathCopies,
34 }
36 }
35
37
36 impl ChangedFiles {
38 impl ChangedFiles {
37 pub fn new(
39 pub fn new(
38 removed: HashSet<HgPathBuf>,
40 removed: HashSet<HgPathBuf>,
39 merged: HashSet<HgPathBuf>,
41 merged: HashSet<HgPathBuf>,
40 salvaged: HashSet<HgPathBuf>,
42 salvaged: HashSet<HgPathBuf>,
41 copied_from_p1: PathCopies,
43 copied_from_p1: PathCopies,
42 copied_from_p2: PathCopies,
44 copied_from_p2: PathCopies,
43 ) -> Self {
45 ) -> Self {
44 ChangedFiles {
46 ChangedFiles {
45 removed,
47 removed,
46 merged,
48 merged,
47 salvaged,
49 salvaged,
48 copied_from_p1,
50 copied_from_p1,
49 copied_from_p2,
51 copied_from_p2,
50 }
52 }
51 }
53 }
52
54
53 pub fn new_empty() -> Self {
55 pub fn new_empty() -> Self {
54 ChangedFiles {
56 ChangedFiles {
55 removed: HashSet::new(),
57 removed: HashSet::new(),
56 merged: HashSet::new(),
58 merged: HashSet::new(),
57 salvaged: HashSet::new(),
59 salvaged: HashSet::new(),
58 copied_from_p1: PathCopies::new(),
60 copied_from_p1: PathCopies::new(),
59 copied_from_p2: PathCopies::new(),
61 copied_from_p2: PathCopies::new(),
60 }
62 }
61 }
63 }
62 }
64 }
63
65
64 /// Same as mercurial.copies._combine_changeset_copies, but in Rust.
66 /// Same as mercurial.copies._combine_changeset_copies, but in Rust.
65 ///
67 ///
66 /// Arguments are:
68 /// Arguments are:
67 ///
69 ///
68 /// revs: all revisions to be considered
70 /// revs: all revisions to be considered
69 /// children: a {parent ? [childrens]} mapping
71 /// children: a {parent ? [childrens]} mapping
70 /// target_rev: the final revision we are combining copies to
72 /// target_rev: the final revision we are combining copies to
71 /// rev_info(rev): callback to get revision information:
73 /// rev_info(rev): callback to get revision information:
72 /// * first parent
74 /// * first parent
73 /// * second parent
75 /// * second parent
74 /// * ChangedFiles
76 /// * ChangedFiles
75 /// isancestors(low_rev, high_rev): callback to check if a revision is an
77 /// isancestors(low_rev, high_rev): callback to check if a revision is an
76 /// ancestor of another
78 /// ancestor of another
77 pub fn combine_changeset_copies(
79 pub fn combine_changeset_copies(
78 revs: Vec<Revision>,
80 revs: Vec<Revision>,
79 children: HashMap<Revision, Vec<Revision>>,
81 children: HashMap<Revision, Vec<Revision>>,
80 target_rev: Revision,
82 target_rev: Revision,
81 rev_info: &impl Fn(Revision) -> RevInfo,
83 rev_info: &impl Fn(Revision) -> RevInfo,
82 is_ancestor: &impl Fn(Revision, Revision) -> bool,
84 is_ancestor: &impl Fn(Revision, Revision) -> bool,
83 ) -> PathCopies {
85 ) -> PathCopies {
84 let mut all_copies = HashMap::new();
86 let mut all_copies = HashMap::new();
85
87
86 for rev in revs {
88 for rev in revs {
87 // Retrieve data computed in a previous iteration
89 // Retrieve data computed in a previous iteration
88 let copies = all_copies.remove(&rev);
90 let copies = all_copies.remove(&rev);
89 let copies = match copies {
91 let copies = match copies {
90 Some(c) => c,
92 Some(c) => c,
91 None => TimeStampedPathCopies::default(), // root of the walked set
93 None => TimeStampedPathCopies::default(), // root of the walked set
92 };
94 };
93
95
94 let current_children = match children.get(&rev) {
96 let current_children = match children.get(&rev) {
95 Some(c) => c,
97 Some(c) => c,
96 None => panic!("inconsistent `revs` and `children`"),
98 None => panic!("inconsistent `revs` and `children`"),
97 };
99 };
98
100
99 for child in current_children {
101 for child in current_children {
100 // We will chain the copies information accumulated for `rev` with
102 // We will chain the copies information accumulated for `rev` with
101 // the individual copies information for each of its children.
103 // the individual copies information for each of its children.
102 // Creating a new PathCopies for each `rev` ? `children` vertex.
104 // Creating a new PathCopies for each `rev` ? `children` vertex.
103 let (p1, p2, changes) = rev_info(*child);
105 let (p1, p2, changes) = rev_info(*child);
104
106
105 let (parent, child_copies) = if rev == p1 {
107 let (parent, child_copies) = if rev == p1 {
106 (1, &changes.copied_from_p1)
108 (1, &changes.copied_from_p1)
107 } else {
109 } else {
108 assert_eq!(rev, p2);
110 assert_eq!(rev, p2);
109 (2, &changes.copied_from_p2)
111 (2, &changes.copied_from_p2)
110 };
112 };
111 let mut new_copies = copies.clone();
113 let mut new_copies = copies.clone();
112
114
113 for (dest, source) in child_copies {
115 for (dest, source) in child_copies {
114 let entry;
116 let entry;
115 if let Some(v) = copies.get(source) {
117 if let Some(v) = copies.get(source) {
116 entry = match &v.path {
118 entry = match &v.path {
117 Some(path) => Some((*(path)).to_owned()),
119 Some(path) => Some((*(path)).to_owned()),
118 None => Some(source.to_owned()),
120 None => Some(source.to_owned()),
119 }
121 }
120 } else {
122 } else {
121 entry = Some(source.to_owned());
123 entry = Some(source.to_owned());
122 }
124 }
123 // Each new entry is introduced by the children, we record this
125 // Each new entry is introduced by the children, we record this
124 // information as we will need it to take the right decision
126 // information as we will need it to take the right decision
125 // when merging conflicting copy information. See
127 // when merging conflicting copy information. See
126 // merge_copies_dict for details.
128 // merge_copies_dict for details.
127 let ttpc = TimeStampedPathCopy {
129 let ttpc = TimeStampedPathCopy {
128 rev: *child,
130 rev: *child,
129 path: entry,
131 path: entry,
130 };
132 };
131 new_copies.insert(dest.to_owned(), ttpc);
133 new_copies.insert(dest.to_owned(), ttpc);
132 }
134 }
133
135
134 // We must drop copy information for removed file.
136 // We must drop copy information for removed file.
135 //
137 //
136 // We need to explicitly record them as dropped to propagate this
138 // We need to explicitly record them as dropped to propagate this
137 // information when merging two TimeStampedPathCopies object.
139 // information when merging two TimeStampedPathCopies object.
138 for f in changes.removed.iter() {
140 for f in changes.removed.iter() {
139 if new_copies.contains_key(f.as_ref()) {
141 if new_copies.contains_key(f.as_ref()) {
140 let ttpc = TimeStampedPathCopy {
142 let ttpc = TimeStampedPathCopy {
141 rev: *child,
143 rev: *child,
142 path: None,
144 path: None,
143 };
145 };
144 new_copies.insert(f.to_owned(), ttpc);
146 new_copies.insert(f.to_owned(), ttpc);
145 }
147 }
146 }
148 }
147
149
148 // Merge has two parents needs to combines their copy information.
150 // Merge has two parents needs to combines their copy information.
149 //
151 //
150 // If the vertex from the other parent was already processed, we
152 // If the vertex from the other parent was already processed, we
151 // will have a value for the child ready to be used. We need to
153 // will have a value for the child ready to be used. We need to
152 // grab it and combine it with the one we already
154 // grab it and combine it with the one we already
153 // computed. If not we can simply store the newly
155 // computed. If not we can simply store the newly
154 // computed data. The processing happening at
156 // computed data. The processing happening at
155 // the time of the second parent will take care of combining the
157 // the time of the second parent will take care of combining the
156 // two TimeStampedPathCopies instance.
158 // two TimeStampedPathCopies instance.
157 match all_copies.remove(child) {
159 match all_copies.remove(child) {
158 None => {
160 None => {
159 all_copies.insert(child, new_copies);
161 all_copies.insert(child, new_copies);
160 }
162 }
161 Some(other_copies) => {
163 Some(other_copies) => {
162 let (minor, major) = match parent {
164 let (minor, major) = match parent {
163 1 => (other_copies, new_copies),
165 1 => (other_copies, new_copies),
164 2 => (new_copies, other_copies),
166 2 => (new_copies, other_copies),
165 _ => unreachable!(),
167 _ => unreachable!(),
166 };
168 };
167 let merged_copies =
169 let merged_copies =
168 merge_copies_dict(minor, major, &changes, is_ancestor);
170 merge_copies_dict(minor, major, &changes, is_ancestor);
169 all_copies.insert(child, merged_copies);
171 all_copies.insert(child, merged_copies);
170 }
172 }
171 };
173 };
172 }
174 }
173 }
175 }
174
176
175 // Drop internal information (like the timestamp) and return the final
177 // Drop internal information (like the timestamp) and return the final
176 // mapping.
178 // mapping.
177 let tt_result = all_copies
179 let tt_result = all_copies
178 .remove(&target_rev)
180 .remove(&target_rev)
179 .expect("target revision was not processed");
181 .expect("target revision was not processed");
180 let mut result = PathCopies::default();
182 let mut result = PathCopies::default();
181 for (dest, tt_source) in tt_result {
183 for (dest, tt_source) in tt_result {
182 if let Some(path) = tt_source.path {
184 if let Some(path) = tt_source.path {
183 result.insert(dest, path);
185 result.insert(dest, path);
184 }
186 }
185 }
187 }
186 result
188 result
187 }
189 }
188
190
189 /// merge two copies-mapping together, minor and major
191 /// merge two copies-mapping together, minor and major
190 ///
192 ///
191 /// In case of conflict, value from "major" will be picked, unless in some
193 /// In case of conflict, value from "major" will be picked, unless in some
192 /// cases. See inline documentation for details.
194 /// cases. See inline documentation for details.
193 #[allow(clippy::if_same_then_else)]
195 #[allow(clippy::if_same_then_else)]
194 fn merge_copies_dict(
196 fn merge_copies_dict(
195 minor: TimeStampedPathCopies,
197 minor: TimeStampedPathCopies,
196 major: TimeStampedPathCopies,
198 major: TimeStampedPathCopies,
197 changes: &ChangedFiles,
199 changes: &ChangedFiles,
198 is_ancestor: &impl Fn(Revision, Revision) -> bool,
200 is_ancestor: &impl Fn(Revision, Revision) -> bool,
199 ) -> TimeStampedPathCopies {
201 ) -> TimeStampedPathCopies {
200 let mut result = minor.clone();
202 let mut result = minor.clone();
201 for (dest, src_major) in major {
203 for (dest, src_major) in major {
202 let overwrite;
204 let overwrite;
203 if let Some(src_minor) = minor.get(&dest) {
205 if let Some(src_minor) = minor.get(&dest) {
204 if src_major.path == src_minor.path {
206 if src_major.path == src_minor.path {
205 // we have the same value, but from other source;
207 // we have the same value, but from other source;
206 if src_major.rev == src_minor.rev {
208 if src_major.rev == src_minor.rev {
207 // If the two entry are identical, no need to do anything
209 // If the two entry are identical, no need to do anything
208 overwrite = false;
210 overwrite = false;
209 } else if is_ancestor(src_major.rev, src_minor.rev) {
211 } else if is_ancestor(src_major.rev, src_minor.rev) {
210 overwrite = false;
212 overwrite = false;
211 } else {
213 } else {
212 overwrite = true;
214 overwrite = true;
213 }
215 }
214 } else if src_major.rev == src_minor.rev {
216 } else if src_major.rev == src_minor.rev {
215 // We cannot get copy information for both p1 and p2 in the
217 // We cannot get copy information for both p1 and p2 in the
216 // same rev. So this is the same value.
218 // same rev. So this is the same value.
217 overwrite = false;
219 overwrite = false;
218 } else if src_major.path.is_none()
220 } else if src_major.path.is_none()
219 && changes.salvaged.contains(&dest)
221 && changes.salvaged.contains(&dest)
220 {
222 {
221 // If the file is "deleted" in the major side but was salvaged
223 // If the file is "deleted" in the major side but was salvaged
222 // by the merge, we keep the minor side alive
224 // by the merge, we keep the minor side alive
223 overwrite = false;
225 overwrite = false;
224 } else if src_minor.path.is_none()
226 } else if src_minor.path.is_none()
225 && changes.salvaged.contains(&dest)
227 && changes.salvaged.contains(&dest)
226 {
228 {
227 // If the file is "deleted" in the minor side but was salvaged
229 // If the file is "deleted" in the minor side but was salvaged
228 // by the merge, unconditionnaly preserve the major side.
230 // by the merge, unconditionnaly preserve the major side.
229 overwrite = true;
231 overwrite = true;
230 } else if changes.merged.contains(&dest) {
232 } else if changes.merged.contains(&dest) {
231 // If the file was actively merged, copy information from each
233 // If the file was actively merged, copy information from each
232 // side might conflict. The major side will win such conflict.
234 // side might conflict. The major side will win such conflict.
233 overwrite = true;
235 overwrite = true;
234 } else if is_ancestor(src_major.rev, src_minor.rev) {
236 } else if is_ancestor(src_major.rev, src_minor.rev) {
235 // If the minor side is strictly newer than the major side, it
237 // If the minor side is strictly newer than the major side, it
236 // should be kept.
238 // should be kept.
237 overwrite = false;
239 overwrite = false;
238 } else if src_major.path.is_some() {
240 } else if src_major.path.is_some() {
239 // without any special case, the "major" value win other the
241 // without any special case, the "major" value win other the
240 // "minor" one.
242 // "minor" one.
241 overwrite = true;
243 overwrite = true;
242 } else if is_ancestor(src_minor.rev, src_major.rev) {
244 } else if is_ancestor(src_minor.rev, src_major.rev) {
243 // the "major" rev is a direct ancestors of "minor", any
245 // the "major" rev is a direct ancestors of "minor", any
244 // different value should overwrite
246 // different value should overwrite
245 overwrite = true;
247 overwrite = true;
246 } else {
248 } else {
247 // major version is None (so the file was deleted on that
249 // major version is None (so the file was deleted on that
248 // branch) annd that branch is independant (neither minor nor
250 // branch) annd that branch is independant (neither minor nor
249 // major is an ancestors of the other one.) We preserve the new
251 // major is an ancestors of the other one.) We preserve the new
250 // information about the new file.
252 // information about the new file.
251 overwrite = false;
253 overwrite = false;
252 }
254 }
253 } else {
255 } else {
254 // minor had no value
256 // minor had no value
255 overwrite = true;
257 overwrite = true;
256 }
258 }
257 if overwrite {
259 if overwrite {
258 result.insert(dest, src_major);
260 result.insert(dest, src_major);
259 }
261 }
260 }
262 }
261 result
263 result
262 }
264 }
General Comments 0
You need to be logged in to leave comments. Login now