Show More
The requested changes are too big and content was truncated. Show full diff
@@ -0,0 +1,422 b'' | |||
|
1 | $! | |
|
2 | $! Build Python C extension | |
|
3 | $! | |
|
4 | $ cc/name=(short,as_is)- | |
|
5 | /incl=("/python$root/include", "../../mercurial") - | |
|
6 | [--.mercurial.cext]base85.c | |
|
7 | $ cc/name=(short,as_is)- | |
|
8 | /incl=("/python$root/include", "../../mercurial") - | |
|
9 | [--.mercurial]bdiff.c | |
|
10 | $ cc/name=(short,as_is)- | |
|
11 | /incl=("/python$root/include", "../../mercurial") - | |
|
12 | [--.mercurial.cext]bdiff.c - | |
|
13 | /obj=[]bdiff-mod.obj | |
|
14 | $ cc/name=(short,as_is)- | |
|
15 | /incl=("/python$root/include", "../../mercurial") - | |
|
16 | [--.mercurial.thirdparty.xdiff]xdiffi.c | |
|
17 | $ cc/name=(short,as_is)- | |
|
18 | /incl=("/python$root/include", "../../mercurial") - | |
|
19 | [--.mercurial.thirdparty.xdiff]xprepare.c | |
|
20 | $ cc/name=(short,as_is)- | |
|
21 | /incl=("/python$root/include", "../../mercurial") - | |
|
22 | [--.mercurial.thirdparty.xdiff]xutils.c | |
|
23 | $ cc/name=(short,as_is)- | |
|
24 | /incl=("/python$root/include", "../../mercurial") - | |
|
25 | [--.mercurial.cext]mpatch.c/obj=mpatch-mod.obj | |
|
26 | $ cc/name=(short,as_is)- | |
|
27 | /incl=("/python$root/include", "../../mercurial") - | |
|
28 | [--.mercurial]mpatch.c | |
|
29 | $ cc/name=(short,as_is)- | |
|
30 | /incl=("/python$root/include", "../../mercurial") - | |
|
31 | /warn=disa=QUESTCOMPARE - | |
|
32 | [--.mercurial.cext]dirs.c | |
|
33 | $ cc/name=(short,as_is)- | |
|
34 | /incl=("/python$root/include", "../../mercurial") - | |
|
35 | [--.mercurial.cext]charencode.c | |
|
36 | $ cc/name=(short,as_is)- | |
|
37 | /incl=("/python$root/include", "../../mercurial") - | |
|
38 | [--.mercurial.cext]revlog.c | |
|
39 | $ cc/name=(short,as_is)- | |
|
40 | /incl=("/python$root/include", "../../mercurial") - | |
|
41 | [--.mercurial.cext]manifest.c | |
|
42 | $ cc/name=(short,as_is)- | |
|
43 | /incl=("/python$root/include", "../../mercurial") - | |
|
44 | [--.mercurial.cext]pathencode.c | |
|
45 | $ cc/name=(short,as_is)- | |
|
46 | /incl=("/python$root/include", "../../mercurial") - | |
|
47 | /warn=disa=CVTDIFTYPES - | |
|
48 | [--.mercurial.cext]osutil.c | |
|
49 | $ cc/name=(short,as_is)- | |
|
50 | /incl=("/python$root/include", "../../mercurial") - | |
|
51 | /warn=disa=EXTRASEMI - | |
|
52 | [--.mercurial.cext]parsers.c | |
|
53 | $ cc/name=(short,as_is)- | |
|
54 | /incl=("/python$root/include", "../../mercurial", - | |
|
55 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
56 | "../python-zstandard/zstd/dictBuilder") - | |
|
57 | [-.python-zstandard]zstd.c | |
|
58 | $ cc/name=(short,as_is)- | |
|
59 | /incl=("/python$root/include", "../../mercurial", - | |
|
60 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
61 | "../python-zstandard/zstd/dictBuilder") - | |
|
62 | [-.python-zstandard.c-ext]frameparams.c | |
|
63 | $ cc/name=(short,as_is)- | |
|
64 | /incl=("/python$root/include", "../../mercurial", - | |
|
65 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
66 | "../python-zstandard/zstd/dictBuilder") - | |
|
67 | [-.python-zstandard.c-ext]compressobj.c | |
|
68 | $ cc/name=(short,as_is)- | |
|
69 | /incl=("/python$root/include", "../../mercurial", - | |
|
70 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
71 | "../python-zstandard/zstd/dictBuilder", - | |
|
72 | "../python-zstandard/zstd/common") - | |
|
73 | [-.python-zstandard.c-ext]compressor.c | |
|
74 | $ cc/name=(short,as_is)- | |
|
75 | /incl=("/python$root/include", "../../mercurial", - | |
|
76 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
77 | "../python-zstandard/zstd/dictBuilder") - | |
|
78 | [-.python-zstandard.c-ext]bufferutil.c | |
|
79 | $ cc/name=(short,as_is)- | |
|
80 | /incl=("/python$root/include", "../../mercurial", - | |
|
81 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
82 | "../python-zstandard/zstd/dictBuilder") - | |
|
83 | [-.python-zstandard.c-ext]decompressoriterator.c | |
|
84 | $ cc/name=(short,as_is)- | |
|
85 | /incl=("/python$root/include", "../../mercurial", - | |
|
86 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
87 | "../python-zstandard/zstd/dictBuilder", - | |
|
88 | "../python-zstandard/zstd/common") - | |
|
89 | [-.python-zstandard.c-ext]decompressor.c | |
|
90 | $ cc/name=(short,as_is)- | |
|
91 | /incl=("/python$root/include", "../../mercurial", - | |
|
92 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
93 | "../python-zstandard/zstd/dictBuilder") - | |
|
94 | [-.python-zstandard.c-ext]frameparams.c | |
|
95 | $ cc/name=(short,as_is)- | |
|
96 | /incl=("/python$root/include", "../../mercurial", - | |
|
97 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
98 | "../python-zstandard/zstd/dictBuilder") - | |
|
99 | [-.python-zstandard.c-ext]constants.c | |
|
100 | $ cc/name=(short,as_is)- | |
|
101 | /incl=("/python$root/include", "../../mercurial", - | |
|
102 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
103 | "../python-zstandard/zstd/dictBuilder") - | |
|
104 | [-.python-zstandard.c-ext]decompressionreader.c | |
|
105 | $ cc/name=(short,as_is)- | |
|
106 | /incl=("/python$root/include", "../../mercurial", - | |
|
107 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
108 | "../python-zstandard/zstd/dictBuilder") - | |
|
109 | [-.python-zstandard.c-ext]decompressionwriter.c | |
|
110 | $ cc/name=(short,as_is)- | |
|
111 | /incl=("/python$root/include", "../../mercurial", - | |
|
112 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
113 | "../python-zstandard/zstd/dictBuilder") - | |
|
114 | [-.python-zstandard.c-ext]compressiondict.c | |
|
115 | $ cc/name=(short,as_is)- | |
|
116 | /incl=("/python$root/include", "../../mercurial", - | |
|
117 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
118 | "../python-zstandard/zstd/dictBuilder") - | |
|
119 | [-.python-zstandard.c-ext]decompressobj.c | |
|
120 | $ cc/name=(short,as_is)- | |
|
121 | /incl=("/python$root/include", "../../mercurial", - | |
|
122 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
123 | "../python-zstandard/zstd/dictBuilder") - | |
|
124 | [-.python-zstandard.c-ext]compressionwriter.c | |
|
125 | $ cc/name=(short,as_is)- | |
|
126 | /incl=("/python$root/include", "../../mercurial", - | |
|
127 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
128 | "../python-zstandard/zstd/dictBuilder") - | |
|
129 | [-.python-zstandard.c-ext]compressionreader.c | |
|
130 | $ cc/name=(short,as_is)- | |
|
131 | /incl=("/python$root/include", "../../mercurial", - | |
|
132 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
133 | "../python-zstandard/zstd/dictBuilder") - | |
|
134 | [-.python-zstandard.c-ext]compressoriterator.c | |
|
135 | $ cc/name=(short,as_is)- | |
|
136 | /incl=("/python$root/include", "../../mercurial", - | |
|
137 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
138 | "../python-zstandard/zstd/dictBuilder") - | |
|
139 | [-.python-zstandard.c-ext]compressionparams.c | |
|
140 | $ cc/name=(short,as_is)- | |
|
141 | /incl=("/python$root/include", "../../mercurial", - | |
|
142 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
143 | "../python-zstandard/zstd/dictBuilder") - | |
|
144 | [-.python-zstandard.c-ext]compressionchunker.c | |
|
145 | $ cc/name=(short,as_is)- | |
|
146 | /incl=("/python$root/include", "../../mercurial", - | |
|
147 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
148 | "../python-zstandard/zstd/dictBuilder") - | |
|
149 | [-.python-zstandard.zstd.common]zstd_common.c | |
|
150 | $ cc/name=(short,as_is)- | |
|
151 | /incl=("/python$root/include", "../../mercurial", - | |
|
152 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
153 | "../python-zstandard/zstd/dictBuilder") - | |
|
154 | [-.python-zstandard.zstd.common]error_private.c | |
|
155 | $ cc/name=(short,as_is)- | |
|
156 | /incl=("/python$root/include", "../../mercurial", - | |
|
157 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
158 | "../python-zstandard/zstd/dictBuilder", - | |
|
159 | "../python-zstandard/zstd/common") - | |
|
160 | /warn=disa=TOOFEWACTUALS - | |
|
161 | [-.python-zstandard.zstd.compress]zstd_compress.c | |
|
162 | $ cc/name=(short,as_is)- | |
|
163 | /incl=("/python$root/include", "../../mercurial", - | |
|
164 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
165 | "../python-zstandard/zstd/dictBuilder", - | |
|
166 | "../python-zstandard/zstd/common") - | |
|
167 | /warn=disa=TOOFEWACTUALS - | |
|
168 | [-.python-zstandard.zstd.compress]zstd_ldm.c | |
|
169 | $ cc/name=(short,as_is)- | |
|
170 | /incl=("/python$root/include", "../../mercurial", - | |
|
171 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
172 | "../python-zstandard/zstd/dictBuilder", - | |
|
173 | "../python-zstandard/zstd/common") - | |
|
174 | /warn=disa=TOOFEWACTUALS - | |
|
175 | [-.python-zstandard.zstd.compress]zstd_opt.c | |
|
176 | $ cc/name=(short,as_is)- | |
|
177 | /incl=("/python$root/include", "../../mercurial", - | |
|
178 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
179 | "../python-zstandard/zstd/dictBuilder", - | |
|
180 | "../python-zstandard/zstd/common") - | |
|
181 | /warn=disa=TOOFEWACTUALS - | |
|
182 | [-.python-zstandard.zstd.compress]zstd_lazy.c | |
|
183 | $ cc/name=(short,as_is)- | |
|
184 | /incl=("/python$root/include", "../../mercurial", - | |
|
185 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
186 | "../python-zstandard/zstd/dictBuilder", - | |
|
187 | "../python-zstandard/zstd/common") - | |
|
188 | [-.python-zstandard.zstd.compress]huf_compress.c | |
|
189 | $ cc/name=(short,as_is)- | |
|
190 | /incl=("/python$root/include", "../../mercurial", - | |
|
191 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
192 | "../python-zstandard/zstd/dictBuilder", - | |
|
193 | "../python-zstandard/zstd/common") - | |
|
194 | [-.python-zstandard.zstd.common]entropy_common.c | |
|
195 | $ cc/name=(short,as_is)- | |
|
196 | /incl=("/python$root/include", "../../mercurial", - | |
|
197 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
198 | "../python-zstandard/zstd/dictBuilder", - | |
|
199 | "../python-zstandard/zstd/common") - | |
|
200 | [-.python-zstandard.zstd.compress]fse_compress.c | |
|
201 | $ cc/name=(short,as_is)- | |
|
202 | /incl=("/python$root/include", "../../mercurial", - | |
|
203 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
204 | "../python-zstandard/zstd/dictBuilder", - | |
|
205 | "../python-zstandard/zstd/common") - | |
|
206 | /warn=disa=TOOFEWACTUALS - | |
|
207 | [-.python-zstandard.zstd.compress]zstd_fast.c | |
|
208 | $ cc/name=(short,as_is)- | |
|
209 | /incl=("/python$root/include", "../../mercurial", - | |
|
210 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
211 | "../python-zstandard/zstd/dictBuilder", - | |
|
212 | "../python-zstandard/zstd/common") - | |
|
213 | [-.python-zstandard.zstd.common]fse_decompress.c | |
|
214 | $ cc/name=(short,as_is)- | |
|
215 | /incl=("/python$root/include", "../../mercurial", - | |
|
216 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
217 | "../python-zstandard/zstd/dictBuilder", - | |
|
218 | "../python-zstandard/zstd/common") - | |
|
219 | [-.python-zstandard.zstd.compress]hist.c | |
|
220 | $ cc/name=(short,as_is)- | |
|
221 | /incl=("/python$root/include", "../../mercurial", - | |
|
222 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
223 | "../python-zstandard/zstd/dictBuilder", - | |
|
224 | "../python-zstandard/zstd/common") - | |
|
225 | /warn=disa=TOOFEWACTUALS - | |
|
226 | [-.python-zstandard.zstd.compress]zstd_double_fast.c | |
|
227 | $ cc/name=(short,as_is)- | |
|
228 | /incl=("/python$root/include", "../../mercurial", - | |
|
229 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
230 | "../python-zstandard/zstd/dictBuilder", - | |
|
231 | "../python-zstandard/zstd/common") - | |
|
232 | [-.python-zstandard.zstd.common]pool.c | |
|
233 | $ cc/name=(short,as_is)- | |
|
234 | /incl=("/python$root/include", "../../mercurial", - | |
|
235 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
236 | "../python-zstandard/zstd/dictBuilder", - | |
|
237 | "../python-zstandard/zstd/common") - | |
|
238 | [-.python-zstandard.zstd.common]xxhash.c | |
|
239 | $ cc/name=(short,as_is)- | |
|
240 | /incl=("/python$root/include", "../../mercurial", - | |
|
241 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
242 | "../python-zstandard/zstd/dictBuilder", - | |
|
243 | "../python-zstandard/zstd/common") - | |
|
244 | /warn=disa=TOOFEWACTUALS - | |
|
245 | [-.python-zstandard.zstd.compress]zstd_compress_sequences.c | |
|
246 | $ cc/name=(short,as_is)- | |
|
247 | /incl=("/python$root/include", "../../mercurial", - | |
|
248 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
249 | "../python-zstandard/zstd/dictBuilder", - | |
|
250 | "../python-zstandard/zstd/common") - | |
|
251 | /warn=disa=TOOFEWACTUALS - | |
|
252 | [-.python-zstandard.zstd.compress]zstd_compress_literals.c | |
|
253 | $ cc/name=(short,as_is)- | |
|
254 | /incl=("/python$root/include", "../../mercurial", - | |
|
255 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
256 | "../python-zstandard/zstd/dictBuilder", - | |
|
257 | "../python-zstandard/zstd/common") - | |
|
258 | /warn=disa=TOOFEWACTUALS - | |
|
259 | [-.python-zstandard.zstd.decompress]zstd_ddict.c | |
|
260 | $ cc/name=(short,as_is)- | |
|
261 | /incl=("/python$root/include", "../../mercurial", - | |
|
262 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
263 | "../python-zstandard/zstd/dictBuilder", - | |
|
264 | "../python-zstandard/zstd/common") - | |
|
265 | /warn=disa=TOOFEWACTUALS - | |
|
266 | [-.python-zstandard.zstd.decompress]zstd_decompress.c | |
|
267 | $ cc/name=(short,as_is)- | |
|
268 | /incl=("/python$root/include", "../../mercurial", - | |
|
269 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
270 | "../python-zstandard/zstd/dictBuilder", - | |
|
271 | "../python-zstandard/zstd/common") - | |
|
272 | [-.python-zstandard.zstd.decompress]huf_decompress.c | |
|
273 | $ cc/name=(short,as_is)- | |
|
274 | /incl=("/python$root/include", "../../mercurial", - | |
|
275 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
276 | "../python-zstandard/zstd/dictBuilder", - | |
|
277 | "../python-zstandard/zstd/common") - | |
|
278 | /warn=disa=TOOFEWACTUALS - | |
|
279 | [-.python-zstandard.zstd.decompress]zstd_decompress_block.c | |
|
280 | $ cc/name=(short,as_is)- | |
|
281 | /incl=("/python$root/include", "../../mercurial", - | |
|
282 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
283 | "../python-zstandard/zstd/dictBuilder", - | |
|
284 | "../python-zstandard/zstd/common") - | |
|
285 | /warn=disa=TOOFEWACTUALS - | |
|
286 | [-.python-zstandard.zstd.compress]zstdmt_compress.c | |
|
287 | $ cc/name=(short,as_is)- | |
|
288 | /incl=("/python$root/include", "../../mercurial", - | |
|
289 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
290 | "../python-zstandard/zstd/dictBuilder", - | |
|
291 | "../python-zstandard/zstd/common") - | |
|
292 | [-.python-zstandard.zstd.dictBuilder]cover.c | |
|
293 | $ cc/name=(short,as_is)- | |
|
294 | /incl=("/python$root/include", "../../mercurial", - | |
|
295 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
296 | "../python-zstandard/zstd/dictBuilder", - | |
|
297 | "../python-zstandard/zstd/common") - | |
|
298 | [-.python-zstandard.zstd.dictBuilder]fastcover.c | |
|
299 | $ cc/name=(short,as_is)- | |
|
300 | /incl=("/python$root/include", "../../mercurial", - | |
|
301 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
302 | "../python-zstandard/zstd/dictBuilder", - | |
|
303 | "../python-zstandard/zstd/common") - | |
|
304 | [-.python-zstandard.zstd.dictBuilder]divsufsort.c | |
|
305 | $ cc/name=(short,as_is)- | |
|
306 | /incl=("/python$root/include", "../../mercurial", - | |
|
307 | "../python-zstandard/c-ext", "../python-zstandard/zstd", - | |
|
308 | "../python-zstandard/zstd/dictBuilder", - | |
|
309 | "../python-zstandard/zstd/common") - | |
|
310 | [-.python-zstandard.zstd.dictBuilder]zdict.c | |
|
311 | $ | |
|
312 | $ link/share=base65.exe sys$input/opt | |
|
313 | GSMATCH=lequal,1,1000 | |
|
314 | case_sensitive=YES | |
|
315 | SYMBOL_VECTOR = (PyInit_base85=PROCEDURE) | |
|
316 | SYMBOL_VECTOR = (PYINIT_BASE85/PyInit_base85=PROCEDURE) | |
|
317 | base85.obj | |
|
318 | python$shr/share | |
|
319 | case_sensitive=NO | |
|
320 | $ | |
|
321 | $ link/share=bdiff.exe sys$input/opt | |
|
322 | GSMATCH=lequal,1,1000 | |
|
323 | case_sensitive=YES | |
|
324 | SYMBOL_VECTOR = (PyInit_bdiff=PROCEDURE) | |
|
325 | SYMBOL_VECTOR = (PYINIT_BDIFF/PyInit_bdiff=PROCEDURE) | |
|
326 | bdiff.obj | |
|
327 | bdiff-mod.obj | |
|
328 | xdiffi.obj | |
|
329 | xprepare.obj | |
|
330 | xutils.obj | |
|
331 | python$shr/share | |
|
332 | case_sensitive=NO | |
|
333 | $ | |
|
334 | $ link/share=mpatch.exe sys$input/opt | |
|
335 | GSMATCH=lequal,1,1000 | |
|
336 | case_sensitive=YES | |
|
337 | SYMBOL_VECTOR = (PyInit_mpatch=PROCEDURE) | |
|
338 | SYMBOL_VECTOR = (PYINIT_MPATCH/PyInit_mpatch=PROCEDURE) | |
|
339 | mpatch.obj | |
|
340 | mpatch-mod.obj | |
|
341 | python$shr/share | |
|
342 | case_sensitive=NO | |
|
343 | $ | |
|
344 | $ link/share=osutil.exe sys$input/opt | |
|
345 | GSMATCH=lequal,1,1000 | |
|
346 | case_sensitive=YES | |
|
347 | SYMBOL_VECTOR = (PyInit_osutil=PROCEDURE) | |
|
348 | SYMBOL_VECTOR = (PYINIT_OSUTIL/PyInit_osutil=PROCEDURE) | |
|
349 | osutil.obj | |
|
350 | python$shr/share | |
|
351 | case_sensitive=NO | |
|
352 | $ | |
|
353 | $ link/share=parsers.exe sys$input/opt | |
|
354 | GSMATCH=lequal,1,1000 | |
|
355 | case_sensitive=YES | |
|
356 | SYMBOL_VECTOR = (PyInit_parsers=PROCEDURE) | |
|
357 | SYMBOL_VECTOR = (PYINIT_PARSERS/PyInit_parsers=PROCEDURE) | |
|
358 | parsers.obj | |
|
359 | dirs.obj | |
|
360 | charencode.obj | |
|
361 | pathencode.obj | |
|
362 | revlog.obj | |
|
363 | manifest.obj | |
|
364 | python$shr/share | |
|
365 | case_sensitive=NO | |
|
366 | $ | |
|
367 | $ link/share=zstd.exe sys$input/opt | |
|
368 | GSMATCH=lequal,1,1000 | |
|
369 | case_sensitive=YES | |
|
370 | SYMBOL_VECTOR = (PyInit_zstd=PROCEDURE) | |
|
371 | SYMBOL_VECTOR = (PYINIT_ZSTD/PyInit_zstd=PROCEDURE) | |
|
372 | zstd.obj | |
|
373 | frameparams.obj | |
|
374 | decompressobj.obj | |
|
375 | zstd_common.obj | |
|
376 | compressionreader.obj | |
|
377 | compressionwriter.obj | |
|
378 | compressoriterator.obj | |
|
379 | zstd_compress.obj | |
|
380 | zstd_opt.obj | |
|
381 | zstd_lazy.obj | |
|
382 | huf_compress.obj | |
|
383 | entropy_common.obj | |
|
384 | fse_compress.obj | |
|
385 | fse_decompress.obj | |
|
386 | zstd_fast.obj | |
|
387 | zstd_ldm.obj | |
|
388 | hist.obj | |
|
389 | zstd_double_fast.obj | |
|
390 | zstd_compress_sequences.obj | |
|
391 | zstd_compress_literals.obj | |
|
392 | zstdmt_compress.obj | |
|
393 | compressiondict.obj | |
|
394 | zstd_ddict.obj | |
|
395 | zstd_decompress.obj | |
|
396 | zstd_decompress_block.obj | |
|
397 | zdict.obj | |
|
398 | huf_decompress.obj | |
|
399 | compressionparams.obj | |
|
400 | compressobj.obj | |
|
401 | decompressionreader.obj | |
|
402 | compressionchunker.obj | |
|
403 | decompressionwriter.obj | |
|
404 | decompressor.obj | |
|
405 | decompressoriterator.obj | |
|
406 | compressor.obj | |
|
407 | divsufsort.obj | |
|
408 | bufferutil.obj | |
|
409 | constants.obj | |
|
410 | error_private.obj | |
|
411 | cover.obj | |
|
412 | fastcover.obj | |
|
413 | pool.obj | |
|
414 | xxhash.obj | |
|
415 | python$shr/share | |
|
416 | case_sensitive=NO | |
|
417 | $ | |
|
418 | $ delete/noconf *.obj; | |
|
419 | $ rename zstd.exe [--.mercurial]/log | |
|
420 | $ rename *.exe [--.mercurial.cext]/log | |
|
421 | $ | |
|
422 | $ exit |
@@ -0,0 +1,12 b'' | |||
|
1 | $! | |
|
2 | $! Call OpenVMS editor with a conversion from Unix filename syntax to OpenVMS syntax | |
|
3 | $! | |
|
4 | $ set proc/par=extend | |
|
5 | $ ufile = p1 | |
|
6 | $ tovms :== $ MERCURIAL_ROOT:[vms]tovms | |
|
7 | $ tovms 'ufile' | |
|
8 | $ vfile = tmpfn | |
|
9 | $ deassign sys$input | |
|
10 | $ edit 'vfile' | |
|
11 | $ purge/nolog 'vfile' | |
|
12 | $ exit |
@@ -0,0 +1,76 b'' | |||
|
1 | $! | |
|
2 | $! Custom merge tool to help solve merge conflict in OpenVMS | |
|
3 | $! We recommand to solve this on other system | |
|
4 | $! | |
|
5 | $ set proc/par=extend | |
|
6 | $ mine = p1 | |
|
7 | $ orig = p2 | |
|
8 | $ theirs = p3 | |
|
9 | $ tovms :== $ MERCURIAL_ROOT:[vms]tovms | |
|
10 | $ merged = p1 + ".hgmerge" | |
|
11 | $ tovms 'merged' | |
|
12 | $ merged = tmpfn | |
|
13 | $ | |
|
14 | $ define DECC$UNIX_LEVEL 90 | |
|
15 | $ gdiff3 :== $ MERCURIAL_ROOT:[vms]gdiff3 | |
|
16 | $ gdiff == "$ MERCURIAL_ROOT:[VMS]gdiff" | |
|
17 | $! gdiff -u 'orig' 'mine' | |
|
18 | $! gdiff -u 'orig' 'theirs' | |
|
19 | $ if (f$search("''merged'") .nes. "") then - | |
|
20 | delete 'merged';* | |
|
21 | $ define sys$output 'merged' | |
|
22 | $ gdiff3 -"L" mine -"L" original -"L" theirs -"E" -m 'mine' 'orig' 'theirs' | |
|
23 | $ status = $status | |
|
24 | $ deassign sys$output | |
|
25 | $ convert/fdl=mercurial_root:[vms]stmlf.fdl 'merged' 'merged' | |
|
26 | $ purge/nolog 'merged' | |
|
27 | $! No conflicts found. Merge done. | |
|
28 | $ if status .eqs. "%X006C8009" | |
|
29 | $ then | |
|
30 | $ tovms 'p1' | |
|
31 | $ mine = tmpfn | |
|
32 | $ rename 'merged' 'mine' | |
|
33 | $ purge/nolog 'mine' | |
|
34 | $ write sys$output "Merged ''mine'" | |
|
35 | $ exit 1 | |
|
36 | $ endif | |
|
37 | $ | |
|
38 | $! In all other cases, diff3 has found conflicts, added the proper conflict | |
|
39 | $! markers to the merged file and we should now edit this file. Fire up an | |
|
40 | $! editor with the merged file and let the user manually resolve the conflicts. | |
|
41 | $! When the editor exits successfully, there should be no conflict markers in | |
|
42 | $! the merged file, otherwise we consider this merge failed. | |
|
43 | $ | |
|
44 | $ if status .eqs. "%X006C8013" | |
|
45 | $ then | |
|
46 | $ deassign sys$input | |
|
47 | $ edit 'merged' | |
|
48 | $ open fi 'merged' | |
|
49 | $ loop: | |
|
50 | $ read fi srec/end=endloop | |
|
51 | $ rec7 = f$extract(0, 7, srec) | |
|
52 | $ if rec7 .eqs. "<<<<<<<" then goto conflict | |
|
53 | $ if rec7 .eqs. "|||||||" then goto conflict | |
|
54 | $ if rec7 .eqs. "=======" then goto conflict | |
|
55 | $ if rec7 .eqs. ">>>>>>>" then goto conflict | |
|
56 | $ goto loop | |
|
57 | $ endloop: | |
|
58 | $ close fi | |
|
59 | $ tovms 'p1' | |
|
60 | $ mine = tmpfn | |
|
61 | $ rename 'merged' 'mine' | |
|
62 | $ purge/nolog 'mine' | |
|
63 | $ exit | |
|
64 | $ endif | |
|
65 | $ if (f$search("''merged'") .nes. "") then - | |
|
66 | delete 'merged';* | |
|
67 | $ write sys$output "serious diff3 error, while trying to merge ''mine'" | |
|
68 | $ exit 44 | |
|
69 | $ | |
|
70 | $ conflict: | |
|
71 | $ close fi | |
|
72 | $ if (f$search("''merged'") .nes. "") then - | |
|
73 | delete 'merged';* | |
|
74 | $ write sys$output - | |
|
75 | "conflict markers still found in the working-copy. Merge aborted for ''mine'" | |
|
76 | $ exit 44 |
@@ -0,0 +1,20 b'' | |||
|
1 | $! | |
|
2 | $! Define mercurial_root logical | |
|
3 | $! p1: define parameter (/system for example) | |
|
4 | $! | |
|
5 | $ proc = f$environment("PROCEDURE") | |
|
6 | $ proc = f$parse(proc,"sys$disk:[]",,,"NO_CONCEAL") | |
|
7 | $ cur_dev = f$parse(proc,,,"DEVICE","SYNTAX_ONLY") | |
|
8 | $ cur_dir = f$parse(proc,,,"DIRECTORY","SYNTAX_ONLY") | |
|
9 | $ cur_dir = f$extract(1,f$length(cur_dir)-2,cur_dir) | |
|
10 | $ cur_dir = cur_dir - "[" | |
|
11 | $ cur_dir = cur_dir - "]" | |
|
12 | $ cur_dir = cur_dir - "<" | |
|
13 | $ cur_dir = cur_dir - ">" | |
|
14 | $ | |
|
15 | $! remove trailing .VMS | |
|
16 | $ root_dir = f$extract(0,f$length(cur_dir)-4,cur_dir) | |
|
17 | $ | |
|
18 | $ define/nolog 'p1' /trans=concealed mercurial_root 'cur_dev'['root_dir'.] | |
|
19 | $ | |
|
20 | $ exit |
@@ -0,0 +1,7 b'' | |||
|
1 | $! | |
|
2 | $! Set hg and hgeditor symbol | |
|
3 | $! | |
|
4 | $ HG == "$ PYTHON$ROOT:[BIN]PYTHON /MERCURIAL_ROOT/HG" | |
|
5 | $ HGEDITOR == "@MERCURIAL_ROOT:[VMS]HGEDITOR" | |
|
6 | $ | |
|
7 | $ exit No newline at end of file |
@@ -0,0 +1,12 b'' | |||
|
1 | $! | |
|
2 | $! Mercurial startup file | |
|
3 | $! | |
|
4 | $ proc = f$environment("PROCEDURE") | |
|
5 | $ cur_dev = f$parse(proc,,,"DEVICE","SYNTAX_ONLY") | |
|
6 | $ cur_dir = f$parse(proc,,,"DIRECTORY","SYNTAX_ONLY") | |
|
7 | $! | |
|
8 | $! Define logicals | |
|
9 | $! | |
|
10 | $ @'cur_dev''cur_dir'logicals "/system/exec" | |
|
11 | $ | |
|
12 | $ exit |
@@ -0,0 +1,7 b'' | |||
|
1 | ! | |
|
2 | ! Used by hgmerge.com to convert file to stream_lf record format | |
|
3 | ! | |
|
4 | RECORD | |
|
5 | BLOCK_SPAN yes | |
|
6 | CARRIAGE_CONTROL carriage_return | |
|
7 | FORMAT stream_lf |
|
1 | NO CONTENT: new file 100644 |
@@ -0,0 +1,341 b'' | |||
|
1 | # admin/verify.py - better repository integrity checking for Mercurial | |
|
2 | # | |
|
3 | # Copyright 2023 Octobus <contact@octobus.net> | |
|
4 | # | |
|
5 | # This software may be used and distributed according to the terms of the | |
|
6 | # GNU General Public License version 2 or any later version. | |
|
7 | ||
|
8 | import collections | |
|
9 | import copy | |
|
10 | import functools | |
|
11 | ||
|
12 | from ..i18n import _ | |
|
13 | from .. import error, pycompat, registrar, requirements | |
|
14 | from ..utils import stringutil | |
|
15 | ||
|
16 | ||
|
17 | verify_table = {} | |
|
18 | verify_alias_table = {} | |
|
19 | check = registrar.verify_check(verify_table, verify_alias_table) | |
|
20 | ||
|
21 | ||
|
22 | # Use this to declare options/aliases in the middle of the hierarchy. | |
|
23 | # Checks like these are not run themselves and cannot have a body. | |
|
24 | # For an example, see the `revlogs` check. | |
|
25 | def noop_func(*args, **kwargs): | |
|
26 | return | |
|
27 | ||
|
28 | ||
|
29 | @check(b"working-copy.dirstate", alias=b"dirstate") | |
|
30 | def check_dirstate(ui, repo, **options): | |
|
31 | ui.status(_(b"checking dirstate\n")) | |
|
32 | ||
|
33 | parent1, parent2 = repo.dirstate.parents() | |
|
34 | m1 = repo[parent1].manifest() | |
|
35 | m2 = repo[parent2].manifest() | |
|
36 | errors = 0 | |
|
37 | ||
|
38 | is_narrow = requirements.NARROW_REQUIREMENT in repo.requirements | |
|
39 | narrow_matcher = repo.narrowmatch() if is_narrow else None | |
|
40 | ||
|
41 | for err in repo.dirstate.verify(m1, m2, narrow_matcher): | |
|
42 | ui.warn(err[0] % err[1:]) | |
|
43 | errors += 1 | |
|
44 | ||
|
45 | return errors | |
|
46 | ||
|
47 | ||
|
48 | # Tree of all checks and their associated function | |
|
49 | pyramid = {} | |
|
50 | ||
|
51 | ||
|
52 | def build_pyramid(table, full_pyramid): | |
|
53 | """Create a pyramid of checks of the registered checks. | |
|
54 | It is a name-based hierarchy that can be arbitrarily nested.""" | |
|
55 | for entry, func in sorted(table.items(), key=lambda x: x[0], reverse=True): | |
|
56 | cursor = full_pyramid | |
|
57 | levels = entry.split(b".") | |
|
58 | for level in levels[:-1]: | |
|
59 | current_node = cursor.setdefault(level, {}) | |
|
60 | cursor = current_node | |
|
61 | if cursor.get(levels[-1]) is None: | |
|
62 | cursor[levels[-1]] = (entry, func) | |
|
63 | elif func is not noop_func: | |
|
64 | m = b"intermediate checks need to use `verify.noop_func`" | |
|
65 | raise error.ProgrammingError(m) | |
|
66 | ||
|
67 | ||
|
68 | def find_checks(name, table=None, alias_table=None, full_pyramid=None): | |
|
69 | """Find all checks for a given name and returns a dict of | |
|
70 | (qualified_check_name, check_function) | |
|
71 | ||
|
72 | # Examples | |
|
73 | ||
|
74 | Using a full qualified name: | |
|
75 | "working-copy.dirstate" -> { | |
|
76 | "working-copy.dirstate": CF, | |
|
77 | } | |
|
78 | ||
|
79 | Using a *prefix* of a qualified name: | |
|
80 | "store.revlogs" -> { | |
|
81 | "store.revlogs.changelog": CF, | |
|
82 | "store.revlogs.manifestlog": CF, | |
|
83 | "store.revlogs.filelog": CF, | |
|
84 | } | |
|
85 | ||
|
86 | Using a defined alias: | |
|
87 | "revlogs" -> { | |
|
88 | "store.revlogs.changelog": CF, | |
|
89 | "store.revlogs.manifestlog": CF, | |
|
90 | "store.revlogs.filelog": CF, | |
|
91 | } | |
|
92 | ||
|
93 | Using something that is none of the above will be an error. | |
|
94 | """ | |
|
95 | if table is None: | |
|
96 | table = verify_table | |
|
97 | if alias_table is None: | |
|
98 | alias_table = verify_alias_table | |
|
99 | ||
|
100 | if name == b"full": | |
|
101 | return table | |
|
102 | checks = {} | |
|
103 | ||
|
104 | # is it a full name? | |
|
105 | check = table.get(name) | |
|
106 | ||
|
107 | if check is None: | |
|
108 | # is it an alias? | |
|
109 | qualified_name = alias_table.get(name) | |
|
110 | if qualified_name is not None: | |
|
111 | name = qualified_name | |
|
112 | check = table.get(name) | |
|
113 | else: | |
|
114 | split = name.split(b".", 1) | |
|
115 | if len(split) == 2: | |
|
116 | # split[0] can be an alias | |
|
117 | qualified_name = alias_table.get(split[0]) | |
|
118 | if qualified_name is not None: | |
|
119 | name = b"%s.%s" % (qualified_name, split[1]) | |
|
120 | check = table.get(name) | |
|
121 | else: | |
|
122 | qualified_name = name | |
|
123 | ||
|
124 | # Maybe it's a subtree in the check hierarchy that does not | |
|
125 | # have an explicit alias. | |
|
126 | levels = name.split(b".") | |
|
127 | if full_pyramid is not None: | |
|
128 | if not full_pyramid: | |
|
129 | build_pyramid(table, full_pyramid) | |
|
130 | ||
|
131 | pyramid.clear() | |
|
132 | pyramid.update(full_pyramid.items()) | |
|
133 | else: | |
|
134 | build_pyramid(table, pyramid) | |
|
135 | ||
|
136 | subtree = pyramid | |
|
137 | # Find subtree | |
|
138 | for level in levels: | |
|
139 | subtree = subtree.get(level) | |
|
140 | if subtree is None: | |
|
141 | hint = error.getsimilar(list(alias_table) + list(table), name) | |
|
142 | hint = error.similarity_hint(hint) | |
|
143 | ||
|
144 | raise error.InputError(_(b"unknown check %s" % name), hint=hint) | |
|
145 | ||
|
146 | # Get all checks in that subtree | |
|
147 | if isinstance(subtree, dict): | |
|
148 | stack = list(subtree.items()) | |
|
149 | while stack: | |
|
150 | current_name, entry = stack.pop() | |
|
151 | if isinstance(entry, dict): | |
|
152 | stack.extend(entry.items()) | |
|
153 | else: | |
|
154 | # (qualified_name, func) | |
|
155 | checks[entry[0]] = entry[1] | |
|
156 | else: | |
|
157 | checks[name] = check | |
|
158 | ||
|
159 | return checks | |
|
160 | ||
|
161 | ||
|
162 | def pass_options( | |
|
163 | ui, | |
|
164 | checks, | |
|
165 | options, | |
|
166 | table=None, | |
|
167 | alias_table=None, | |
|
168 | full_pyramid=None, | |
|
169 | ): | |
|
170 | """Given a dict of checks (fully qualified name to function), and a list | |
|
171 | of options as given by the user, pass each option down to the right check | |
|
172 | function.""" | |
|
173 | ui.debug(b"passing options to check functions\n") | |
|
174 | to_modify = collections.defaultdict(dict) | |
|
175 | ||
|
176 | if not checks: | |
|
177 | raise error.Error(_(b"`checks` required")) | |
|
178 | ||
|
179 | for option in sorted(options): | |
|
180 | split = option.split(b":") | |
|
181 | hint = _( | |
|
182 | b"syntax is 'check:option=value', " | |
|
183 | b"eg. revlogs.changelog:copies=yes" | |
|
184 | ) | |
|
185 | option_error = error.InputError( | |
|
186 | _(b"invalid option '%s'") % option, hint=hint | |
|
187 | ) | |
|
188 | if len(split) != 2: | |
|
189 | raise option_error | |
|
190 | ||
|
191 | check_name, option_value = split | |
|
192 | if not option_value: | |
|
193 | raise option_error | |
|
194 | ||
|
195 | split = option_value.split(b"=") | |
|
196 | if len(split) != 2: | |
|
197 | raise option_error | |
|
198 | ||
|
199 | option_name, value = split | |
|
200 | if not value: | |
|
201 | raise option_error | |
|
202 | ||
|
203 | path = b"%s:%s" % (check_name, option_name) | |
|
204 | ||
|
205 | matching_checks = find_checks( | |
|
206 | check_name, | |
|
207 | table=table, | |
|
208 | alias_table=alias_table, | |
|
209 | full_pyramid=full_pyramid, | |
|
210 | ) | |
|
211 | for name in matching_checks: | |
|
212 | check = checks.get(name) | |
|
213 | if check is None: | |
|
214 | msg = _(b"specified option '%s' for unselected check '%s'\n") | |
|
215 | raise error.InputError(msg % (name, option_name)) | |
|
216 | ||
|
217 | assert hasattr(check, "func") # help Pytype | |
|
218 | ||
|
219 | if not hasattr(check.func, "options"): | |
|
220 | raise error.InputError( | |
|
221 | _(b"check '%s' has no option '%s'") % (name, option_name) | |
|
222 | ) | |
|
223 | ||
|
224 | try: | |
|
225 | matching_option = next( | |
|
226 | (o for o in check.func.options if o[0] == option_name) | |
|
227 | ) | |
|
228 | except StopIteration: | |
|
229 | raise error.InputError( | |
|
230 | _(b"check '%s' has no option '%s'") % (name, option_name) | |
|
231 | ) | |
|
232 | ||
|
233 | # transform the argument from cli string to the expected Python type | |
|
234 | _name, typ, _docstring = matching_option | |
|
235 | ||
|
236 | as_typed = None | |
|
237 | if isinstance(typ, bool): | |
|
238 | as_bool = stringutil.parsebool(value) | |
|
239 | if as_bool is None: | |
|
240 | raise error.InputError( | |
|
241 | _(b"'%s' is not a boolean ('%s')") % (path, value) | |
|
242 | ) | |
|
243 | as_typed = as_bool | |
|
244 | elif isinstance(typ, list): | |
|
245 | as_list = stringutil.parselist(value) | |
|
246 | if as_list is None: | |
|
247 | raise error.InputError( | |
|
248 | _(b"'%s' is not a list ('%s')") % (path, value) | |
|
249 | ) | |
|
250 | as_typed = as_list | |
|
251 | else: | |
|
252 | raise error.ProgrammingError(b"unsupported type %s", type(typ)) | |
|
253 | ||
|
254 | if option_name in to_modify[name]: | |
|
255 | raise error.InputError( | |
|
256 | _(b"duplicated option '%s' for '%s'") % (option_name, name) | |
|
257 | ) | |
|
258 | else: | |
|
259 | assert as_typed is not None | |
|
260 | to_modify[name][option_name] = as_typed | |
|
261 | ||
|
262 | # Manage case where a check is set but without command line options | |
|
263 | # it will later be set with default check options values | |
|
264 | for name, f in checks.items(): | |
|
265 | if name not in to_modify: | |
|
266 | to_modify[name] = {} | |
|
267 | ||
|
268 | # Merge default options with command line options | |
|
269 | for check_name, cmd_options in to_modify.items(): | |
|
270 | check = checks.get(check_name) | |
|
271 | func = checks[check_name] | |
|
272 | merged_options = {} | |
|
273 | # help Pytype | |
|
274 | assert check is not None | |
|
275 | assert check.func is not None | |
|
276 | assert hasattr(check.func, "options") | |
|
277 | ||
|
278 | if check.func.options: | |
|
279 | # copy the default value in case it's mutable (list, etc.) | |
|
280 | merged_options = { | |
|
281 | o[0]: copy.deepcopy(o[1]) for o in check.func.options | |
|
282 | } | |
|
283 | if cmd_options: | |
|
284 | for k, v in cmd_options.items(): | |
|
285 | merged_options[k] = v | |
|
286 | options = pycompat.strkwargs(merged_options) | |
|
287 | checks[check_name] = functools.partial(func, **options) | |
|
288 | ui.debug(b"merged options for '%s': '%r'\n" % (check_name, options)) | |
|
289 | ||
|
290 | return checks | |
|
291 | ||
|
292 | ||
|
293 | def get_checks( | |
|
294 | repo, | |
|
295 | ui, | |
|
296 | names=None, | |
|
297 | options=None, | |
|
298 | table=None, | |
|
299 | alias_table=None, | |
|
300 | full_pyramid=None, | |
|
301 | ): | |
|
302 | """Given a list of function names and optionally a list of | |
|
303 | options, return matched checks with merged options (command line options | |
|
304 | values take precedence on default ones) | |
|
305 | ||
|
306 | It runs find checks, then resolve options and returns a dict of matched | |
|
307 | functions with resolved options. | |
|
308 | """ | |
|
309 | funcs = {} | |
|
310 | ||
|
311 | if names is None: | |
|
312 | names = [] | |
|
313 | ||
|
314 | if options is None: | |
|
315 | options = [] | |
|
316 | ||
|
317 | # find checks | |
|
318 | for name in names: | |
|
319 | matched = find_checks( | |
|
320 | name, | |
|
321 | table=table, | |
|
322 | alias_table=alias_table, | |
|
323 | full_pyramid=full_pyramid, | |
|
324 | ) | |
|
325 | matched_names = b", ".join(matched) | |
|
326 | ui.debug(b"found checks '%s' for name '%s'\n" % (matched_names, name)) | |
|
327 | funcs.update(matched) | |
|
328 | ||
|
329 | funcs = {n: functools.partial(f, ui, repo) for n, f in funcs.items()} | |
|
330 | ||
|
331 | # resolve options | |
|
332 | checks = pass_options( | |
|
333 | ui, | |
|
334 | funcs, | |
|
335 | options, | |
|
336 | table=table, | |
|
337 | alias_table=alias_table, | |
|
338 | full_pyramid=full_pyramid, | |
|
339 | ) | |
|
340 | ||
|
341 | return checks |
@@ -0,0 +1,49 b'' | |||
|
1 | # admin_commands.py - command processing for admin* commands | |
|
2 | # | |
|
3 | # Copyright 2022 Mercurial Developers | |
|
4 | # | |
|
5 | # This software may be used and distributed according to the terms of the | |
|
6 | # GNU General Public License version 2 or any later version. | |
|
7 | ||
|
8 | from .i18n import _ | |
|
9 | from .admin import verify | |
|
10 | from . import error, registrar, transaction | |
|
11 | ||
|
12 | ||
|
13 | table = {} | |
|
14 | command = registrar.command(table) | |
|
15 | ||
|
16 | ||
|
17 | @command( | |
|
18 | b'admin::verify', | |
|
19 | [ | |
|
20 | (b'c', b'check', [], _(b'add a check'), _(b'CHECK')), | |
|
21 | (b'o', b'option', [], _(b'pass an option to a check'), _(b'OPTION')), | |
|
22 | ], | |
|
23 | helpcategory=command.CATEGORY_MAINTENANCE, | |
|
24 | ) | |
|
25 | def admin_verify(ui, repo, **opts): | |
|
26 | """verify the integrity of the repository | |
|
27 | ||
|
28 | Alternative UI to `hg verify` with a lot more control over the | |
|
29 | verification process and better error reporting. | |
|
30 | """ | |
|
31 | ||
|
32 | if not repo.url().startswith(b'file:'): | |
|
33 | raise error.Abort(_(b"cannot verify bundle or remote repos")) | |
|
34 | ||
|
35 | if transaction.has_abandoned_transaction(repo): | |
|
36 | ui.warn(_(b"abandoned transaction found - run hg recover\n")) | |
|
37 | ||
|
38 | checks = opts.get("check", []) | |
|
39 | options = opts.get("option", []) | |
|
40 | ||
|
41 | funcs = verify.get_checks(repo, ui, names=checks, options=options) | |
|
42 | ||
|
43 | ui.status(_(b"running %d checks\n") % len(funcs)) | |
|
44 | # Done in two times so the execution is separated from the resolving step | |
|
45 | for name, func in sorted(funcs.items(), key=lambda x: x[0]): | |
|
46 | ui.status(_(b"running %s\n") % name) | |
|
47 | errors = func() | |
|
48 | if errors: | |
|
49 | ui.warn(_(b"found %d errors\n") % len(errors)) |
|
1 | NO CONTENT: new file 100644 | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: new file 100644 | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: new file 100644 | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: new file 100644 | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: new file 100644 | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: new file 100644 | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: new file 100644 | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: new file 100644 | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: new file 100644 | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: new file 100644 | |
The requested commit or file is too big and content was truncated. Show full diff |
@@ -40,7 +40,6 b' from mercurial import (' | |||
|
40 | 40 | extensions, |
|
41 | 41 | hg, |
|
42 | 42 | ui as uimod, |
|
43 | util, | |
|
44 | 43 | ) |
|
45 | 44 | |
|
46 | 45 | basedir = os.path.abspath( |
@@ -66,7 +65,7 b' def runperfcommand(reponame, command, *a' | |||
|
66 | 65 | os.environ["HGRCPATH"] = os.environ.get("ASVHGRCPATH", "") |
|
67 | 66 | # for "historical portability" |
|
68 | 67 | # ui.load() has been available since d83ca85 |
|
69 |
if |
|
|
68 | if hasattr(uimod.ui, "load"): | |
|
70 | 69 | ui = uimod.ui.load() |
|
71 | 70 | else: |
|
72 | 71 | ui = uimod.ui() |
@@ -212,18 +212,14 b' def replacetokens(tokens, opts):' | |||
|
212 | 212 | fn = t.string |
|
213 | 213 | |
|
214 | 214 | # *attr() builtins don't accept byte strings to 2nd argument. |
|
215 | if ( | |
|
216 |
|
|
|
217 |
|
|
|
218 |
|
|
|
219 |
|
|
|
220 |
|
|
|
221 |
|
|
|
222 |
|
|
|
223 | 'wrapclass', | |
|
224 | 'addattr', | |
|
225 | ) | |
|
226 | and (opts['allow-attr-methods'] or not _isop(i - 1, '.')) | |
|
215 | if fn in ( | |
|
216 | 'getattr', | |
|
217 | 'setattr', | |
|
218 | 'hasattr', | |
|
219 | 'safehasattr', | |
|
220 | 'wrapfunction', | |
|
221 | 'wrapclass', | |
|
222 | 'addattr', | |
|
227 | 223 | ): |
|
228 | 224 | arg1idx = _findargnofcall(1) |
|
229 | 225 | if arg1idx is not None: |
@@ -312,12 +308,6 b' def main():' | |||
|
312 | 308 | help='rewrite iteritems() and itervalues()', |
|
313 | 309 | ), |
|
314 | 310 | ap.add_argument( |
|
315 | '--allow-attr-methods', | |
|
316 | action='store_true', | |
|
317 | default=False, | |
|
318 | help='also handle attr*() when they are methods', | |
|
319 | ), | |
|
320 | ap.add_argument( | |
|
321 | 311 | '--treat-as-kwargs', |
|
322 | 312 | nargs="+", |
|
323 | 313 | default=[], |
@@ -328,7 +318,6 b' def main():' | |||
|
328 | 318 | opts = { |
|
329 | 319 | 'dictiter': args.dictiter, |
|
330 | 320 | 'treat-as-kwargs': set(args.treat_as_kwargs), |
|
331 | 'allow-attr-methods': args.allow_attr_methods, | |
|
332 | 321 | } |
|
333 | 322 | for fname in args.files: |
|
334 | 323 | fname = os.path.realpath(fname) |
@@ -383,12 +383,6 b' commonpypats = [' | |||
|
383 | 383 | "use True/False for constant Boolean expression", |
|
384 | 384 | ), |
|
385 | 385 | (r'^\s*if False(:| +and)', 'Remove code instead of using `if False`'), |
|
386 | ( | |
|
387 | r'(?:(?<!def)\s+|\()hasattr\(', | |
|
388 | 'hasattr(foo, bar) is broken on py2, use util.safehasattr(foo, bar) ' | |
|
389 | 'instead', | |
|
390 | r'#.*hasattr-py3-only', | |
|
391 | ), | |
|
392 | 386 | (r'opener\([^)]*\).read\(', "use opener.read() instead"), |
|
393 | 387 | (r'opener\([^)]*\).write\(', "use opener.write() instead"), |
|
394 | 388 | (r'(?i)descend[e]nt', "the proper spelling is descendAnt"), |
@@ -26,7 +26,6 b' cd `hg root`' | |||
|
26 | 26 | # hgext/githelp.py # [attribute-error] [wrong-arg-types] |
|
27 | 27 | # hgext/hgk.py # [attribute-error] |
|
28 | 28 | # hgext/histedit.py # [attribute-error], [wrong-arg-types] |
|
29 | # hgext/infinitepush # using bytes for str literal; scheduled for removal | |
|
30 | 29 | # hgext/keyword.py # [attribute-error] |
|
31 | 30 | # hgext/largefiles/storefactory.py # [attribute-error] |
|
32 | 31 | # hgext/lfs/__init__.py # [attribute-error] |
@@ -88,7 +87,6 b' pytype -V 3.7 --keep-going --jobs auto \\' | |||
|
88 | 87 | -x hgext/githelp.py \ |
|
89 | 88 | -x hgext/hgk.py \ |
|
90 | 89 | -x hgext/histedit.py \ |
|
91 | -x hgext/infinitepush \ | |
|
92 | 90 | -x hgext/keyword.py \ |
|
93 | 91 | -x hgext/largefiles/storefactory.py \ |
|
94 | 92 | -x hgext/lfs/__init__.py \ |
@@ -45,6 +45,7 b' allowsymbolimports = (' | |||
|
45 | 45 | 'mercurial.thirdparty', |
|
46 | 46 | 'mercurial.thirdparty.attr', |
|
47 | 47 | 'mercurial.thirdparty.jaraco.collections', |
|
48 | 'mercurial.thirdparty.tomli', | |
|
48 | 49 | 'mercurial.thirdparty.zope', |
|
49 | 50 | 'mercurial.thirdparty.zope.interface', |
|
50 | 51 | 'typing', |
@@ -12,6 +12,55 b' dependencies = [' | |||
|
12 | 12 | ] |
|
13 | 13 | |
|
14 | 14 | [[package]] |
|
15 | name = "anstream" | |
|
16 | version = "0.3.2" | |
|
17 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
18 | checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" | |
|
19 | dependencies = [ | |
|
20 | "anstyle", | |
|
21 | "anstyle-parse", | |
|
22 | "anstyle-query", | |
|
23 | "anstyle-wincon", | |
|
24 | "colorchoice", | |
|
25 | "is-terminal", | |
|
26 | "utf8parse", | |
|
27 | ] | |
|
28 | ||
|
29 | [[package]] | |
|
30 | name = "anstyle" | |
|
31 | version = "1.0.1" | |
|
32 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
33 | checksum = "3a30da5c5f2d5e72842e00bcb57657162cdabef0931f40e2deb9b4140440cecd" | |
|
34 | ||
|
35 | [[package]] | |
|
36 | name = "anstyle-parse" | |
|
37 | version = "0.2.1" | |
|
38 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
39 | checksum = "938874ff5980b03a87c5524b3ae5b59cf99b1d6bc836848df7bc5ada9643c333" | |
|
40 | dependencies = [ | |
|
41 | "utf8parse", | |
|
42 | ] | |
|
43 | ||
|
44 | [[package]] | |
|
45 | name = "anstyle-query" | |
|
46 | version = "1.0.0" | |
|
47 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
48 | checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" | |
|
49 | dependencies = [ | |
|
50 | "windows-sys", | |
|
51 | ] | |
|
52 | ||
|
53 | [[package]] | |
|
54 | name = "anstyle-wincon" | |
|
55 | version = "1.0.1" | |
|
56 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
57 | checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" | |
|
58 | dependencies = [ | |
|
59 | "anstyle", | |
|
60 | "windows-sys", | |
|
61 | ] | |
|
62 | ||
|
63 | [[package]] | |
|
15 | 64 | name = "assert_cmd" |
|
16 | 65 | version = "2.0.4" |
|
17 | 66 | source = "registry+https://github.com/rust-lang/crates.io-index" |
@@ -26,17 +75,6 b' dependencies = [' | |||
|
26 | 75 | ] |
|
27 | 76 | |
|
28 | 77 | [[package]] |
|
29 | name = "atty" | |
|
30 | version = "0.2.14" | |
|
31 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
32 | checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" | |
|
33 | dependencies = [ | |
|
34 | "hermit-abi", | |
|
35 | "libc", | |
|
36 | "winapi", | |
|
37 | ] | |
|
38 | ||
|
39 | [[package]] | |
|
40 | 78 | name = "autocfg" |
|
41 | 79 | version = "1.1.0" |
|
42 | 80 | source = "registry+https://github.com/rust-lang/crates.io-index" |
@@ -44,9 +82,9 b' checksum = "d468802bab17cbc0cc575e9b053f' | |||
|
44 | 82 | |
|
45 | 83 | [[package]] |
|
46 | 84 | name = "bitflags" |
|
47 |
version = " |
|
|
85 | version = "2.3.3" | |
|
48 | 86 | source = "registry+https://github.com/rust-lang/crates.io-index" |
|
49 | checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" | |
|
87 | checksum = "630be753d4e58660abd17930c71b647fe46c27ea6b63cc59e1e3851406972e42" | |
|
50 | 88 | |
|
51 | 89 | [[package]] |
|
52 | 90 | name = "bstr" |
@@ -60,36 +98,59 b' dependencies = [' | |||
|
60 | 98 | ] |
|
61 | 99 | |
|
62 | 100 | [[package]] |
|
101 | name = "cc" | |
|
102 | version = "1.0.79" | |
|
103 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
104 | checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" | |
|
105 | ||
|
106 | [[package]] | |
|
63 | 107 | name = "clap" |
|
64 |
version = " |
|
|
108 | version = "4.3.17" | |
|
65 | 109 | source = "registry+https://github.com/rust-lang/crates.io-index" |
|
66 | checksum = "d8c93436c21e4698bacadf42917db28b23017027a4deccb35dbe47a7e7840123" | |
|
110 | checksum = "5b0827b011f6f8ab38590295339817b0d26f344aa4932c3ced71b45b0c54b4a9" | |
|
67 | 111 | dependencies = [ |
|
68 | "atty", | |
|
69 | "bitflags", | |
|
112 | "clap_builder", | |
|
70 | 113 | "clap_derive", |
|
71 | "indexmap", | |
|
72 | "lazy_static", | |
|
73 | "os_str_bytes", | |
|
114 | "once_cell", | |
|
115 | ] | |
|
116 | ||
|
117 | [[package]] | |
|
118 | name = "clap_builder" | |
|
119 | version = "4.3.17" | |
|
120 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
121 | checksum = "9441b403be87be858db6a23edb493e7f694761acdc3343d5a0fcaafd304cbc9e" | |
|
122 | dependencies = [ | |
|
123 | "anstream", | |
|
124 | "anstyle", | |
|
125 | "clap_lex", | |
|
74 | 126 | "strsim", |
|
75 | "termcolor", | |
|
76 | "textwrap", | |
|
77 | 127 | ] |
|
78 | 128 | |
|
79 | 129 | [[package]] |
|
80 | 130 | name = "clap_derive" |
|
81 |
version = " |
|
|
131 | version = "4.3.12" | |
|
82 | 132 | source = "registry+https://github.com/rust-lang/crates.io-index" |
|
83 | checksum = "da95d038ede1a964ce99f49cbe27a7fb538d1da595e4b4f70b8c8f338d17bf16" | |
|
133 | checksum = "54a9bb5758fc5dfe728d1019941681eccaf0cf8a4189b692a0ee2f2ecf90a050" | |
|
84 | 134 | dependencies = [ |
|
85 | 135 | "heck", |
|
86 | "proc-macro-error", | |
|
87 | 136 | "proc-macro2", |
|
88 | 137 | "quote", |
|
89 | "syn", | |
|
138 | "syn 2.0.27", | |
|
90 | 139 | ] |
|
91 | 140 | |
|
92 | 141 | [[package]] |
|
142 | name = "clap_lex" | |
|
143 | version = "0.5.0" | |
|
144 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
145 | checksum = "2da6da31387c7e4ef160ffab6d5e7f00c42626fe39aea70a7b0f1773f7dd6c1b" | |
|
146 | ||
|
147 | [[package]] | |
|
148 | name = "colorchoice" | |
|
149 | version = "1.0.0" | |
|
150 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
151 | checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" | |
|
152 | ||
|
153 | [[package]] | |
|
93 | 154 | name = "console" |
|
94 | 155 | version = "0.15.0" |
|
95 | 156 | source = "registry+https://github.com/rust-lang/crates.io-index" |
@@ -127,6 +188,27 b' source = "registry+https://github.com/ru' | |||
|
127 | 188 | checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" |
|
128 | 189 | |
|
129 | 190 | [[package]] |
|
191 | name = "errno" | |
|
192 | version = "0.3.1" | |
|
193 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
194 | checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" | |
|
195 | dependencies = [ | |
|
196 | "errno-dragonfly", | |
|
197 | "libc", | |
|
198 | "windows-sys", | |
|
199 | ] | |
|
200 | ||
|
201 | [[package]] | |
|
202 | name = "errno-dragonfly" | |
|
203 | version = "0.1.2" | |
|
204 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
205 | checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" | |
|
206 | dependencies = [ | |
|
207 | "cc", | |
|
208 | "libc", | |
|
209 | ] | |
|
210 | ||
|
211 | [[package]] | |
|
130 | 212 | name = "fuchsia-cprng" |
|
131 | 213 | version = "0.1.1" |
|
132 | 214 | source = "registry+https://github.com/rust-lang/crates.io-index" |
@@ -146,12 +228,9 b' checksum = "2540771e65fc8cb83cd6e8a237f7' | |||
|
146 | 228 | |
|
147 | 229 | [[package]] |
|
148 | 230 | name = "hermit-abi" |
|
149 |
version = "0. |
|
|
231 | version = "0.3.2" | |
|
150 | 232 | source = "registry+https://github.com/rust-lang/crates.io-index" |
|
151 | checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" | |
|
152 | dependencies = [ | |
|
153 | "libc", | |
|
154 | ] | |
|
233 | checksum = "443144c8cdadd93ebf52ddb4056d257f5b52c04d3c804e657d19eb73fc33668b" | |
|
155 | 234 | |
|
156 | 235 | [[package]] |
|
157 | 236 | name = "indexmap" |
@@ -178,6 +257,17 b' dependencies = [' | |||
|
178 | 257 | ] |
|
179 | 258 | |
|
180 | 259 | [[package]] |
|
260 | name = "is-terminal" | |
|
261 | version = "0.4.9" | |
|
262 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
263 | checksum = "cb0889898416213fab133e1d33a0e5858a48177452750691bde3666d0fdbaf8b" | |
|
264 | dependencies = [ | |
|
265 | "hermit-abi", | |
|
266 | "rustix", | |
|
267 | "windows-sys", | |
|
268 | ] | |
|
269 | ||
|
270 | [[package]] | |
|
181 | 271 | name = "itertools" |
|
182 | 272 | version = "0.10.3" |
|
183 | 273 | source = "registry+https://github.com/rust-lang/crates.io-index" |
@@ -200,9 +290,9 b' checksum = "e2abad23fbc42b3700f2f279844d' | |||
|
200 | 290 | |
|
201 | 291 | [[package]] |
|
202 | 292 | name = "libc" |
|
203 |
version = "0.2.1 |
|
|
293 | version = "0.2.147" | |
|
204 | 294 | source = "registry+https://github.com/rust-lang/crates.io-index" |
|
205 | checksum = "1bf2e165bb3457c8e098ea76f3e3bc9db55f87aa90d52d0e6be741470916aaa4" | |
|
295 | checksum = "b4668fb0ea861c1df094127ac5f1da3409a82116a4ba74fca2e58ef927159bb3" | |
|
206 | 296 | |
|
207 | 297 | [[package]] |
|
208 | 298 | name = "linked-hash-map" |
@@ -211,6 +301,12 b' source = "registry+https://github.com/ru' | |||
|
211 | 301 | checksum = "7fb9b38af92608140b86b693604b9ffcc5824240a484d1ecd4795bacb2fe88f3" |
|
212 | 302 | |
|
213 | 303 | [[package]] |
|
304 | name = "linux-raw-sys" | |
|
305 | version = "0.4.3" | |
|
306 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
307 | checksum = "09fc20d2ca12cb9f044c93e3bd6d32d523e6e2ec3db4f7b2939cd99026ecd3f0" | |
|
308 | ||
|
309 | [[package]] | |
|
214 | 310 | name = "memchr" |
|
215 | 311 | version = "2.4.1" |
|
216 | 312 | source = "registry+https://github.com/rust-lang/crates.io-index" |
@@ -231,18 +327,9 b' dependencies = [' | |||
|
231 | 327 | |
|
232 | 328 | [[package]] |
|
233 | 329 | name = "once_cell" |
|
234 |
version = "1.1 |
|
|
330 | version = "1.18.0" | |
|
235 | 331 | source = "registry+https://github.com/rust-lang/crates.io-index" |
|
236 | checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9" | |
|
237 | ||
|
238 | [[package]] | |
|
239 | name = "os_str_bytes" | |
|
240 | version = "6.0.0" | |
|
241 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
242 | checksum = "8e22443d1643a904602595ba1cd8f7d896afe56d26712531c5ff73a15b2fbf64" | |
|
243 | dependencies = [ | |
|
244 | "memchr", | |
|
245 | ] | |
|
332 | checksum = "dd8b5dd2ae5ed71462c540258bedcb51965123ad7e7ccf4b9a8cafaa4a63576d" | |
|
246 | 333 | |
|
247 | 334 | [[package]] |
|
248 | 335 | name = "predicates" |
@@ -272,43 +359,19 b' dependencies = [' | |||
|
272 | 359 | ] |
|
273 | 360 | |
|
274 | 361 | [[package]] |
|
275 |
name = "proc-macro |
|
|
276 |
version = "1.0. |
|
|
362 | name = "proc-macro2" | |
|
363 | version = "1.0.66" | |
|
277 | 364 | source = "registry+https://github.com/rust-lang/crates.io-index" |
|
278 | checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" | |
|
365 | checksum = "18fb31db3f9bddb2ea821cde30a9f70117e3f119938b5ee630b7403aa6e2ead9" | |
|
279 | 366 | dependencies = [ |
|
280 | "proc-macro-error-attr", | |
|
281 | "proc-macro2", | |
|
282 | "quote", | |
|
283 | "syn", | |
|
284 | "version_check", | |
|
285 | ] | |
|
286 | ||
|
287 | [[package]] | |
|
288 | name = "proc-macro-error-attr" | |
|
289 | version = "1.0.4" | |
|
290 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
291 | checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" | |
|
292 | dependencies = [ | |
|
293 | "proc-macro2", | |
|
294 | "quote", | |
|
295 | "version_check", | |
|
296 | ] | |
|
297 | ||
|
298 | [[package]] | |
|
299 | name = "proc-macro2" | |
|
300 | version = "1.0.36" | |
|
301 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
302 | checksum = "c7342d5883fbccae1cc37a2353b09c87c9b0f3afd73f5fb9bba687a1f733b029" | |
|
303 | dependencies = [ | |
|
304 | "unicode-xid", | |
|
367 | "unicode-ident", | |
|
305 | 368 | ] |
|
306 | 369 | |
|
307 | 370 | [[package]] |
|
308 | 371 | name = "quote" |
|
309 |
version = "1.0.1 |
|
|
372 | version = "1.0.31" | |
|
310 | 373 | source = "registry+https://github.com/rust-lang/crates.io-index" |
|
311 | checksum = "864d3e96a899863136fc6e99f3d7cae289dafe43bf2c5ac19b70df7210c0a145" | |
|
374 | checksum = "5fe8a65d69dd0808184ebb5f836ab526bb259db23c657efa38711b1072ee47f0" | |
|
312 | 375 | dependencies = [ |
|
313 | 376 | "proc-macro2", |
|
314 | 377 | ] |
@@ -383,6 +446,19 b' dependencies = [' | |||
|
383 | 446 | ] |
|
384 | 447 | |
|
385 | 448 | [[package]] |
|
449 | name = "rustix" | |
|
450 | version = "0.38.4" | |
|
451 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
452 | checksum = "0a962918ea88d644592894bc6dc55acc6c0956488adcebbfb6e273506b7fd6e5" | |
|
453 | dependencies = [ | |
|
454 | "bitflags", | |
|
455 | "errno", | |
|
456 | "libc", | |
|
457 | "linux-raw-sys", | |
|
458 | "windows-sys", | |
|
459 | ] | |
|
460 | ||
|
461 | [[package]] | |
|
386 | 462 | name = "ryu" |
|
387 | 463 | version = "1.0.9" |
|
388 | 464 | source = "registry+https://github.com/rust-lang/crates.io-index" |
@@ -405,7 +481,7 b' checksum = "08597e7152fcd306f41838ed3e37' | |||
|
405 | 481 | dependencies = [ |
|
406 | 482 | "proc-macro2", |
|
407 | 483 | "quote", |
|
408 | "syn", | |
|
484 | "syn 1.0.87", | |
|
409 | 485 | ] |
|
410 | 486 | |
|
411 | 487 | [[package]] |
@@ -458,6 +534,17 b' dependencies = [' | |||
|
458 | 534 | ] |
|
459 | 535 | |
|
460 | 536 | [[package]] |
|
537 | name = "syn" | |
|
538 | version = "2.0.27" | |
|
539 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
540 | checksum = "b60f673f44a8255b9c8c657daf66a596d435f2da81a555b06dc644d080ba45e0" | |
|
541 | dependencies = [ | |
|
542 | "proc-macro2", | |
|
543 | "quote", | |
|
544 | "unicode-ident", | |
|
545 | ] | |
|
546 | ||
|
547 | [[package]] | |
|
461 | 548 | name = "tempdir" |
|
462 | 549 | version = "0.3.7" |
|
463 | 550 | source = "registry+https://github.com/rust-lang/crates.io-index" |
@@ -468,15 +555,6 b' dependencies = [' | |||
|
468 | 555 | ] |
|
469 | 556 | |
|
470 | 557 | [[package]] |
|
471 | name = "termcolor" | |
|
472 | version = "1.1.3" | |
|
473 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
474 | checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" | |
|
475 | dependencies = [ | |
|
476 | "winapi-util", | |
|
477 | ] | |
|
478 | ||
|
479 | [[package]] | |
|
480 | 558 | name = "terminal_size" |
|
481 | 559 | version = "0.1.17" |
|
482 | 560 | source = "registry+https://github.com/rust-lang/crates.io-index" |
@@ -493,10 +571,10 b' source = "registry+https://github.com/ru' | |||
|
493 | 571 | checksum = "507e9898683b6c43a9aa55b64259b721b52ba226e0f3779137e50ad114a4c90b" |
|
494 | 572 | |
|
495 | 573 | [[package]] |
|
496 | name = "textwrap" | |
|
497 |
version = " |
|
|
574 | name = "unicode-ident" | |
|
575 | version = "1.0.11" | |
|
498 | 576 | source = "registry+https://github.com/rust-lang/crates.io-index" |
|
499 | checksum = "b1141d4d61095b28419e22cb0bbf02755f5e54e0526f97f1e3d1d160e60885fb" | |
|
577 | checksum = "301abaae475aa91687eb82514b328ab47a211a533026cb25fc3e519b86adfc3c" | |
|
500 | 578 | |
|
501 | 579 | [[package]] |
|
502 | 580 | name = "unicode-xid" |
@@ -505,10 +583,10 b' source = "registry+https://github.com/ru' | |||
|
505 | 583 | checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3" |
|
506 | 584 | |
|
507 | 585 | [[package]] |
|
508 |
name = " |
|
|
509 |
version = "0. |
|
|
586 | name = "utf8parse" | |
|
587 | version = "0.2.1" | |
|
510 | 588 | source = "registry+https://github.com/rust-lang/crates.io-index" |
|
511 | checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" | |
|
589 | checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" | |
|
512 | 590 | |
|
513 | 591 | [[package]] |
|
514 | 592 | name = "wait-timeout" |
@@ -536,21 +614,78 b' source = "registry+https://github.com/ru' | |||
|
536 | 614 | checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" |
|
537 | 615 | |
|
538 | 616 | [[package]] |
|
539 | name = "winapi-util" | |
|
540 | version = "0.1.5" | |
|
541 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
542 | checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" | |
|
543 | dependencies = [ | |
|
544 | "winapi", | |
|
545 | ] | |
|
546 | ||
|
547 | [[package]] | |
|
548 | 617 | name = "winapi-x86_64-pc-windows-gnu" |
|
549 | 618 | version = "0.4.0" |
|
550 | 619 | source = "registry+https://github.com/rust-lang/crates.io-index" |
|
551 | 620 | checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" |
|
552 | 621 | |
|
553 | 622 | [[package]] |
|
623 | name = "windows-sys" | |
|
624 | version = "0.48.0" | |
|
625 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
626 | checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" | |
|
627 | dependencies = [ | |
|
628 | "windows-targets", | |
|
629 | ] | |
|
630 | ||
|
631 | [[package]] | |
|
632 | name = "windows-targets" | |
|
633 | version = "0.48.1" | |
|
634 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
635 | checksum = "05d4b17490f70499f20b9e791dcf6a299785ce8af4d709018206dc5b4953e95f" | |
|
636 | dependencies = [ | |
|
637 | "windows_aarch64_gnullvm", | |
|
638 | "windows_aarch64_msvc", | |
|
639 | "windows_i686_gnu", | |
|
640 | "windows_i686_msvc", | |
|
641 | "windows_x86_64_gnu", | |
|
642 | "windows_x86_64_gnullvm", | |
|
643 | "windows_x86_64_msvc", | |
|
644 | ] | |
|
645 | ||
|
646 | [[package]] | |
|
647 | name = "windows_aarch64_gnullvm" | |
|
648 | version = "0.48.0" | |
|
649 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
650 | checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" | |
|
651 | ||
|
652 | [[package]] | |
|
653 | name = "windows_aarch64_msvc" | |
|
654 | version = "0.48.0" | |
|
655 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
656 | checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" | |
|
657 | ||
|
658 | [[package]] | |
|
659 | name = "windows_i686_gnu" | |
|
660 | version = "0.48.0" | |
|
661 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
662 | checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" | |
|
663 | ||
|
664 | [[package]] | |
|
665 | name = "windows_i686_msvc" | |
|
666 | version = "0.48.0" | |
|
667 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
668 | checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" | |
|
669 | ||
|
670 | [[package]] | |
|
671 | name = "windows_x86_64_gnu" | |
|
672 | version = "0.48.0" | |
|
673 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
674 | checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" | |
|
675 | ||
|
676 | [[package]] | |
|
677 | name = "windows_x86_64_gnullvm" | |
|
678 | version = "0.48.0" | |
|
679 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
680 | checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" | |
|
681 | ||
|
682 | [[package]] | |
|
683 | name = "windows_x86_64_msvc" | |
|
684 | version = "0.48.0" | |
|
685 | source = "registry+https://github.com/rust-lang/crates.io-index" | |
|
686 | checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" | |
|
687 | ||
|
688 | [[package]] | |
|
554 | 689 | name = "yaml-rust" |
|
555 | 690 | version = "0.4.5" |
|
556 | 691 | source = "registry+https://github.com/rust-lang/crates.io-index" |
@@ -10,7 +10,7 b' edition = "2021"' | |||
|
10 | 10 | rust-version = "1.59" |
|
11 | 11 | |
|
12 | 12 | [dependencies] |
|
13 |
clap = { version = " |
|
|
13 | clap = { version = "4.3.17", features = ["derive"] } | |
|
14 | 14 | itertools = "0.10.3" |
|
15 | 15 | regex = "1.5.5" |
|
16 | 16 | similar = { version="2.1.0", features = ["bytes"] } |
@@ -456,7 +456,7 b' def gettimer(ui, opts=None):' | |||
|
456 | 456 | return functools.partial(stub_timer, fm), fm |
|
457 | 457 | |
|
458 | 458 | # experimental config: perf.all-timing |
|
459 |
displayall = ui.configbool(b"perf", b"all-timing", |
|
|
459 | displayall = ui.configbool(b"perf", b"all-timing", True) | |
|
460 | 460 | |
|
461 | 461 | # experimental config: perf.run-limits |
|
462 | 462 | limitspec = ui.configlist(b"perf", b"run-limits", []) |
@@ -3479,7 +3479,7 b' def perfrevlogwrite(ui, repo, file_=None' | |||
|
3479 | 3479 | |
|
3480 | 3480 | # get a formatter |
|
3481 | 3481 | fm = ui.formatter(b'perf', opts) |
|
3482 |
displayall = ui.configbool(b"perf", b"all-timing", |
|
|
3482 | displayall = ui.configbool(b"perf", b"all-timing", True) | |
|
3483 | 3483 | |
|
3484 | 3484 | # print individual details if requested |
|
3485 | 3485 | if opts['details']: |
@@ -3549,7 +3549,10 b' def _timeonewrite(' | |||
|
3549 | 3549 | timings = [] |
|
3550 | 3550 | tr = _faketr() |
|
3551 | 3551 | with _temprevlog(ui, orig, startrev) as dest: |
|
3552 | dest._lazydeltabase = lazydeltabase | |
|
3552 | if hasattr(dest, "delta_config"): | |
|
3553 | dest.delta_config.lazy_delta_base = lazydeltabase | |
|
3554 | else: | |
|
3555 | dest._lazydeltabase = lazydeltabase | |
|
3553 | 3556 | revs = list(orig.revs(startrev, stoprev)) |
|
3554 | 3557 | total = len(revs) |
|
3555 | 3558 | topic = 'adding' |
@@ -3717,11 +3720,15 b' def perfrevlogchunks(ui, repo, file_=Non' | |||
|
3717 | 3720 | |
|
3718 | 3721 | rl = cmdutil.openrevlog(repo, b'perfrevlogchunks', file_, opts) |
|
3719 | 3722 | |
|
3720 |
# _chunkraw was renamed to _getsegmentforrevs |
|
|
3723 | # - _chunkraw was renamed to _getsegmentforrevs | |
|
3724 | # - _getsegmentforrevs was moved on the inner object | |
|
3721 | 3725 | try: |
|
3722 | segmentforrevs = rl._getsegmentforrevs | |
|
3726 | segmentforrevs = rl._inner.get_segment_for_revs | |
|
3723 | 3727 | except AttributeError: |
|
3724 | segmentforrevs = rl._chunkraw | |
|
3728 | try: | |
|
3729 | segmentforrevs = rl._getsegmentforrevs | |
|
3730 | except AttributeError: | |
|
3731 | segmentforrevs = rl._chunkraw | |
|
3725 | 3732 | |
|
3726 | 3733 | # Verify engines argument. |
|
3727 | 3734 | if engines: |
@@ -3744,62 +3751,101 b' def perfrevlogchunks(ui, repo, file_=Non' | |||
|
3744 | 3751 | |
|
3745 | 3752 | revs = list(rl.revs(startrev, len(rl) - 1)) |
|
3746 | 3753 | |
|
3747 | def rlfh(rl): | |
|
3748 | if rl._inline: | |
|
3754 | @contextlib.contextmanager | |
|
3755 | def reading(rl): | |
|
3756 | if getattr(rl, 'reading', None) is not None: | |
|
3757 | with rl.reading(): | |
|
3758 | yield None | |
|
3759 | elif rl._inline: | |
|
3749 | 3760 | indexfile = getattr(rl, '_indexfile', None) |
|
3750 | 3761 | if indexfile is None: |
|
3751 | 3762 | # compatibility with <= hg-5.8 |
|
3752 | 3763 | indexfile = getattr(rl, 'indexfile') |
|
3753 |
|
|
|
3764 | yield getsvfs(repo)(indexfile) | |
|
3754 | 3765 | else: |
|
3755 | 3766 | datafile = getattr(rl, 'datafile', getattr(rl, 'datafile')) |
|
3756 |
|
|
|
3767 | yield getsvfs(repo)(datafile) | |
|
3768 | ||
|
3769 | if getattr(rl, 'reading', None) is not None: | |
|
3770 | ||
|
3771 | @contextlib.contextmanager | |
|
3772 | def lazy_reading(rl): | |
|
3773 | with rl.reading(): | |
|
3774 | yield | |
|
3775 | ||
|
3776 | else: | |
|
3777 | ||
|
3778 | @contextlib.contextmanager | |
|
3779 | def lazy_reading(rl): | |
|
3780 | yield | |
|
3757 | 3781 | |
|
3758 | 3782 | def doread(): |
|
3759 | 3783 | rl.clearcaches() |
|
3760 | 3784 | for rev in revs: |
|
3761 | segmentforrevs(rev, rev) | |
|
3785 | with lazy_reading(rl): | |
|
3786 | segmentforrevs(rev, rev) | |
|
3762 | 3787 | |
|
3763 | 3788 | def doreadcachedfh(): |
|
3764 | 3789 | rl.clearcaches() |
|
3765 | fh = rlfh(rl) | |
|
3766 | for rev in revs: | |
|
3767 | segmentforrevs(rev, rev, df=fh) | |
|
3790 | with reading(rl) as fh: | |
|
3791 | if fh is not None: | |
|
3792 | for rev in revs: | |
|
3793 | segmentforrevs(rev, rev, df=fh) | |
|
3794 | else: | |
|
3795 | for rev in revs: | |
|
3796 | segmentforrevs(rev, rev) | |
|
3768 | 3797 | |
|
3769 | 3798 | def doreadbatch(): |
|
3770 | 3799 | rl.clearcaches() |
|
3771 | segmentforrevs(revs[0], revs[-1]) | |
|
3800 | with lazy_reading(rl): | |
|
3801 | segmentforrevs(revs[0], revs[-1]) | |
|
3772 | 3802 | |
|
3773 | 3803 | def doreadbatchcachedfh(): |
|
3774 | 3804 | rl.clearcaches() |
|
3775 | fh = rlfh(rl) | |
|
3776 | segmentforrevs(revs[0], revs[-1], df=fh) | |
|
3805 | with reading(rl) as fh: | |
|
3806 | if fh is not None: | |
|
3807 | segmentforrevs(revs[0], revs[-1], df=fh) | |
|
3808 | else: | |
|
3809 | segmentforrevs(revs[0], revs[-1]) | |
|
3777 | 3810 | |
|
3778 | 3811 | def dochunk(): |
|
3779 | 3812 | rl.clearcaches() |
|
3780 | fh = rlfh(rl) | |
|
3781 | for rev in revs: | |
|
3782 | rl._chunk(rev, df=fh) | |
|
3813 | # chunk used to be available directly on the revlog | |
|
3814 | _chunk = getattr(rl, '_inner', rl)._chunk | |
|
3815 | with reading(rl) as fh: | |
|
3816 | if fh is not None: | |
|
3817 | for rev in revs: | |
|
3818 | _chunk(rev, df=fh) | |
|
3819 | else: | |
|
3820 | for rev in revs: | |
|
3821 | _chunk(rev) | |
|
3783 | 3822 | |
|
3784 | 3823 | chunks = [None] |
|
3785 | 3824 | |
|
3786 | 3825 | def dochunkbatch(): |
|
3787 | 3826 | rl.clearcaches() |
|
3788 | fh = rlfh(rl) | |
|
3789 | # Save chunks as a side-effect. | |
|
3790 | chunks[0] = rl._chunks(revs, df=fh) | |
|
3827 | _chunks = getattr(rl, '_inner', rl)._chunks | |
|
3828 | with reading(rl) as fh: | |
|
3829 | if fh is not None: | |
|
3830 | # Save chunks as a side-effect. | |
|
3831 | chunks[0] = _chunks(revs, df=fh) | |
|
3832 | else: | |
|
3833 | # Save chunks as a side-effect. | |
|
3834 | chunks[0] = _chunks(revs) | |
|
3791 | 3835 | |
|
3792 | 3836 | def docompress(compressor): |
|
3793 | 3837 | rl.clearcaches() |
|
3794 | 3838 | |
|
3839 | compressor_holder = getattr(rl, '_inner', rl) | |
|
3840 | ||
|
3795 | 3841 | try: |
|
3796 | 3842 | # Swap in the requested compression engine. |
|
3797 | oldcompressor = rl._compressor | |
|
3798 | rl._compressor = compressor | |
|
3843 | oldcompressor = compressor_holder._compressor | |
|
3844 | compressor_holder._compressor = compressor | |
|
3799 | 3845 | for chunk in chunks[0]: |
|
3800 | 3846 | rl.compress(chunk) |
|
3801 | 3847 | finally: |
|
3802 | rl._compressor = oldcompressor | |
|
3848 | compressor_holder._compressor = oldcompressor | |
|
3803 | 3849 | |
|
3804 | 3850 | benches = [ |
|
3805 | 3851 | (lambda: doread(), b'read'), |
@@ -3857,13 +3903,29 b' def perfrevlogrevision(ui, repo, file_, ' | |||
|
3857 | 3903 | |
|
3858 | 3904 | # _chunkraw was renamed to _getsegmentforrevs. |
|
3859 | 3905 | try: |
|
3860 | segmentforrevs = r._getsegmentforrevs | |
|
3906 | segmentforrevs = r._inner.get_segment_for_revs | |
|
3861 | 3907 | except AttributeError: |
|
3862 | segmentforrevs = r._chunkraw | |
|
3908 | try: | |
|
3909 | segmentforrevs = r._getsegmentforrevs | |
|
3910 | except AttributeError: | |
|
3911 | segmentforrevs = r._chunkraw | |
|
3863 | 3912 | |
|
3864 | 3913 | node = r.lookup(rev) |
|
3865 | 3914 | rev = r.rev(node) |
|
3866 | 3915 | |
|
3916 | if getattr(r, 'reading', None) is not None: | |
|
3917 | ||
|
3918 | @contextlib.contextmanager | |
|
3919 | def lazy_reading(r): | |
|
3920 | with r.reading(): | |
|
3921 | yield | |
|
3922 | ||
|
3923 | else: | |
|
3924 | ||
|
3925 | @contextlib.contextmanager | |
|
3926 | def lazy_reading(r): | |
|
3927 | yield | |
|
3928 | ||
|
3867 | 3929 | def getrawchunks(data, chain): |
|
3868 | 3930 | start = r.start |
|
3869 | 3931 | length = r.length |
@@ -3897,7 +3959,8 b' def perfrevlogrevision(ui, repo, file_, ' | |||
|
3897 | 3959 | if not cache: |
|
3898 | 3960 | r.clearcaches() |
|
3899 | 3961 | for item in slicedchain: |
|
3900 | segmentforrevs(item[0], item[-1]) | |
|
3962 | with lazy_reading(r): | |
|
3963 | segmentforrevs(item[0], item[-1]) | |
|
3901 | 3964 | |
|
3902 | 3965 | def doslice(r, chain, size): |
|
3903 | 3966 | for s in slicechunk(r, chain, targetsize=size): |
@@ -3935,13 +3998,19 b' def perfrevlogrevision(ui, repo, file_, ' | |||
|
3935 | 3998 | |
|
3936 | 3999 | size = r.length(rev) |
|
3937 | 4000 | chain = r._deltachain(rev)[0] |
|
3938 | if not getattr(r, '_withsparseread', False): | |
|
4001 | ||
|
4002 | with_sparse_read = False | |
|
4003 | if hasattr(r, 'data_config'): | |
|
4004 | with_sparse_read = r.data_config.with_sparse_read | |
|
4005 | elif hasattr(r, '_withsparseread'): | |
|
4006 | with_sparse_read = r._withsparseread | |
|
4007 | if with_sparse_read: | |
|
3939 | 4008 | slicedchain = (chain,) |
|
3940 | 4009 | else: |
|
3941 | 4010 | slicedchain = tuple(slicechunk(r, chain, targetsize=size)) |
|
3942 | 4011 | data = [segmentforrevs(seg[0], seg[-1])[1] for seg in slicedchain] |
|
3943 | 4012 | rawchunks = getrawchunks(data, slicedchain) |
|
3944 | bins = r._chunks(chain) | |
|
4013 | bins = r._inner._chunks(chain) | |
|
3945 | 4014 | text = bytes(bins[0]) |
|
3946 | 4015 | bins = bins[1:] |
|
3947 | 4016 | text = mdiff.patches(text, bins) |
@@ -3952,7 +4021,7 b' def perfrevlogrevision(ui, repo, file_, ' | |||
|
3952 | 4021 | (lambda: doread(chain), b'read'), |
|
3953 | 4022 | ] |
|
3954 | 4023 | |
|
3955 |
if |
|
|
4024 | if with_sparse_read: | |
|
3956 | 4025 | slicing = (lambda: doslice(r, chain, size), b'slice-sparse-chain') |
|
3957 | 4026 | benches.append(slicing) |
|
3958 | 4027 | |
@@ -4541,7 +4610,8 b' def uisetup(ui):' | |||
|
4541 | 4610 | ) |
|
4542 | 4611 | return orig(repo, cmd, file_, opts) |
|
4543 | 4612 | |
|
4544 | extensions.wrapfunction(cmdutil, b'openrevlog', openrevlog) | |
|
4613 | name = _sysstr(b'openrevlog') | |
|
4614 | extensions.wrapfunction(cmdutil, name, openrevlog) | |
|
4545 | 4615 | |
|
4546 | 4616 | |
|
4547 | 4617 | @command( |
@@ -337,9 +337,6 b' test-import-unknown.t' | |||
|
337 | 337 | test-import.t |
|
338 | 338 | test-imports-checker.t |
|
339 | 339 | test-incoming-outgoing.t |
|
340 | test-infinitepush-bundlestore.t | |
|
341 | test-infinitepush-ci.t | |
|
342 | test-infinitepush.t | |
|
343 | 340 | test-inherit-mode.t |
|
344 | 341 | test-init.t |
|
345 | 342 | test-install.t |
@@ -299,7 +299,7 b' class filefixupstate:' | |||
|
299 | 299 | 4. read results from "finalcontents", or call getfinalcontent |
|
300 | 300 | """ |
|
301 | 301 | |
|
302 |
def __init__(self, fctxs, path, ui=None, opts |
|
|
302 | def __init__(self, fctxs, path, ui=None, **opts): | |
|
303 | 303 | """([fctx], ui or None) -> None |
|
304 | 304 | |
|
305 | 305 | fctxs should be linear, and sorted by topo order - oldest first. |
@@ -308,7 +308,7 b' class filefixupstate:' | |||
|
308 | 308 | self.fctxs = fctxs |
|
309 | 309 | self.path = path |
|
310 | 310 | self.ui = ui or nullui() |
|
311 |
self.opts = opts |
|
|
311 | self.opts = opts | |
|
312 | 312 | |
|
313 | 313 | # following fields are built from fctxs. they exist for perf reason |
|
314 | 314 | self.contents = [f.data() for f in fctxs] |
@@ -375,7 +375,7 b' class filefixupstate:' | |||
|
375 | 375 | % (short(self.fctxs[idx].node()), a1, a2, len(blines)) |
|
376 | 376 | ) |
|
377 | 377 | self.linelog.replacelines(rev, a1, a2, b1, b2) |
|
378 |
if self.opts.get( |
|
|
378 | if self.opts.get('edit_lines', False): | |
|
379 | 379 | self.finalcontents = self._checkoutlinelogwithedits() |
|
380 | 380 | else: |
|
381 | 381 | self.finalcontents = self._checkoutlinelog() |
@@ -668,7 +668,7 b' class fixupstate:' | |||
|
668 | 668 | 4. call commit, to commit changes to hg database |
|
669 | 669 | """ |
|
670 | 670 | |
|
671 |
def __init__(self, stack, ui=None, opts |
|
|
671 | def __init__(self, stack, ui=None, **opts): | |
|
672 | 672 | """([ctx], ui or None) -> None |
|
673 | 673 | |
|
674 | 674 | stack: should be linear, and sorted by topo order - oldest first. |
@@ -676,7 +676,7 b' class fixupstate:' | |||
|
676 | 676 | """ |
|
677 | 677 | assert stack |
|
678 | 678 | self.ui = ui or nullui() |
|
679 |
self.opts = opts |
|
|
679 | self.opts = opts | |
|
680 | 680 | self.stack = stack |
|
681 | 681 | self.repo = stack[-1].repo().unfiltered() |
|
682 | 682 | |
@@ -696,7 +696,7 b' class fixupstate:' | |||
|
696 | 696 | self.paths = [] |
|
697 | 697 | # but if --edit-lines is used, the user may want to edit files |
|
698 | 698 | # even if they are not modified |
|
699 |
editopt = self.opts.get( |
|
|
699 | editopt = self.opts.get('edit_lines') | |
|
700 | 700 | if not self.status.modified and editopt and match: |
|
701 | 701 | interestingpaths = match.files() |
|
702 | 702 | else: |
@@ -720,7 +720,7 b' class fixupstate:' | |||
|
720 | 720 | continue |
|
721 | 721 | seenfctxs.update(fctxs[1:]) |
|
722 | 722 | self.fctxmap[path] = ctx2fctx |
|
723 |
fstate = filefixupstate(fctxs, path, ui=self.ui, |
|
|
723 | fstate = filefixupstate(fctxs, path, ui=self.ui, **self.opts) | |
|
724 | 724 | if fm is not None: |
|
725 | 725 | fm.startitem() |
|
726 | 726 | fm.plain(b'showing changes for ') |
@@ -873,7 +873,7 b' class fixupstate:' | |||
|
873 | 873 | # be slow. in absorb's case, no need to invalidate fsmonitorstate. |
|
874 | 874 | noop = lambda: 0 |
|
875 | 875 | restore = noop |
|
876 |
if |
|
|
876 | if hasattr(dirstate, '_fsmonitorstate'): | |
|
877 | 877 | bak = dirstate._fsmonitorstate.invalidate |
|
878 | 878 | |
|
879 | 879 | def restore(): |
@@ -1009,7 +1009,7 b' def overlaydiffcontext(ctx, chunks):' | |||
|
1009 | 1009 | return overlaycontext(memworkingcopy, ctx) |
|
1010 | 1010 | |
|
1011 | 1011 | |
|
1012 |
def absorb(ui, repo, stack=None, targetctx=None, pats=None, opts |
|
|
1012 | def absorb(ui, repo, stack=None, targetctx=None, pats=None, **opts): | |
|
1013 | 1013 | """pick fixup chunks from targetctx, apply them to stack. |
|
1014 | 1014 | |
|
1015 | 1015 | if targetctx is None, the working copy context will be used. |
@@ -1036,22 +1036,21 b' def absorb(ui, repo, stack=None, targetc' | |||
|
1036 | 1036 | targetctx = repo[None] |
|
1037 | 1037 | if pats is None: |
|
1038 | 1038 | pats = () |
|
1039 | if opts is None: | |
|
1040 | opts = {} | |
|
1041 | state = fixupstate(stack, ui=ui, opts=opts) | |
|
1042 | matcher = scmutil.match(targetctx, pats, opts) | |
|
1043 | if opts.get(b'interactive'): | |
|
1039 | ||
|
1040 | state = fixupstate(stack, ui=ui, **opts) | |
|
1041 | matcher = scmutil.match(targetctx, pats, pycompat.byteskwargs(opts)) | |
|
1042 | if opts.get('interactive'): | |
|
1044 | 1043 | diff = patch.diff(repo, stack[-1].node(), targetctx.node(), matcher) |
|
1045 | 1044 | origchunks = patch.parsepatch(diff) |
|
1046 | 1045 | chunks = cmdutil.recordfilter(ui, origchunks, matcher)[0] |
|
1047 | 1046 | targetctx = overlaydiffcontext(stack[-1], chunks) |
|
1048 |
if opts.get( |
|
|
1047 | if opts.get('edit_lines'): | |
|
1049 | 1048 | # If we're going to open the editor, don't ask the user to confirm |
|
1050 | 1049 | # first |
|
1051 |
opts[ |
|
|
1050 | opts['apply_changes'] = True | |
|
1052 | 1051 | fm = None |
|
1053 |
if opts.get( |
|
|
1054 | fm = ui.formatter(b'absorb', opts) | |
|
1052 | if opts.get('print_changes') or not opts.get('apply_changes'): | |
|
1053 | fm = ui.formatter(b'absorb', pycompat.byteskwargs(opts)) | |
|
1055 | 1054 | state.diffwith(targetctx, matcher, fm) |
|
1056 | 1055 | if fm is not None: |
|
1057 | 1056 | fm.startitem() |
@@ -1074,9 +1073,9 b' def absorb(ui, repo, stack=None, targetc' | |||
|
1074 | 1073 | label=b'absorb.description', |
|
1075 | 1074 | ) |
|
1076 | 1075 | fm.end() |
|
1077 |
if not opts.get( |
|
|
1076 | if not opts.get('dry_run'): | |
|
1078 | 1077 | if ( |
|
1079 |
not opts.get( |
|
|
1078 | not opts.get('apply_changes') | |
|
1080 | 1079 | and state.ctxaffected |
|
1081 | 1080 | and ui.promptchoice( |
|
1082 | 1081 | b"apply changes (y/N)? $$ &Yes $$ &No", default=1 |
@@ -1154,12 +1153,10 b' def absorbcmd(ui, repo, *pats, **opts):' | |||
|
1154 | 1153 | |
|
1155 | 1154 | Returns 0 on success, 1 if all chunks were ignored and nothing amended. |
|
1156 | 1155 | """ |
|
1157 | opts = pycompat.byteskwargs(opts) | |
|
1158 | ||
|
1159 | 1156 | with repo.wlock(), repo.lock(): |
|
1160 |
if not opts[ |
|
|
1157 | if not opts['dry_run']: | |
|
1161 | 1158 | cmdutil.checkunfinished(repo) |
|
1162 | 1159 | |
|
1163 |
state = absorb(ui, repo, pats=pats, |
|
|
1160 | state = absorb(ui, repo, pats=pats, **opts) | |
|
1164 | 1161 | if sum(s[0] for s in state.chunkstats.values()) == 0: |
|
1165 | 1162 | return 1 |
@@ -56,9 +56,8 b' def extsetup(ui):' | |||
|
56 | 56 | |
|
57 | 57 | def mvcheck(orig, ui, repo, *pats, **opts): |
|
58 | 58 | """Hook to check for moves at commit time""" |
|
59 | opts = pycompat.byteskwargs(opts) | |
|
60 | 59 | renames = None |
|
61 |
disabled = opts.pop( |
|
|
60 | disabled = opts.pop('no_automv', False) | |
|
62 | 61 | with repo.wlock(): |
|
63 | 62 | if not disabled: |
|
64 | 63 | threshold = ui.configint(b'automv', b'similarity') |
@@ -67,7 +66,9 b' def mvcheck(orig, ui, repo, *pats, **opt' | |||
|
67 | 66 | _(b'automv.similarity must be between 0 and 100') |
|
68 | 67 | ) |
|
69 | 68 | if threshold > 0: |
|
70 |
match = scmutil.match( |
|
|
69 | match = scmutil.match( | |
|
70 | repo[None], pats, pycompat.byteskwargs(opts) | |
|
71 | ) | |
|
71 | 72 | added, removed = _interestingfiles(repo, match) |
|
72 | 73 | uipathfn = scmutil.getuipathfn(repo, legacyrelativevalue=True) |
|
73 | 74 | renames = _findrenames( |
@@ -82,7 +83,7 b' def mvcheck(orig, ui, repo, *pats, **opt' | |||
|
82 | 83 | # current extension structure, and this is not worse than what |
|
83 | 84 | # happened before. |
|
84 | 85 | scmutil._markchanges(repo, (), (), renames) |
|
85 |
return orig(ui, repo, *pats, ** |
|
|
86 | return orig(ui, repo, *pats, **opts) | |
|
86 | 87 | |
|
87 | 88 | |
|
88 | 89 | def _interestingfiles(repo, matcher): |
@@ -103,5 +103,5 b' def extsetup(ui):' | |||
|
103 | 103 | ) |
|
104 | 104 | return |
|
105 | 105 | |
|
106 |
extensions.wrapfunction(graphmod, |
|
|
107 |
extensions.wrapfunction(templatekw, |
|
|
106 | extensions.wrapfunction(graphmod, 'outputgraph', outputprettygraph) | |
|
107 | extensions.wrapfunction(templatekw, 'getgraphnode', getprettygraphnode) |
@@ -67,48 +67,6 b" testedwith = b'ships-with-hg-core'" | |||
|
67 | 67 | cmdtable = {} |
|
68 | 68 | command = registrar.command(cmdtable) |
|
69 | 69 | |
|
70 | configtable = {} | |
|
71 | configitem = registrar.configitem(configtable) | |
|
72 | ||
|
73 | configitem( | |
|
74 | b'blackbox', | |
|
75 | b'dirty', | |
|
76 | default=False, | |
|
77 | ) | |
|
78 | configitem( | |
|
79 | b'blackbox', | |
|
80 | b'maxsize', | |
|
81 | default=b'1 MB', | |
|
82 | ) | |
|
83 | configitem( | |
|
84 | b'blackbox', | |
|
85 | b'logsource', | |
|
86 | default=False, | |
|
87 | ) | |
|
88 | configitem( | |
|
89 | b'blackbox', | |
|
90 | b'maxfiles', | |
|
91 | default=7, | |
|
92 | ) | |
|
93 | configitem( | |
|
94 | b'blackbox', | |
|
95 | b'track', | |
|
96 | default=lambda: [b'*'], | |
|
97 | ) | |
|
98 | # Debug config option that also display the blackbox output on stderr | |
|
99 | # (in addition to writing it to disk) | |
|
100 | configitem( | |
|
101 | b'blackbox', | |
|
102 | b'debug.to-stderr', | |
|
103 | default=False, | |
|
104 | ) | |
|
105 | configitem( | |
|
106 | b'blackbox', | |
|
107 | b'ignore', | |
|
108 | default=lambda: [b'chgserver', b'cmdserver', b'extension'], | |
|
109 | ) | |
|
110 | configitem(b'blackbox', b'date-format', default=b'') | |
|
111 | ||
|
112 | 70 | _lastlogger = loggingutil.proxylogger() |
|
113 | 71 | |
|
114 | 72 |
@@ -117,8 +117,8 b' def cwd_at_bookmark(repo, mark):' | |||
|
117 | 117 | |
|
118 | 118 | |
|
119 | 119 | def uisetup(ui): |
|
120 |
extensions.wrapfunction(bookmarks, |
|
|
121 |
extensions.wrapfunction(bookmarks, |
|
|
120 | extensions.wrapfunction(bookmarks, 'update', bookmarks_update) | |
|
121 | extensions.wrapfunction(bookmarks, 'addbookmarks', bookmarks_addbookmarks) | |
|
122 | 122 | extensions.wrapcommand(commands.table, b'commit', commands_commit) |
|
123 | 123 | extensions.wrapcommand(commands.table, b'pull', commands_pull) |
|
124 | 124 | if not ui.configbool(MY_NAME, b'enable-branches'): |
@@ -766,13 +766,13 b' class cookietransportrequest:' | |||
|
766 | 766 | # inheritance with a new-style class. |
|
767 | 767 | class cookietransport(cookietransportrequest, xmlrpclib.Transport): |
|
768 | 768 | def __init__(self, use_datetime=0): |
|
769 |
if |
|
|
769 | if hasattr(xmlrpclib.Transport, "__init__"): | |
|
770 | 770 | xmlrpclib.Transport.__init__(self, use_datetime) |
|
771 | 771 | |
|
772 | 772 | |
|
773 | 773 | class cookiesafetransport(cookietransportrequest, xmlrpclib.SafeTransport): |
|
774 | 774 | def __init__(self, use_datetime=0): |
|
775 |
if |
|
|
775 | if hasattr(xmlrpclib.Transport, "__init__"): | |
|
776 | 776 | xmlrpclib.SafeTransport.__init__(self, use_datetime) |
|
777 | 777 | |
|
778 | 778 |
@@ -67,8 +67,7 b' def children(ui, repo, file_=None, **opt' | |||
|
67 | 67 | See :hg:`help log` and :hg:`help revsets.children`. |
|
68 | 68 | |
|
69 | 69 | """ |
|
70 | opts = pycompat.byteskwargs(opts) | |
|
71 | rev = opts.get(b'rev') | |
|
70 | rev = opts.get('rev') | |
|
72 | 71 | ctx = logcmdutil.revsingle(repo, rev) |
|
73 | 72 | if file_: |
|
74 | 73 | fctx = repo.filectx(file_, changeid=ctx.rev()) |
@@ -76,7 +75,9 b' def children(ui, repo, file_=None, **opt' | |||
|
76 | 75 | else: |
|
77 | 76 | childctxs = ctx.children() |
|
78 | 77 | |
|
79 |
displayer = logcmdutil.changesetdisplayer( |
|
|
78 | displayer = logcmdutil.changesetdisplayer( | |
|
79 | ui, repo, pycompat.byteskwargs(opts) | |
|
80 | ) | |
|
80 | 81 | for cctx in childctxs: |
|
81 | 82 | displayer.show(cctx) |
|
82 | 83 | displayer.close() |
@@ -52,18 +52,17 b' def changedlines(ui, repo, ctx1, ctx2, f' | |||
|
52 | 52 | |
|
53 | 53 | def countrate(ui, repo, amap, *pats, **opts): |
|
54 | 54 | """Calculate stats""" |
|
55 | opts = pycompat.byteskwargs(opts) | |
|
56 | if opts.get(b'dateformat'): | |
|
55 | if opts.get('dateformat'): | |
|
57 | 56 | |
|
58 | 57 | def getkey(ctx): |
|
59 | 58 | t, tz = ctx.date() |
|
60 | 59 | date = datetime.datetime(*time.gmtime(float(t) - tz)[:6]) |
|
61 | 60 | return encoding.strtolocal( |
|
62 |
date.strftime(encoding.strfromlocal(opts[ |
|
|
61 | date.strftime(encoding.strfromlocal(opts['dateformat'])) | |
|
63 | 62 | ) |
|
64 | 63 | |
|
65 | 64 | else: |
|
66 |
tmpl = opts.get( |
|
|
65 | tmpl = opts.get('oldtemplate') or opts.get('template') | |
|
67 | 66 | tmpl = logcmdutil.maketemplater(ui, repo, tmpl) |
|
68 | 67 | |
|
69 | 68 | def getkey(ctx): |
@@ -80,7 +79,7 b' def countrate(ui, repo, amap, *pats, **o' | |||
|
80 | 79 | rev = ctx.rev() |
|
81 | 80 | key = getkey(ctx).strip() |
|
82 | 81 | key = amap.get(key, key) # alias remap |
|
83 |
if opts.get( |
|
|
82 | if opts.get('changesets'): | |
|
84 | 83 | rate[key] = (rate.get(key, (0,))[0] + 1, 0) |
|
85 | 84 | else: |
|
86 | 85 | parents = ctx.parents() |
@@ -96,11 +95,11 b' def countrate(ui, repo, amap, *pats, **o' | |||
|
96 | 95 | |
|
97 | 96 | wopts = logcmdutil.walkopts( |
|
98 | 97 | pats=pats, |
|
99 | opts=opts, | |
|
100 |
revspec=opts[ |
|
|
101 |
date=opts[ |
|
|
102 |
include_pats=opts[ |
|
|
103 |
exclude_pats=opts[ |
|
|
98 | opts=pycompat.byteskwargs(opts), | |
|
99 | revspec=opts['rev'], | |
|
100 | date=opts['date'], | |
|
101 | include_pats=opts['include'], | |
|
102 | exclude_pats=opts['exclude'], | |
|
104 | 103 | ) |
|
105 | 104 | revs, makefilematcher = logcmdutil.makewalker(repo, wopts) |
|
106 | 105 | for ctx in scmutil.walkchangerevs(repo, revs, makefilematcher, prep): |
@@ -349,7 +349,7 b' def capabilities(orig, repo, proto):' | |||
|
349 | 349 | |
|
350 | 350 | |
|
351 | 351 | def extsetup(ui): |
|
352 |
extensions.wrapfunction(wireprotov1server, |
|
|
352 | extensions.wrapfunction(wireprotov1server, '_capabilities', capabilities) | |
|
353 | 353 | |
|
354 | 354 | |
|
355 | 355 | # logic for bundle auto-generation |
@@ -987,7 +987,7 b' def reposetup(ui, repo):' | |||
|
987 | 987 | @localrepo.unfilteredmethod |
|
988 | 988 | def clonebundles_lock(self, wait=True): |
|
989 | 989 | '''Lock the repository file related to clone bundles''' |
|
990 |
if not |
|
|
990 | if not hasattr(self, '_cb_lock_ref'): | |
|
991 | 991 | self._cb_lock_ref = None |
|
992 | 992 | l = self._currentlock(self._cb_lock_ref) |
|
993 | 993 | if l is not None: |
@@ -54,19 +54,16 b' def close_branch(ui, repo, *revs, **opts' | |||
|
54 | 54 | text=message, |
|
55 | 55 | files=[], |
|
56 | 56 | filectxfn=None, |
|
57 |
user=opts.get( |
|
|
58 |
date=opts.get( |
|
|
57 | user=opts.get('user'), | |
|
58 | date=opts.get('date'), | |
|
59 | 59 | extra=extra, |
|
60 | 60 | ) |
|
61 |
|
|
|
62 | ret = repo.commitctx(cctx, True) | |
|
63 | bookmarks.update(repo, [rev, None], ret) | |
|
64 | cctx.markcommitted(ret) | |
|
65 | tr.close() | |
|
61 | with repo.transaction(b'commit'): | |
|
62 | ret = repo.commitctx(cctx, True) | |
|
63 | bookmarks.update(repo, [rev, None], ret) | |
|
64 | cctx.markcommitted(ret) | |
|
66 | 65 | |
|
67 | opts = pycompat.byteskwargs(opts) | |
|
68 | ||
|
69 | revs += tuple(opts.get(b'rev', [])) | |
|
66 | revs += tuple(opts.get('rev', [])) | |
|
70 | 67 | revs = logcmdutil.revrange(repo, revs) |
|
71 | 68 | |
|
72 | 69 | if not revs: |
@@ -80,7 +77,7 b' def close_branch(ui, repo, *revs, **opts' | |||
|
80 | 77 | if rev not in heads: |
|
81 | 78 | raise error.Abort(_(b'revision is not an open head: %d') % rev) |
|
82 | 79 | |
|
83 | message = cmdutil.logmessage(ui, opts) | |
|
80 | message = cmdutil.logmessage(ui, pycompat.byteskwargs(opts)) | |
|
84 | 81 | if not message: |
|
85 | 82 | raise error.Abort(_(b"no commit message specified with -l or -m")) |
|
86 | 83 | extra = {b'close': b'1'} |
@@ -16,7 +16,6 b' from mercurial import (' | |||
|
16 | 16 | error, |
|
17 | 17 | extensions, |
|
18 | 18 | registrar, |
|
19 | util, | |
|
20 | 19 | ) |
|
21 | 20 | |
|
22 | 21 | cmdtable = {} |
@@ -52,7 +51,7 b' def extsetup(ui):' | |||
|
52 | 51 | |
|
53 | 52 | |
|
54 | 53 | def _commit(orig, ui, repo, *pats, **opts): |
|
55 |
if |
|
|
54 | if hasattr(repo, 'unfiltered'): | |
|
56 | 55 | repo = repo.unfiltered() |
|
57 | 56 | |
|
58 | 57 | class repoextra(repo.__class__): |
@@ -435,7 +435,13 b' class converter:' | |||
|
435 | 435 | """Sort revisions by date.""" |
|
436 | 436 | |
|
437 | 437 | def getdate(n): |
|
438 |
|
|
|
438 | commit = self.commitcache[n] | |
|
439 | # The other entries are here as tie breaker for stability | |
|
440 | return ( | |
|
441 | dateutil.parsedate(commit.date), | |
|
442 | commit.rev, | |
|
443 | commit.branch, | |
|
444 | ) | |
|
439 | 445 | |
|
440 | 446 | return keysorter(getdate) |
|
441 | 447 |
@@ -12,7 +12,6 b' import socket' | |||
|
12 | 12 | |
|
13 | 13 | from mercurial.i18n import _ |
|
14 | 14 | from mercurial.pycompat import ( |
|
15 | getattr, | |
|
16 | 15 | open, |
|
17 | 16 | ) |
|
18 | 17 | from mercurial import ( |
@@ -198,9 +198,9 b' def createlog(ui, directory=None, root=b' | |||
|
198 | 198 | oldlog = pickle.load(open(cachefile, b'rb')) |
|
199 | 199 | for e in oldlog: |
|
200 | 200 | if not ( |
|
201 |
|
|
|
202 |
and |
|
|
203 |
and |
|
|
201 | hasattr(e, b'branchpoints') | |
|
202 | and hasattr(e, b'commitid') | |
|
203 | and hasattr(e, b'mergepoint') | |
|
204 | 204 | ): |
|
205 | 205 | ui.status(_(b'ignoring old cache\n')) |
|
206 | 206 | oldlog = [] |
@@ -298,8 +298,9 b' class mercurial_sink(common.converter_si' | |||
|
298 | 298 | parents = pl |
|
299 | 299 | nparents = len(parents) |
|
300 | 300 | if self.filemapmode and nparents == 1: |
|
301 | m1node = self.repo.changelog.read(bin(parents[0]))[0] | |
|
302 | 301 | parent = parents[0] |
|
302 | p1_node = bin(parent) | |
|
303 | m1node = self.repo.changelog.changelogrevision(p1_node).manifest | |
|
303 | 304 | |
|
304 | 305 | if len(parents) < 2: |
|
305 | 306 | parents.append(self.repo.nullid) |
@@ -27,9 +27,6 b' import svn.ra' | |||
|
27 | 27 | Pool = svn.core.Pool |
|
28 | 28 | SubversionException = svn.core.SubversionException |
|
29 | 29 | |
|
30 | from mercurial.pycompat import getattr | |
|
31 | from mercurial import util | |
|
32 | ||
|
33 | 30 | # Some older versions of the Python bindings need to be |
|
34 | 31 | # explicitly initialized. But what we want to do probably |
|
35 | 32 | # won't work worth a darn against those libraries anyway! |
@@ -63,7 +60,7 b' def _create_auth_baton(pool):' | |||
|
63 | 60 | if p: |
|
64 | 61 | providers.append(p) |
|
65 | 62 | else: |
|
66 |
if |
|
|
63 | if hasattr(svn.client, 'get_windows_simple_provider'): | |
|
67 | 64 | providers.append(svn.client.get_windows_simple_provider(pool)) |
|
68 | 65 | |
|
69 | 66 | return svn.core.svn_auth_open(providers, pool) |
@@ -85,7 +82,7 b' class SvnRaTransport:' | |||
|
85 | 82 | self.password = b'' |
|
86 | 83 | |
|
87 | 84 | # Only Subversion 1.4 has reparent() |
|
88 |
if ra is None or not |
|
|
85 | if ra is None or not hasattr(svn.ra, 'reparent'): | |
|
89 | 86 | self.client = svn.client.create_context(self.pool) |
|
90 | 87 | ab = _create_auth_baton(self.pool) |
|
91 | 88 | self.client.auth_baton = ab |
@@ -48,7 +48,6 b' service entry controls the service name ' | |||
|
48 | 48 | |
|
49 | 49 | import os |
|
50 | 50 | from mercurial.i18n import _ |
|
51 | from mercurial.pycompat import setattr | |
|
52 | 51 | from mercurial.utils import procutil |
|
53 | 52 | from mercurial import ( |
|
54 | 53 | error, |
@@ -19,7 +19,6 b' from mercurial import (' | |||
|
19 | 19 | pycompat, |
|
20 | 20 | registrar, |
|
21 | 21 | scmutil, |
|
22 | util, | |
|
23 | 22 | ) |
|
24 | 23 | |
|
25 | 24 | from . import ( |
@@ -218,7 +217,7 b' def fastannotate(ui, repo, *pats, **opts' | |||
|
218 | 217 | paths = list(_matchpaths(repo, rev, pats, opts, aopts)) |
|
219 | 218 | |
|
220 | 219 | # for client, prefetch from the server |
|
221 |
if |
|
|
220 | if hasattr(repo, 'prefetchfastannotate'): | |
|
222 | 221 | repo.prefetchfastannotate(paths) |
|
223 | 222 | |
|
224 | 223 | for path in paths: |
@@ -273,7 +272,7 b' def _annotatewrapper(orig, ui, repo, *pa' | |||
|
273 | 272 | |
|
274 | 273 | # check if we need to do prefetch (client-side) |
|
275 | 274 | rev = opts.get('rev') |
|
276 |
if |
|
|
275 | if hasattr(repo, 'prefetchfastannotate') and rev is not None: | |
|
277 | 276 | paths = list(_matchpaths(repo, rev, pats, pycompat.byteskwargs(opts))) |
|
278 | 277 | repo.prefetchfastannotate(paths) |
|
279 | 278 | |
@@ -320,7 +319,7 b' def debugbuildannotatecache(ui, repo, *p' | |||
|
320 | 319 | ctx = logcmdutil.revsingle(repo, rev) |
|
321 | 320 | m = scmutil.match(ctx, pats, opts) |
|
322 | 321 | paths = list(ctx.walk(m)) |
|
323 |
if |
|
|
322 | if hasattr(repo, 'prefetchfastannotate'): | |
|
324 | 323 | # client |
|
325 | 324 | if opts.get(b'REV'): |
|
326 | 325 | raise error.Abort(_(b'--rev cannot be used for client')) |
@@ -12,9 +12,7 b' import os' | |||
|
12 | 12 | |
|
13 | 13 | from mercurial.i18n import _ |
|
14 | 14 | from mercurial.pycompat import ( |
|
15 | getattr, | |
|
16 | 15 | open, |
|
17 | setattr, | |
|
18 | 16 | ) |
|
19 | 17 | from mercurial.node import ( |
|
20 | 18 | bin, |
@@ -151,7 +149,10 b' def encodedir(path):' | |||
|
151 | 149 | |
|
152 | 150 | def hashdiffopts(diffopts): |
|
153 | 151 | diffoptstr = stringutil.pprint( |
|
154 | sorted((k, getattr(diffopts, k)) for k in mdiff.diffopts.defaults) | |
|
152 | sorted( | |
|
153 | (k, getattr(diffopts, pycompat.sysstr(k))) | |
|
154 | for k in mdiff.diffopts.defaults | |
|
155 | ) | |
|
155 | 156 | ) |
|
156 | 157 | return hex(hashutil.sha1(diffoptstr).digest())[:6] |
|
157 | 158 | |
@@ -167,13 +168,12 b' class annotateopts:' | |||
|
167 | 168 | """ |
|
168 | 169 | |
|
169 | 170 | defaults = { |
|
170 |
|
|
|
171 |
|
|
|
172 |
|
|
|
171 | 'diffopts': None, | |
|
172 | 'followrename': True, | |
|
173 | 'followmerge': True, | |
|
173 | 174 | } |
|
174 | 175 | |
|
175 | 176 | def __init__(self, **opts): |
|
176 | opts = pycompat.byteskwargs(opts) | |
|
177 | 177 | for k, v in self.defaults.items(): |
|
178 | 178 | setattr(self, k, opts.get(k, v)) |
|
179 | 179 | |
@@ -322,7 +322,7 b' class _annotatecontext:' | |||
|
322 | 322 | b'(resolved fctx: %s)\n' |
|
323 | 323 | % ( |
|
324 | 324 | self.path, |
|
325 |
stringutil.pprint( |
|
|
325 | stringutil.pprint(hasattr(revfctx, 'node')), | |
|
326 | 326 | ) |
|
327 | 327 | ) |
|
328 | 328 | return self.annotatedirectly(revfctx, showpath, showlines) |
@@ -101,7 +101,7 b' def _registerwireprotocommand():' | |||
|
101 | 101 | |
|
102 | 102 | def serveruisetup(ui): |
|
103 | 103 | _registerwireprotocommand() |
|
104 |
extensions.wrapfunction(wireprotov1server, |
|
|
104 | extensions.wrapfunction(wireprotov1server, '_capabilities', _capabilities) | |
|
105 | 105 | |
|
106 | 106 | |
|
107 | 107 | # client-side |
@@ -6,7 +6,6 b'' | |||
|
6 | 6 | # GNU General Public License version 2 or any later version. |
|
7 | 7 | |
|
8 | 8 | |
|
9 | from mercurial.pycompat import getattr | |
|
10 | 9 | from mercurial import ( |
|
11 | 10 | context as hgcontext, |
|
12 | 11 | dagop, |
@@ -129,8 +128,8 b' def _remotefctxannotate(orig, self, foll' | |||
|
129 | 128 | |
|
130 | 129 | |
|
131 | 130 | def replacehgwebannotate(): |
|
132 |
extensions.wrapfunction(hgweb.webutil, |
|
|
131 | extensions.wrapfunction(hgweb.webutil, 'annotate', _hgwebannotate) | |
|
133 | 132 | |
|
134 | 133 | |
|
135 | 134 | def replacefctxannotate(): |
|
136 |
extensions.wrapfunction(hgcontext.basefilectx, |
|
|
135 | extensions.wrapfunction(hgcontext.basefilectx, 'annotate', _fctxannotate) |
@@ -15,7 +15,6 b' from mercurial.utils import stringutil' | |||
|
15 | 15 | from mercurial import ( |
|
16 | 16 | error, |
|
17 | 17 | logcmdutil, |
|
18 | pycompat, | |
|
19 | 18 | registrar, |
|
20 | 19 | scmutil, |
|
21 | 20 | ) |
@@ -46,9 +45,9 b' def convert_to_git_user(authormap, user,' | |||
|
46 | 45 | % rev |
|
47 | 46 | ) |
|
48 | 47 | if user_person: |
|
49 |
return b'"' |
|
|
48 | return b'"%s" <%s>' % (user_person, user_email) | |
|
50 | 49 | else: |
|
51 |
return b"<" |
|
|
50 | return b"<%s>" % user_email | |
|
52 | 51 | |
|
53 | 52 | |
|
54 | 53 | def convert_to_git_date(date): |
@@ -176,22 +175,20 b' def fastexport(ui, repo, *revs, **opts):' | |||
|
176 | 175 | It can be piped into corresponding import routines like "git fast-import". |
|
177 | 176 | Incremental dumps can be created by using marks files. |
|
178 | 177 | """ |
|
179 | opts = pycompat.byteskwargs(opts) | |
|
180 | ||
|
181 | revs += tuple(opts.get(b"rev", [])) | |
|
178 | revs += tuple(opts.get("rev", [])) | |
|
182 | 179 | if not revs: |
|
183 | 180 | revs = scmutil.revrange(repo, [b":"]) |
|
184 | 181 | else: |
|
185 | 182 | revs = logcmdutil.revrange(repo, revs) |
|
186 | 183 | if not revs: |
|
187 | 184 | raise error.Abort(_(b"no revisions matched")) |
|
188 |
authorfile = opts.get( |
|
|
185 | authorfile = opts.get("authormap") | |
|
189 | 186 | if authorfile: |
|
190 | 187 | authormap = convcmd.readauthormap(ui, authorfile) |
|
191 | 188 | else: |
|
192 | 189 | authormap = {} |
|
193 | 190 | |
|
194 |
import_marks = opts.get( |
|
|
191 | import_marks = opts.get("import_marks") | |
|
195 | 192 | marks = {} |
|
196 | 193 | if import_marks: |
|
197 | 194 | with open(import_marks, "rb") as import_marks_file: |
@@ -209,7 +206,7 b' def fastexport(ui, repo, *revs, **opts):' | |||
|
209 | 206 | export_commit(ui, repo, rev, marks, authormap) |
|
210 | 207 | progress.increment() |
|
211 | 208 | |
|
212 |
export_marks = opts.get( |
|
|
209 | export_marks = opts.get("export_marks") | |
|
213 | 210 | if export_marks: |
|
214 | 211 | with open(export_marks, "wb") as export_marks_file: |
|
215 | 212 | output_marks = [None] * len(marks) |
@@ -74,10 +74,9 b" def fetch(ui, repo, source=b'default', *" | |||
|
74 | 74 | Returns 0 on success. |
|
75 | 75 | """ |
|
76 | 76 | |
|
77 | opts = pycompat.byteskwargs(opts) | |
|
78 | date = opts.get(b'date') | |
|
77 | date = opts.get('date') | |
|
79 | 78 | if date: |
|
80 |
opts[ |
|
|
79 | opts['date'] = dateutil.parsedate(date) | |
|
81 | 80 | |
|
82 | 81 | parent = repo.dirstate.p1() |
|
83 | 82 | branch = repo.dirstate.branch() |
@@ -109,12 +108,12 b" def fetch(ui, repo, source=b'default', *" | |||
|
109 | 108 | ) |
|
110 | 109 | |
|
111 | 110 | path = urlutil.get_unique_pull_path_obj(b'fetch', ui, source) |
|
112 | other = hg.peer(repo, opts, path) | |
|
111 | other = hg.peer(repo, pycompat.byteskwargs(opts), path) | |
|
113 | 112 | ui.status(_(b'pulling from %s\n') % urlutil.hidepassword(path.loc)) |
|
114 | 113 | revs = None |
|
115 |
if opts[ |
|
|
114 | if opts['rev']: | |
|
116 | 115 | try: |
|
117 |
revs = [other.lookup(rev) for rev in opts[ |
|
|
116 | revs = [other.lookup(rev) for rev in opts['rev']] | |
|
118 | 117 | except error.CapabilityError: |
|
119 | 118 | err = _( |
|
120 | 119 | b"other repository doesn't support revision lookup, " |
@@ -162,7 +161,7 b" def fetch(ui, repo, source=b'default', *" | |||
|
162 | 161 | # By default, we consider the repository we're pulling |
|
163 | 162 | # *from* as authoritative, so we merge our changes into |
|
164 | 163 | # theirs. |
|
165 |
if opts[ |
|
|
164 | if opts['switch_parent']: | |
|
166 | 165 | firstparent, secondparent = newparent, newheads[0] |
|
167 | 166 | else: |
|
168 | 167 | firstparent, secondparent = newheads[0], newparent |
@@ -179,14 +178,12 b" def fetch(ui, repo, source=b'default', *" | |||
|
179 | 178 | |
|
180 | 179 | if not err: |
|
181 | 180 | # we don't translate commit messages |
|
182 | message = cmdutil.logmessage(ui, opts) or ( | |
|
181 | message = cmdutil.logmessage(ui, pycompat.byteskwargs(opts)) or ( | |
|
183 | 182 | b'Automated merge with %s' % urlutil.removeauth(other.url()) |
|
184 | 183 | ) |
|
185 |
editopt = opts.get( |
|
|
184 | editopt = opts.get('edit') or opts.get('force_editor') | |
|
186 | 185 | editor = cmdutil.getcommiteditor(edit=editopt, editform=b'fetch') |
|
187 | n = repo.commit( | |
|
188 | message, opts[b'user'], opts[b'date'], editor=editor | |
|
189 | ) | |
|
186 | n = repo.commit(message, opts['user'], opts['date'], editor=editor) | |
|
190 | 187 | ui.status( |
|
191 | 188 | _(b'new changeset %d:%s merges remote changes with local\n') |
|
192 | 189 | % (repo.changelog.rev(n), short(n)) |
@@ -332,7 +332,7 b' def overridewalk(orig, self, match, subr' | |||
|
332 | 332 | matchfn = match.matchfn |
|
333 | 333 | matchalways = match.always() |
|
334 | 334 | dmap = self._map |
|
335 |
if |
|
|
335 | if hasattr(dmap, b'_map'): | |
|
336 | 336 | # for better performance, directly access the inner dirstate map if the |
|
337 | 337 | # standard dirstate implementation is in use. |
|
338 | 338 | dmap = dmap._map |
@@ -744,7 +744,7 b' def makedirstate(repo, dirstate):' | |||
|
744 | 744 | def wrapdirstate(orig, self): |
|
745 | 745 | ds = orig(self) |
|
746 | 746 | # only override the dirstate when Watchman is available for the repo |
|
747 |
if |
|
|
747 | if hasattr(self, b'_fsmonitorstate'): | |
|
748 | 748 | makedirstate(self, ds) |
|
749 | 749 | return ds |
|
750 | 750 | |
@@ -755,9 +755,9 b' def extsetup(ui):' | |||
|
755 | 755 | ) |
|
756 | 756 | if pycompat.isdarwin: |
|
757 | 757 | # An assist for avoiding the dangling-symlink fsevents bug |
|
758 |
extensions.wrapfunction(os, |
|
|
758 | extensions.wrapfunction(os, 'symlink', wrapsymlink) | |
|
759 | 759 | |
|
760 |
extensions.wrapfunction(merge, |
|
|
760 | extensions.wrapfunction(merge, '_update', wrapupdate) | |
|
761 | 761 | |
|
762 | 762 | |
|
763 | 763 | def wrapsymlink(orig, source, link_name): |
@@ -811,7 +811,7 b' class state_update:' | |||
|
811 | 811 | self.oldnode = self.repo[b'.'].node() |
|
812 | 812 | |
|
813 | 813 | if self.repo.currentwlock() is None: |
|
814 |
if |
|
|
814 | if hasattr(self.repo, b'wlocknostateupdate'): | |
|
815 | 815 | self._lock = self.repo.wlocknostateupdate() |
|
816 | 816 | else: |
|
817 | 817 | self._lock = self.repo.wlock() |
@@ -839,7 +839,7 b' class state_update:' | |||
|
839 | 839 | self._lock.release() |
|
840 | 840 | |
|
841 | 841 | def _state(self, cmd, commithash, status=b'ok'): |
|
842 |
if not |
|
|
842 | if not hasattr(self.repo, b'_watchmanclient'): | |
|
843 | 843 | return False |
|
844 | 844 | try: |
|
845 | 845 | self.repo._watchmanclient.command( |
@@ -69,7 +69,7 b' class client:' | |||
|
69 | 69 | |
|
70 | 70 | def getcurrentclock(self): |
|
71 | 71 | result = self.command(b'clock') |
|
72 |
if not |
|
|
72 | if not hasattr(result, 'clock'): | |
|
73 | 73 | raise Unavailable( |
|
74 | 74 | b'clock result is missing clock value', invalidate=True |
|
75 | 75 | ) |
@@ -342,8 +342,8 b' def _featuresetup(ui, supported):' | |||
|
342 | 342 | |
|
343 | 343 | |
|
344 | 344 | def extsetup(ui): |
|
345 |
extensions.wrapfunction(localrepo, |
|
|
346 |
extensions.wrapfunction(localrepo, |
|
|
345 | extensions.wrapfunction(localrepo, 'makestore', _makestore) | |
|
346 | extensions.wrapfunction(localrepo, 'makefilestorage', _makefilestorage) | |
|
347 | 347 | # Inject --git flag for `hg init` |
|
348 | 348 | entry = extensions.wrapcommand(commands.table, b'init', init) |
|
349 | 349 | entry[1].extend( |
@@ -47,7 +47,7 b' def readpatternfile(orig, filepath, warn' | |||
|
47 | 47 | return result, warnings |
|
48 | 48 | |
|
49 | 49 | |
|
50 |
extensions.wrapfunction(matchmod, |
|
|
50 | extensions.wrapfunction(matchmod, 'readpatternfile', readpatternfile) | |
|
51 | 51 | |
|
52 | 52 | |
|
53 | 53 | _STATUS_MAP = {} |
@@ -301,13 +301,13 b' def sign(ui, repo, *revs, **opts):' | |||
|
301 | 301 | |
|
302 | 302 | def _dosign(ui, repo, *revs, **opts): |
|
303 | 303 | mygpg = newgpg(ui, **opts) |
|
304 | opts = pycompat.byteskwargs(opts) | |
|
304 | ||
|
305 | 305 | sigver = b"0" |
|
306 | 306 | sigmessage = b"" |
|
307 | 307 | |
|
308 |
date = opts.get( |
|
|
308 | date = opts.get('date') | |
|
309 | 309 | if date: |
|
310 |
opts[ |
|
|
310 | opts['date'] = dateutil.parsedate(date) | |
|
311 | 311 | |
|
312 | 312 | if revs: |
|
313 | 313 | nodes = [repo.lookup(n) for n in revs] |
@@ -335,42 +335,39 b' def _dosign(ui, repo, *revs, **opts):' | |||
|
335 | 335 | sigmessage += b"%s %s %s\n" % (hexnode, sigver, sig) |
|
336 | 336 | |
|
337 | 337 | # write it |
|
338 |
if opts[ |
|
|
338 | if opts['local']: | |
|
339 | 339 | repo.vfs.append(b"localsigs", sigmessage) |
|
340 | 340 | return |
|
341 | 341 | |
|
342 | 342 | msigs = match.exact([b'.hgsigs']) |
|
343 | 343 | |
|
344 |
if not opts[ |
|
|
344 | if not opts["force"]: | |
|
345 | 345 | if any(repo.status(match=msigs, unknown=True, ignored=True)): |
|
346 | 346 | raise error.Abort( |
|
347 | 347 | _(b"working copy of .hgsigs is changed "), |
|
348 | 348 | hint=_(b"please commit .hgsigs manually"), |
|
349 | 349 | ) |
|
350 | 350 | |
|
351 |
|
|
|
352 | sigsfile.write(sigmessage) | |
|
353 | sigsfile.close() | |
|
351 | with repo.wvfs(b".hgsigs", b"ab") as sigsfile: | |
|
352 | sigsfile.write(sigmessage) | |
|
354 | 353 | |
|
355 | 354 | if b'.hgsigs' not in repo.dirstate: |
|
356 | 355 | with repo.dirstate.changing_files(repo): |
|
357 | 356 | repo[None].add([b".hgsigs"]) |
|
358 | 357 | |
|
359 |
if opts[ |
|
|
358 | if opts["no_commit"]: | |
|
360 | 359 | return |
|
361 | 360 | |
|
362 |
message = opts[ |
|
|
361 | message = opts['message'] | |
|
363 | 362 | if not message: |
|
364 | 363 | # we don't translate commit messages |
|
365 | 364 | message = b"\n".join( |
|
366 | 365 | [b"Added signature for changeset %s" % short(n) for n in nodes] |
|
367 | 366 | ) |
|
368 | 367 | try: |
|
369 | editor = cmdutil.getcommiteditor( | |
|
370 | editform=b'gpg.sign', **pycompat.strkwargs(opts) | |
|
371 | ) | |
|
368 | editor = cmdutil.getcommiteditor(editform=b'gpg.sign', **opts) | |
|
372 | 369 | repo.commit( |
|
373 |
message, opts[ |
|
|
370 | message, opts['user'], opts['date'], match=msigs, editor=editor | |
|
374 | 371 | ) |
|
375 | 372 | except ValueError as inst: |
|
376 | 373 | raise error.Abort(pycompat.bytestr(inst)) |
@@ -101,8 +101,8 b' def generate_css(web):' | |||
|
101 | 101 | def extsetup(ui): |
|
102 | 102 | # monkeypatch in the new version |
|
103 | 103 | extensions.wrapfunction( |
|
104 |
webcommands, |
|
|
104 | webcommands, '_filerevision', filerevision_highlight | |
|
105 | 105 | ) |
|
106 |
extensions.wrapfunction(webcommands, |
|
|
106 | extensions.wrapfunction(webcommands, 'annotate', annotate_highlight) | |
|
107 | 107 | webcommands.highlightcss = generate_css |
|
108 | 108 | webcommands.__all__.append(b'highlightcss') |
@@ -207,7 +207,6 b' import struct' | |||
|
207 | 207 | |
|
208 | 208 | from mercurial.i18n import _ |
|
209 | 209 | from mercurial.pycompat import ( |
|
210 | getattr, | |
|
211 | 210 | open, |
|
212 | 211 | ) |
|
213 | 212 | from mercurial.node import ( |
@@ -2652,7 +2651,7 b' def stripwrapper(orig, ui, repo, nodelis' | |||
|
2652 | 2651 | return orig(ui, repo, nodelist, *args, **kwargs) |
|
2653 | 2652 | |
|
2654 | 2653 | |
|
2655 |
extensions.wrapfunction(repair, |
|
|
2654 | extensions.wrapfunction(repair, 'strip', stripwrapper) | |
|
2656 | 2655 | |
|
2657 | 2656 | |
|
2658 | 2657 | def summaryhook(ui, repo): |
@@ -66,13 +66,13 b' sharednamespaces = {' | |||
|
66 | 66 | |
|
67 | 67 | # Journal recording, register hooks and storage object |
|
68 | 68 | def extsetup(ui): |
|
69 |
extensions.wrapfunction(dispatch, |
|
|
70 |
extensions.wrapfunction(bookmarks.bmstore, |
|
|
69 | extensions.wrapfunction(dispatch, 'runcommand', runcommand) | |
|
70 | extensions.wrapfunction(bookmarks.bmstore, '_write', recordbookmarks) | |
|
71 | 71 | extensions.wrapfilecache( |
|
72 | 72 | localrepo.localrepository, b'dirstate', wrapdirstate |
|
73 | 73 | ) |
|
74 |
extensions.wrapfunction(hg, |
|
|
75 |
extensions.wrapfunction(hg, |
|
|
74 | extensions.wrapfunction(hg, 'postshare', wrappostshare) | |
|
75 | extensions.wrapfunction(hg, 'copystore', unsharejournal) | |
|
76 | 76 | |
|
77 | 77 | |
|
78 | 78 | def reposetup(ui, repo): |
@@ -103,7 +103,7 b' def _setupdirstate(repo, dirstate):' | |||
|
103 | 103 | def wrapdirstate(orig, repo): |
|
104 | 104 | """Make journal storage available to the dirstate object""" |
|
105 | 105 | dirstate = orig(repo) |
|
106 |
if |
|
|
106 | if hasattr(repo, 'journal'): | |
|
107 | 107 | _setupdirstate(repo, dirstate) |
|
108 | 108 | return dirstate |
|
109 | 109 | |
@@ -112,7 +112,7 b' def recorddirstateparents(dirstate, old,' | |||
|
112 | 112 | """Records all dirstate parent changes in the journal.""" |
|
113 | 113 | old = list(old) |
|
114 | 114 | new = list(new) |
|
115 |
if |
|
|
115 | if hasattr(dirstate, 'journalstorage'): | |
|
116 | 116 | # only record two hashes if there was a merge |
|
117 | 117 | oldhashes = old[:1] if old[1] == dirstate._nodeconstants.nullid else old |
|
118 | 118 | newhashes = new[:1] if new[1] == dirstate._nodeconstants.nullid else new |
@@ -125,9 +125,12 b' def recorddirstateparents(dirstate, old,' | |||
|
125 | 125 | def recordbookmarks(orig, store, fp): |
|
126 | 126 | """Records all bookmark changes in the journal.""" |
|
127 | 127 | repo = store._repo |
|
128 |
if |
|
|
128 | if hasattr(repo, 'journal'): | |
|
129 | 129 | oldmarks = bookmarks.bmstore(repo) |
|
130 | for mark, value in store.items(): | |
|
130 | all_marks = set(b for b, n in oldmarks.items()) | |
|
131 | all_marks.update(b for b, n in store.items()) | |
|
132 | for mark in sorted(all_marks): | |
|
133 | value = store.get(mark, repo.nullid) | |
|
131 | 134 | oldvalue = oldmarks.get(mark, repo.nullid) |
|
132 | 135 | if value != oldvalue: |
|
133 | 136 | repo.journal.record(bookmarktype, mark, oldvalue, value) |
@@ -182,11 +185,7 b' def wrappostshare(orig, sourcerepo, dest' | |||
|
182 | 185 | |
|
183 | 186 | def unsharejournal(orig, ui, repo, repopath): |
|
184 | 187 | """Copy shared journal entries into this repo when unsharing""" |
|
185 | if ( | |
|
186 | repo.path == repopath | |
|
187 | and repo.shared() | |
|
188 | and util.safehasattr(repo, 'journal') | |
|
189 | ): | |
|
188 | if repo.path == repopath and repo.shared() and hasattr(repo, 'journal'): | |
|
190 | 189 | sharedrepo = hg.sharedreposource(repo) |
|
191 | 190 | sharedfeatures = _readsharedfeatures(repo) |
|
192 | 191 | if sharedrepo and sharedfeatures > {b'journal'}: |
@@ -88,7 +88,6 b' import re' | |||
|
88 | 88 | import weakref |
|
89 | 89 | |
|
90 | 90 | from mercurial.i18n import _ |
|
91 | from mercurial.pycompat import getattr | |
|
92 | 91 | from mercurial.hgweb import webcommands |
|
93 | 92 | |
|
94 | 93 | from mercurial import ( |
@@ -131,7 +130,7 b' nokwcommands = (' | |||
|
131 | 130 | ) |
|
132 | 131 | |
|
133 | 132 | # webcommands that do not act on keywords |
|
134 |
nokwwebcommands = |
|
|
133 | nokwwebcommands = 'annotate changeset rev filediff diff comparison' | |
|
135 | 134 | |
|
136 | 135 | # hg commands that trigger expansion only when writing to working dir, |
|
137 | 136 | # not when reading filelog, and unexpand when reading from working dir |
@@ -420,11 +419,10 b' def _status(ui, repo, wctx, kwt, *pats, ' | |||
|
420 | 419 | """Bails out if [keyword] configuration is not active. |
|
421 | 420 | Returns status of working directory.""" |
|
422 | 421 | if kwt: |
|
423 | opts = pycompat.byteskwargs(opts) | |
|
424 | 422 | return repo.status( |
|
425 | match=scmutil.match(wctx, pats, opts), | |
|
423 | match=scmutil.match(wctx, pats, pycompat.byteskwargs(opts)), | |
|
426 | 424 | clean=True, |
|
427 |
unknown=opts.get( |
|
|
425 | unknown=opts.get('unknown') or opts.get('all'), | |
|
428 | 426 | ) |
|
429 | 427 | if ui.configitems(b'keyword'): |
|
430 | 428 | raise error.Abort(_(b'[keyword] patterns cannot match')) |
@@ -604,26 +602,26 b' def files(ui, repo, *pats, **opts):' | |||
|
604 | 602 | else: |
|
605 | 603 | cwd = b'' |
|
606 | 604 | files = [] |
|
607 | opts = pycompat.byteskwargs(opts) | |
|
608 |
if not opts.get( |
|
|
605 | ||
|
606 | if not opts.get('unknown') or opts.get('all'): | |
|
609 | 607 | files = sorted(status.modified + status.added + status.clean) |
|
610 | 608 | kwfiles = kwt.iskwfile(files, wctx) |
|
611 | 609 | kwdeleted = kwt.iskwfile(status.deleted, wctx) |
|
612 | 610 | kwunknown = kwt.iskwfile(status.unknown, wctx) |
|
613 |
if not opts.get( |
|
|
611 | if not opts.get('ignore') or opts.get('all'): | |
|
614 | 612 | showfiles = kwfiles, kwdeleted, kwunknown |
|
615 | 613 | else: |
|
616 | 614 | showfiles = [], [], [] |
|
617 |
if opts.get( |
|
|
615 | if opts.get('all') or opts.get('ignore'): | |
|
618 | 616 | showfiles += ( |
|
619 | 617 | [f for f in files if f not in kwfiles], |
|
620 | 618 | [f for f in status.unknown if f not in kwunknown], |
|
621 | 619 | ) |
|
622 | 620 | kwlabels = b'enabled deleted enabledunknown ignored ignoredunknown'.split() |
|
623 | 621 | kwstates = zip(kwlabels, pycompat.bytestr(b'K!kIi'), showfiles) |
|
624 | fm = ui.formatter(b'kwfiles', opts) | |
|
622 | fm = ui.formatter(b'kwfiles', pycompat.byteskwargs(opts)) | |
|
625 | 623 | fmt = b'%.0s%s\n' |
|
626 |
if opts.get( |
|
|
624 | if opts.get('all') or ui.verbose: | |
|
627 | 625 | fmt = b'%s %s\n' |
|
628 | 626 | for kwstate, char, filenames in kwstates: |
|
629 | 627 | label = b'kwfiles.' + kwstate |
@@ -806,14 +804,14 b' def uisetup(ui):' | |||
|
806 | 804 | kwtools[b'hgcmd'] = cmd |
|
807 | 805 | return cmd, func, args, options, cmdoptions |
|
808 | 806 | |
|
809 |
extensions.wrapfunction(dispatch, |
|
|
807 | extensions.wrapfunction(dispatch, '_parse', kwdispatch_parse) | |
|
810 | 808 | |
|
811 |
extensions.wrapfunction(context.filectx, |
|
|
812 |
extensions.wrapfunction(patch.patchfile, |
|
|
813 |
extensions.wrapfunction(patch, |
|
|
814 |
extensions.wrapfunction(cmdutil, |
|
|
815 |
extensions.wrapfunction(cmdutil, |
|
|
816 |
extensions.wrapfunction(cmdutil, |
|
|
809 | extensions.wrapfunction(context.filectx, 'cmp', kwfilectx_cmp) | |
|
810 | extensions.wrapfunction(patch.patchfile, '__init__', kwpatchfile_init) | |
|
811 | extensions.wrapfunction(patch, 'diff', kwdiff) | |
|
812 | extensions.wrapfunction(cmdutil, 'amend', kw_amend) | |
|
813 | extensions.wrapfunction(cmdutil, 'copy', kw_copy) | |
|
814 | extensions.wrapfunction(cmdutil, 'dorecord', kw_dorecord) | |
|
817 | 815 | for c in nokwwebcommands.split(): |
|
818 | 816 | extensions.wrapfunction(webcommands, c, kwweb_skip) |
|
819 | 817 |
@@ -184,7 +184,7 b' def _uisetup(ui):' | |||
|
184 | 184 | ) |
|
185 | 185 | |
|
186 | 186 | extensions.wrapfunction( |
|
187 |
wireprotov1server.commands[b'heads'], |
|
|
187 | wireprotov1server.commands[b'heads'], 'func', proto.heads | |
|
188 | 188 | ) |
|
189 | 189 | # TODO also wrap wireproto.commandsv2 once heads is implemented there. |
|
190 | 190 | |
@@ -193,7 +193,7 b' def _uisetup(ui):' | |||
|
193 | 193 | if name == b'rebase': |
|
194 | 194 | # TODO: teach exthelper to handle this |
|
195 | 195 | extensions.wrapfunction( |
|
196 |
module, |
|
|
196 | module, 'rebase', overrides.overriderebasecmd | |
|
197 | 197 | ) |
|
198 | 198 | |
|
199 | 199 |
@@ -27,7 +27,6 b' from mercurial import (' | |||
|
27 | 27 | lock, |
|
28 | 28 | logcmdutil, |
|
29 | 29 | match as matchmod, |
|
30 | pycompat, | |
|
31 | 30 | scmutil, |
|
32 | 31 | util, |
|
33 | 32 | ) |
@@ -87,12 +86,11 b' def lfconvert(ui, src, dest, *pats, **op' | |||
|
87 | 86 | Use --to-normal to convert largefiles back to normal files; after |
|
88 | 87 | this, the DEST repository can be used without largefiles at all.""" |
|
89 | 88 | |
|
90 | opts = pycompat.byteskwargs(opts) | |
|
91 | if opts[b'to_normal']: | |
|
89 | if opts['to_normal']: | |
|
92 | 90 | tolfile = False |
|
93 | 91 | else: |
|
94 | 92 | tolfile = True |
|
95 |
size = lfutil.getminsize(ui, True, opts.get( |
|
|
93 | size = lfutil.getminsize(ui, True, opts.get('size'), default=None) | |
|
96 | 94 | |
|
97 | 95 | if not hg.islocal(src): |
|
98 | 96 | raise error.Abort(_(b'%s is not a local Mercurial repo') % src) |
@@ -814,7 +814,7 b' def getstatuswriter(ui, repo, forcibly=N' | |||
|
814 | 814 | Otherwise, this returns the function to always write out (or |
|
815 | 815 | ignore if ``not forcibly``) status. |
|
816 | 816 | """ |
|
817 |
if forcibly is None and |
|
|
817 | if forcibly is None and hasattr(repo, '_largefilesenabled'): | |
|
818 | 818 | return repo._lfstatuswriters[-1] |
|
819 | 819 | else: |
|
820 | 820 | if forcibly: |
@@ -243,7 +243,7 b' def removelargefiles(ui, repo, isaddremo' | |||
|
243 | 243 | |
|
244 | 244 | # For overriding mercurial.hgweb.webcommands so that largefiles will |
|
245 | 245 | # appear at their right place in the manifests. |
|
246 |
@eh.wrapfunction(webcommands, |
|
|
246 | @eh.wrapfunction(webcommands, 'decodepath') | |
|
247 | 247 | def decodepath(orig, path): |
|
248 | 248 | return lfutil.splitstandin(path) or path |
|
249 | 249 | |
@@ -273,7 +273,7 b' def overrideadd(orig, ui, repo, *pats, *' | |||
|
273 | 273 | return orig(ui, repo, *pats, **opts) |
|
274 | 274 | |
|
275 | 275 | |
|
276 |
@eh.wrapfunction(cmdutil, |
|
|
276 | @eh.wrapfunction(cmdutil, 'add') | |
|
277 | 277 | def cmdutiladd(orig, ui, repo, matcher, prefix, uipathfn, explicitonly, **opts): |
|
278 | 278 | # The --normal flag short circuits this override |
|
279 | 279 | if opts.get('normal'): |
@@ -289,7 +289,7 b' def cmdutiladd(orig, ui, repo, matcher, ' | |||
|
289 | 289 | return bad |
|
290 | 290 | |
|
291 | 291 | |
|
292 |
@eh.wrapfunction(cmdutil, |
|
|
292 | @eh.wrapfunction(cmdutil, 'remove') | |
|
293 | 293 | def cmdutilremove( |
|
294 | 294 | orig, ui, repo, matcher, prefix, uipathfn, after, force, subrepos, dryrun |
|
295 | 295 | ): |
@@ -313,7 +313,7 b' def cmdutilremove(' | |||
|
313 | 313 | ) |
|
314 | 314 | |
|
315 | 315 | |
|
316 |
@eh.wrapfunction(dirstate.dirstate, |
|
|
316 | @eh.wrapfunction(dirstate.dirstate, '_changing') | |
|
317 | 317 | @contextlib.contextmanager |
|
318 | 318 | def _changing(orig, self, repo, change_type): |
|
319 | 319 | pre = sub_dirstate = getattr(self, '_sub_dirstate', None) |
@@ -334,7 +334,7 b' def _changing(orig, self, repo, change_t' | |||
|
334 | 334 | self._sub_dirstate = pre |
|
335 | 335 | |
|
336 | 336 | |
|
337 |
@eh.wrapfunction(dirstate.dirstate, |
|
|
337 | @eh.wrapfunction(dirstate.dirstate, 'running_status') | |
|
338 | 338 | @contextlib.contextmanager |
|
339 | 339 | def running_status(orig, self, repo): |
|
340 | 340 | pre = sub_dirstate = getattr(self, '_sub_dirstate', None) |
@@ -355,7 +355,7 b' def running_status(orig, self, repo):' | |||
|
355 | 355 | self._sub_dirstate = pre |
|
356 | 356 | |
|
357 | 357 | |
|
358 |
@eh.wrapfunction(subrepo.hgsubrepo, |
|
|
358 | @eh.wrapfunction(subrepo.hgsubrepo, 'status') | |
|
359 | 359 | def overridestatusfn(orig, repo, rev2, **opts): |
|
360 | 360 | with lfstatus(repo._repo): |
|
361 | 361 | return orig(repo, rev2, **opts) |
@@ -367,7 +367,7 b' def overridestatus(orig, ui, repo, *pats' | |||
|
367 | 367 | return orig(ui, repo, *pats, **opts) |
|
368 | 368 | |
|
369 | 369 | |
|
370 |
@eh.wrapfunction(subrepo.hgsubrepo, |
|
|
370 | @eh.wrapfunction(subrepo.hgsubrepo, 'dirty') | |
|
371 | 371 | def overridedirty(orig, repo, ignoreupdate=False, missing=False): |
|
372 | 372 | with lfstatus(repo._repo): |
|
373 | 373 | return orig(repo, ignoreupdate=ignoreupdate, missing=missing) |
@@ -485,10 +485,10 b' def overridelog(orig, ui, repo, *pats, *' | |||
|
485 | 485 | return lambda ctx: match |
|
486 | 486 | |
|
487 | 487 | wrappedmatchandpats = extensions.wrappedfunction( |
|
488 |
scmutil, |
|
|
488 | scmutil, 'matchandpats', overridematchandpats | |
|
489 | 489 | ) |
|
490 | 490 | wrappedmakefilematcher = extensions.wrappedfunction( |
|
491 |
logcmdutil, |
|
|
491 | logcmdutil, '_makenofollowfilematcher', overridemakefilematcher | |
|
492 | 492 | ) |
|
493 | 493 | with wrappedmatchandpats, wrappedmakefilematcher: |
|
494 | 494 | return orig(ui, repo, *pats, **opts) |
@@ -554,7 +554,7 b' def overridedebugstate(orig, ui, repo, *' | |||
|
554 | 554 | # The overridden function filters the unknown files by removing any |
|
555 | 555 | # largefiles. This makes the merge proceed and we can then handle this |
|
556 | 556 | # case further in the overridden calculateupdates function below. |
|
557 |
@eh.wrapfunction(merge, |
|
|
557 | @eh.wrapfunction(merge, '_checkunknownfile') | |
|
558 | 558 | def overridecheckunknownfile( |
|
559 | 559 | origfn, dirstate, wvfs, dircache, wctx, mctx, f, f2=None |
|
560 | 560 | ): |
@@ -589,7 +589,7 b' def overridecheckunknownfile(' | |||
|
589 | 589 | # Finally, the merge.applyupdates function will then take care of |
|
590 | 590 | # writing the files into the working copy and lfcommands.updatelfiles |
|
591 | 591 | # will update the largefiles. |
|
592 |
@eh.wrapfunction(merge, |
|
|
592 | @eh.wrapfunction(merge, 'calculateupdates') | |
|
593 | 593 | def overridecalculateupdates( |
|
594 | 594 | origfn, repo, p1, p2, pas, branchmerge, force, acceptremote, *args, **kwargs |
|
595 | 595 | ): |
@@ -700,7 +700,7 b' def overridecalculateupdates(' | |||
|
700 | 700 | return mresult |
|
701 | 701 | |
|
702 | 702 | |
|
703 |
@eh.wrapfunction(mergestatemod, |
|
|
703 | @eh.wrapfunction(mergestatemod, 'recordupdates') | |
|
704 | 704 | def mergerecordupdates(orig, repo, actions, branchmerge, getfiledata): |
|
705 | 705 | if MERGE_ACTION_LARGEFILE_MARK_REMOVED in actions: |
|
706 | 706 | lfdirstate = lfutil.openlfdirstate(repo.ui, repo) |
@@ -716,7 +716,7 b' def mergerecordupdates(orig, repo, actio' | |||
|
716 | 716 | |
|
717 | 717 | # Override filemerge to prompt the user about how they wish to merge |
|
718 | 718 | # largefiles. This will handle identical edits without prompting the user. |
|
719 |
@eh.wrapfunction(filemerge, |
|
|
719 | @eh.wrapfunction(filemerge, 'filemerge') | |
|
720 | 720 | def overridefilemerge( |
|
721 | 721 | origfn, repo, wctx, mynode, orig, fcd, fco, fca, labels=None |
|
722 | 722 | ): |
@@ -748,7 +748,7 b' def overridefilemerge(' | |||
|
748 | 748 | return 0, False |
|
749 | 749 | |
|
750 | 750 | |
|
751 |
@eh.wrapfunction(copiesmod, |
|
|
751 | @eh.wrapfunction(copiesmod, 'pathcopies') | |
|
752 | 752 | def copiespathcopies(orig, ctx1, ctx2, match=None): |
|
753 | 753 | copies = orig(ctx1, ctx2, match=match) |
|
754 | 754 | updated = {} |
@@ -764,7 +764,7 b' def copiespathcopies(orig, ctx1, ctx2, m' | |||
|
764 | 764 | # checks if the destination largefile already exists. It also keeps a |
|
765 | 765 | # list of copied files so that the largefiles can be copied and the |
|
766 | 766 | # dirstate updated. |
|
767 |
@eh.wrapfunction(cmdutil, |
|
|
767 | @eh.wrapfunction(cmdutil, 'copy') | |
|
768 | 768 | def overridecopy(orig, ui, repo, pats, opts, rename=False): |
|
769 | 769 | # doesn't remove largefile on rename |
|
770 | 770 | if len(pats) < 2: |
@@ -793,7 +793,7 b' def overridecopy(orig, ui, repo, pats, o' | |||
|
793 | 793 | match = orig(ctx, pats, opts, globbed, default, badfn=badfn) |
|
794 | 794 | return composenormalfilematcher(match, manifest) |
|
795 | 795 | |
|
796 |
with extensions.wrappedfunction(scmutil, |
|
|
796 | with extensions.wrappedfunction(scmutil, 'match', normalfilesmatchfn): | |
|
797 | 797 | try: |
|
798 | 798 | result = orig(ui, repo, pats, opts, rename) |
|
799 | 799 | except error.Abort as e: |
@@ -887,8 +887,8 b' def overridecopy(orig, ui, repo, pats, o' | |||
|
887 | 887 | copiedfiles.append((src, dest)) |
|
888 | 888 | orig(src, dest, *args, **kwargs) |
|
889 | 889 | |
|
890 |
with extensions.wrappedfunction(util, |
|
|
891 |
with extensions.wrappedfunction(scmutil, |
|
|
890 | with extensions.wrappedfunction(util, 'copyfile', overridecopyfile): | |
|
891 | with extensions.wrappedfunction(scmutil, 'match', overridematch): | |
|
892 | 892 | result += orig(ui, repo, listpats, opts, rename) |
|
893 | 893 | |
|
894 | 894 | lfdirstate = lfutil.openlfdirstate(ui, repo) |
@@ -936,7 +936,7 b' def overridecopy(orig, ui, repo, pats, o' | |||
|
936 | 936 | # commits. Update the standins then run the original revert, changing |
|
937 | 937 | # the matcher to hit standins instead of largefiles. Based on the |
|
938 | 938 | # resulting standins update the largefiles. |
|
939 |
@eh.wrapfunction(cmdutil, |
|
|
939 | @eh.wrapfunction(cmdutil, 'revert') | |
|
940 | 940 | def overriderevert(orig, ui, repo, ctx, *pats, **opts): |
|
941 | 941 | # Because we put the standins in a bad state (by updating them) |
|
942 | 942 | # and then return them to a correct state we need to lock to |
@@ -999,7 +999,7 b' def overriderevert(orig, ui, repo, ctx, ' | |||
|
999 | 999 | m.matchfn = matchfn |
|
1000 | 1000 | return m |
|
1001 | 1001 | |
|
1002 |
with extensions.wrappedfunction(scmutil, |
|
|
1002 | with extensions.wrappedfunction(scmutil, 'match', overridematch): | |
|
1003 | 1003 | orig(ui, repo, ctx, *pats, **opts) |
|
1004 | 1004 | |
|
1005 | 1005 | newstandins = lfutil.getstandinsstate(repo) |
@@ -1079,7 +1079,7 b' def overridepush(orig, ui, repo, *args, ' | |||
|
1079 | 1079 | return orig(ui, repo, *args, **kwargs) |
|
1080 | 1080 | |
|
1081 | 1081 | |
|
1082 |
@eh.wrapfunction(exchange, |
|
|
1082 | @eh.wrapfunction(exchange, 'pushoperation') | |
|
1083 | 1083 | def exchangepushoperation(orig, *args, **kwargs): |
|
1084 | 1084 | """Override pushoperation constructor and store lfrevs parameter""" |
|
1085 | 1085 | lfrevs = kwargs.pop('lfrevs', None) |
@@ -1139,7 +1139,7 b' def overrideclone(orig, ui, source, dest' | |||
|
1139 | 1139 | return orig(ui, source, dest, **opts) |
|
1140 | 1140 | |
|
1141 | 1141 | |
|
1142 |
@eh.wrapfunction(hg, |
|
|
1142 | @eh.wrapfunction(hg, 'clone') | |
|
1143 | 1143 | def hgclone(orig, ui, opts, *args, **kwargs): |
|
1144 | 1144 | result = orig(ui, opts, *args, **kwargs) |
|
1145 | 1145 | |
@@ -1167,7 +1167,7 b' def hgclone(orig, ui, opts, *args, **kwa' | |||
|
1167 | 1167 | |
|
1168 | 1168 | @eh.wrapcommand(b'rebase', extension=b'rebase') |
|
1169 | 1169 | def overriderebasecmd(orig, ui, repo, **opts): |
|
1170 |
if not |
|
|
1170 | if not hasattr(repo, '_largefilesenabled'): | |
|
1171 | 1171 | return orig(ui, repo, **opts) |
|
1172 | 1172 | |
|
1173 | 1173 | resuming = opts.get('continue') |
@@ -1195,7 +1195,7 b' def overriderebase(ui):' | |||
|
1195 | 1195 | kwargs['inmemory'] = False |
|
1196 | 1196 | return orig(*args, **kwargs) |
|
1197 | 1197 | |
|
1198 |
extensions.wrapfunction(rebase, |
|
|
1198 | extensions.wrapfunction(rebase, '_dorebase', _dorebase) | |
|
1199 | 1199 | |
|
1200 | 1200 | |
|
1201 | 1201 | @eh.wrapcommand(b'archive') |
@@ -1204,13 +1204,13 b' def overridearchivecmd(orig, ui, repo, d' | |||
|
1204 | 1204 | return orig(ui, repo.unfiltered(), dest, **opts) |
|
1205 | 1205 | |
|
1206 | 1206 | |
|
1207 |
@eh.wrapfunction(webcommands, |
|
|
1207 | @eh.wrapfunction(webcommands, 'archive') | |
|
1208 | 1208 | def hgwebarchive(orig, web): |
|
1209 | 1209 | with lfstatus(web.repo): |
|
1210 | 1210 | return orig(web) |
|
1211 | 1211 | |
|
1212 | 1212 | |
|
1213 |
@eh.wrapfunction(archival, |
|
|
1213 | @eh.wrapfunction(archival, 'archive') | |
|
1214 | 1214 | def overridearchive( |
|
1215 | 1215 | orig, |
|
1216 | 1216 | repo, |
@@ -1298,7 +1298,7 b' def overridearchive(' | |||
|
1298 | 1298 | # allow only hgsubrepos to set this, instead of the current scheme |
|
1299 | 1299 | # where the parent sets this for the child. |
|
1300 | 1300 | with ( |
|
1301 |
|
|
|
1301 | hasattr(sub, '_repo') | |
|
1302 | 1302 | and lfstatus(sub._repo) |
|
1303 | 1303 | or util.nullcontextmanager() |
|
1304 | 1304 | ): |
@@ -1307,9 +1307,9 b' def overridearchive(' | |||
|
1307 | 1307 | archiver.done() |
|
1308 | 1308 | |
|
1309 | 1309 | |
|
1310 |
@eh.wrapfunction(subrepo.hgsubrepo, |
|
|
1310 | @eh.wrapfunction(subrepo.hgsubrepo, 'archive') | |
|
1311 | 1311 | def hgsubrepoarchive(orig, repo, archiver, prefix, match=None, decode=True): |
|
1312 |
lfenabled = |
|
|
1312 | lfenabled = hasattr(repo._repo, '_largefilesenabled') | |
|
1313 | 1313 | if not lfenabled or not repo._repo.lfstatus: |
|
1314 | 1314 | return orig(repo, archiver, prefix, match, decode) |
|
1315 | 1315 | |
@@ -1364,7 +1364,7 b' def hgsubrepoarchive(orig, repo, archive' | |||
|
1364 | 1364 | # would allow only hgsubrepos to set this, instead of the current scheme |
|
1365 | 1365 | # where the parent sets this for the child. |
|
1366 | 1366 | with ( |
|
1367 |
|
|
|
1367 | hasattr(sub, '_repo') | |
|
1368 | 1368 | and lfstatus(sub._repo) |
|
1369 | 1369 | or util.nullcontextmanager() |
|
1370 | 1370 | ): |
@@ -1375,7 +1375,7 b' def hgsubrepoarchive(orig, repo, archive' | |||
|
1375 | 1375 | # standin until a commit. cmdutil.bailifchanged() raises an exception |
|
1376 | 1376 | # if the repo has uncommitted changes. Wrap it to also check if |
|
1377 | 1377 | # largefiles were changed. This is used by bisect, backout and fetch. |
|
1378 |
@eh.wrapfunction(cmdutil, |
|
|
1378 | @eh.wrapfunction(cmdutil, 'bailifchanged') | |
|
1379 | 1379 | def overridebailifchanged(orig, repo, *args, **kwargs): |
|
1380 | 1380 | orig(repo, *args, **kwargs) |
|
1381 | 1381 | with lfstatus(repo): |
@@ -1384,13 +1384,13 b' def overridebailifchanged(orig, repo, *a' | |||
|
1384 | 1384 | raise error.Abort(_(b'uncommitted changes')) |
|
1385 | 1385 | |
|
1386 | 1386 | |
|
1387 |
@eh.wrapfunction(cmdutil, |
|
|
1387 | @eh.wrapfunction(cmdutil, 'postcommitstatus') | |
|
1388 | 1388 | def postcommitstatus(orig, repo, *args, **kwargs): |
|
1389 | 1389 | with lfstatus(repo): |
|
1390 | 1390 | return orig(repo, *args, **kwargs) |
|
1391 | 1391 | |
|
1392 | 1392 | |
|
1393 |
@eh.wrapfunction(cmdutil, |
|
|
1393 | @eh.wrapfunction(cmdutil, 'forget') | |
|
1394 | 1394 | def cmdutilforget( |
|
1395 | 1395 | orig, ui, repo, match, prefix, uipathfn, explicitonly, dryrun, interactive |
|
1396 | 1396 | ): |
@@ -1559,7 +1559,7 b' def overridesummary(orig, ui, repo, *pat' | |||
|
1559 | 1559 | orig(ui, repo, *pats, **opts) |
|
1560 | 1560 | |
|
1561 | 1561 | |
|
1562 |
@eh.wrapfunction(scmutil, |
|
|
1562 | @eh.wrapfunction(scmutil, 'addremove') | |
|
1563 | 1563 | def scmutiladdremove( |
|
1564 | 1564 | orig, |
|
1565 | 1565 | repo, |
@@ -1717,11 +1717,10 b' def overridetransplant(orig, ui, repo, *' | |||
|
1717 | 1717 | |
|
1718 | 1718 | @eh.wrapcommand(b'cat') |
|
1719 | 1719 | def overridecat(orig, ui, repo, file1, *pats, **opts): |
|
1720 | opts = pycompat.byteskwargs(opts) | |
|
1721 | ctx = logcmdutil.revsingle(repo, opts.get(b'rev')) | |
|
1720 | ctx = logcmdutil.revsingle(repo, opts.get('rev')) | |
|
1722 | 1721 | err = 1 |
|
1723 | 1722 | notbad = set() |
|
1724 | m = scmutil.match(ctx, (file1,) + pats, opts) | |
|
1723 | m = scmutil.match(ctx, (file1,) + pats, pycompat.byteskwargs(opts)) | |
|
1725 | 1724 | origmatchfn = m.matchfn |
|
1726 | 1725 | |
|
1727 | 1726 | def lfmatchfn(f): |
@@ -1758,12 +1757,12 b' def overridecat(orig, ui, repo, file1, *' | |||
|
1758 | 1757 | m.visitdir = lfvisitdirfn |
|
1759 | 1758 | |
|
1760 | 1759 | for f in ctx.walk(m): |
|
1761 |
with cmdutil.makefileobj(ctx, opts.get( |
|
|
1760 | with cmdutil.makefileobj(ctx, opts.get('output'), pathname=f) as fp: | |
|
1762 | 1761 | lf = lfutil.splitstandin(f) |
|
1763 | 1762 | if lf is None or origmatchfn(f): |
|
1764 | 1763 | # duplicating unreachable code from commands.cat |
|
1765 | 1764 | data = ctx[f].data() |
|
1766 |
if opts.get( |
|
|
1765 | if opts.get('decode'): | |
|
1767 | 1766 | data = repo.wwritedata(f, data) |
|
1768 | 1767 | fp.write(data) |
|
1769 | 1768 | else: |
@@ -1787,7 +1786,7 b' def overridecat(orig, ui, repo, file1, *' | |||
|
1787 | 1786 | return err |
|
1788 | 1787 | |
|
1789 | 1788 | |
|
1790 |
@eh.wrapfunction(merge, |
|
|
1789 | @eh.wrapfunction(merge, '_update') | |
|
1791 | 1790 | def mergeupdate(orig, repo, node, branchmerge, force, *args, **kwargs): |
|
1792 | 1791 | matcher = kwargs.get('matcher', None) |
|
1793 | 1792 | # note if this is a partial update |
@@ -1880,7 +1879,7 b' def mergeupdate(orig, repo, node, branch' | |||
|
1880 | 1879 | return result |
|
1881 | 1880 | |
|
1882 | 1881 | |
|
1883 |
@eh.wrapfunction(scmutil, |
|
|
1882 | @eh.wrapfunction(scmutil, 'marktouched') | |
|
1884 | 1883 | def scmutilmarktouched(orig, repo, files, *args, **kwargs): |
|
1885 | 1884 | result = orig(repo, files, *args, **kwargs) |
|
1886 | 1885 | |
@@ -1901,8 +1900,8 b' def scmutilmarktouched(orig, repo, files' | |||
|
1901 | 1900 | return result |
|
1902 | 1901 | |
|
1903 | 1902 | |
|
1904 |
@eh.wrapfunction(upgrade_actions, |
|
|
1905 |
@eh.wrapfunction(upgrade_actions, |
|
|
1903 | @eh.wrapfunction(upgrade_actions, 'preservedrequirements') | |
|
1904 | @eh.wrapfunction(upgrade_actions, 'supporteddestrequirements') | |
|
1906 | 1905 | def upgraderequirements(orig, repo): |
|
1907 | 1906 | reqs = orig(repo) |
|
1908 | 1907 | if b'largefiles' in repo.requirements: |
@@ -1913,7 +1912,7 b' def upgraderequirements(orig, repo):' | |||
|
1913 | 1912 | _lfscheme = b'largefile://' |
|
1914 | 1913 | |
|
1915 | 1914 | |
|
1916 |
@eh.wrapfunction(urlmod, |
|
|
1915 | @eh.wrapfunction(urlmod, 'open') | |
|
1917 | 1916 | def openlargefile(orig, ui, url_, data=None, **kwargs): |
|
1918 | 1917 | if url_.startswith(_lfscheme): |
|
1919 | 1918 | if data: |
@@ -200,7 +200,7 b' def wirereposetup(ui, repo):' | |||
|
200 | 200 | |
|
201 | 201 | |
|
202 | 202 | # advertise the largefiles=serve capability |
|
203 |
@eh.wrapfunction(wireprotov1server, |
|
|
203 | @eh.wrapfunction(wireprotov1server, '_capabilities') | |
|
204 | 204 | def _capabilities(orig, repo, proto): |
|
205 | 205 | '''announce largefile server capability''' |
|
206 | 206 | caps = orig(repo, proto) |
@@ -5,7 +5,6 b'' | |||
|
5 | 5 | import re |
|
6 | 6 | |
|
7 | 7 | from mercurial.i18n import _ |
|
8 | from mercurial.pycompat import getattr | |
|
9 | 8 | from mercurial import ( |
|
10 | 9 | error, |
|
11 | 10 | hg, |
@@ -57,7 +56,7 b' def openstore(repo=None, remote=None, pu' | |||
|
57 | 56 | |
|
58 | 57 | # The path could be a scheme so use Mercurial's normal functionality |
|
59 | 58 | # to resolve the scheme to a repository and use its path |
|
60 |
path = |
|
|
59 | path = hasattr(remote, 'url') and remote.url() or remote.path | |
|
61 | 60 | |
|
62 | 61 | match = _scheme_re.match(path) |
|
63 | 62 | if not match: # regular filesystem path |
@@ -342,7 +342,7 b' def wrapfilelog(filelog):' | |||
|
342 | 342 | wrapfunction(filelog, 'size', wrapper.filelogsize) |
|
343 | 343 | |
|
344 | 344 | |
|
345 |
@eh.wrapfunction(localrepo, |
|
|
345 | @eh.wrapfunction(localrepo, 'resolverevlogstorevfsoptions') | |
|
346 | 346 | def _resolverevlogstorevfsoptions(orig, ui, requirements, features): |
|
347 | 347 | opts = orig(ui, requirements, features) |
|
348 | 348 | for name, module in extensions.extensions(ui): |
@@ -15,7 +15,6 b' import re' | |||
|
15 | 15 | import socket |
|
16 | 16 | |
|
17 | 17 | from mercurial.i18n import _ |
|
18 | from mercurial.pycompat import getattr | |
|
19 | 18 | from mercurial.node import hex |
|
20 | 19 | |
|
21 | 20 | from mercurial import ( |
@@ -271,7 +270,7 b' def _urlerrorreason(urlerror):' | |||
|
271 | 270 | if isinstance(urlerror.reason, Exception): |
|
272 | 271 | inst = urlerror.reason |
|
273 | 272 | |
|
274 |
if |
|
|
273 | if hasattr(inst, 'reason'): | |
|
275 | 274 | try: # usually it is in the form (errno, strerror) |
|
276 | 275 | reason = inst.reason.args[1] |
|
277 | 276 | except (AttributeError, IndexError): |
@@ -751,7 +750,7 b' def remote(repo, remote=None):' | |||
|
751 | 750 | if lfsurl is None: |
|
752 | 751 | if remote: |
|
753 | 752 | path = remote |
|
754 |
elif |
|
|
753 | elif hasattr(repo, '_subtoppath'): | |
|
755 | 754 | # The pull command sets this during the optional update phase, which |
|
756 | 755 | # tells exactly where the pull originated, whether 'paths.default' |
|
757 | 756 | # or explicit. |
@@ -16,7 +16,6 b' from mercurial.hgweb import common as hg' | |||
|
16 | 16 | from mercurial import ( |
|
17 | 17 | exthelper, |
|
18 | 18 | pycompat, |
|
19 | util, | |
|
20 | 19 | wireprotoserver, |
|
21 | 20 | ) |
|
22 | 21 | |
@@ -33,7 +32,7 b' HTTP_UNSUPPORTED_MEDIA_TYPE = hgwebcommo' | |||
|
33 | 32 | eh = exthelper.exthelper() |
|
34 | 33 | |
|
35 | 34 | |
|
36 |
@eh.wrapfunction(wireprotoserver, |
|
|
35 | @eh.wrapfunction(wireprotoserver, 'handlewsgirequest') | |
|
37 | 36 | def handlewsgirequest(orig, rctx, req, res, checkperm): |
|
38 | 37 | """Wrap wireprotoserver.handlewsgirequest() to possibly process an LFS |
|
39 | 38 | request if it is left unprocessed by the wrapped method. |
@@ -44,7 +43,7 b' def handlewsgirequest(orig, rctx, req, r' | |||
|
44 | 43 | if not rctx.repo.ui.configbool(b'experimental', b'lfs.serve'): |
|
45 | 44 | return False |
|
46 | 45 | |
|
47 |
if not |
|
|
46 | if not hasattr(rctx.repo.svfs, 'lfslocalblobstore'): | |
|
48 | 47 | return False |
|
49 | 48 | |
|
50 | 49 | if not req.dispatchpath: |
@@ -10,10 +10,6 b' import hashlib' | |||
|
10 | 10 | |
|
11 | 11 | from mercurial.i18n import _ |
|
12 | 12 | from mercurial.node import bin, hex, short |
|
13 | from mercurial.pycompat import ( | |
|
14 | getattr, | |
|
15 | setattr, | |
|
16 | ) | |
|
17 | 13 | |
|
18 | 14 | from mercurial import ( |
|
19 | 15 | bundle2, |
@@ -26,7 +22,6 b' from mercurial import (' | |||
|
26 | 22 | localrepo, |
|
27 | 23 | revlog, |
|
28 | 24 | scmutil, |
|
29 | util, | |
|
30 | 25 | vfs as vfsmod, |
|
31 | 26 | wireprotov1server, |
|
32 | 27 | ) |
@@ -53,7 +48,7 b' from . import (' | |||
|
53 | 48 | eh = exthelper.exthelper() |
|
54 | 49 | |
|
55 | 50 | |
|
56 |
@eh.wrapfunction(localrepo, |
|
|
51 | @eh.wrapfunction(localrepo, 'makefilestorage') | |
|
57 | 52 | def localrepomakefilestorage(orig, requirements, features, **kwargs): |
|
58 | 53 | if b'lfs' in requirements: |
|
59 | 54 | features.add(repository.REPO_FEATURE_LFS) |
@@ -61,18 +56,18 b' def localrepomakefilestorage(orig, requi' | |||
|
61 | 56 | return orig(requirements=requirements, features=features, **kwargs) |
|
62 | 57 | |
|
63 | 58 | |
|
64 |
@eh.wrapfunction(changegroup, |
|
|
59 | @eh.wrapfunction(changegroup, 'allsupportedversions') | |
|
65 | 60 | def allsupportedversions(orig, ui): |
|
66 | 61 | versions = orig(ui) |
|
67 | 62 | versions.add(b'03') |
|
68 | 63 | return versions |
|
69 | 64 | |
|
70 | 65 | |
|
71 |
@eh.wrapfunction(wireprotov1server, |
|
|
66 | @eh.wrapfunction(wireprotov1server, '_capabilities') | |
|
72 | 67 | def _capabilities(orig, repo, proto): |
|
73 | 68 | '''Wrap server command to announce lfs server capability''' |
|
74 | 69 | caps = orig(repo, proto) |
|
75 |
if |
|
|
70 | if hasattr(repo.svfs, 'lfslocalblobstore'): | |
|
76 | 71 | # Advertise a slightly different capability when lfs is *required*, so |
|
77 | 72 | # that the client knows it MUST load the extension. If lfs is not |
|
78 | 73 | # required on the server, there's no reason to autoload the extension |
@@ -227,7 +222,7 b' def filelogsize(orig, self, rev):' | |||
|
227 | 222 | return orig(self, rev) |
|
228 | 223 | |
|
229 | 224 | |
|
230 |
@eh.wrapfunction(revlog, |
|
|
225 | @eh.wrapfunction(revlog, '_verify_revision') | |
|
231 | 226 | def _verify_revision(orig, rl, skipflags, state, node): |
|
232 | 227 | if _islfs(rl, node=node): |
|
233 | 228 | rawtext = rl.rawdata(node) |
@@ -246,7 +241,7 b' def _verify_revision(orig, rl, skipflags' | |||
|
246 | 241 | orig(rl, skipflags, state, node) |
|
247 | 242 | |
|
248 | 243 | |
|
249 |
@eh.wrapfunction(context.basefilectx, |
|
|
244 | @eh.wrapfunction(context.basefilectx, 'cmp') | |
|
250 | 245 | def filectxcmp(orig, self, fctx): |
|
251 | 246 | """returns True if text is different than fctx""" |
|
252 | 247 | # some fctx (ex. hg-git) is not based on basefilectx and do not have islfs |
@@ -258,7 +253,7 b' def filectxcmp(orig, self, fctx):' | |||
|
258 | 253 | return orig(self, fctx) |
|
259 | 254 | |
|
260 | 255 | |
|
261 |
@eh.wrapfunction(context.basefilectx, |
|
|
256 | @eh.wrapfunction(context.basefilectx, 'isbinary') | |
|
262 | 257 | def filectxisbinary(orig, self): |
|
263 | 258 | if self.islfs(): |
|
264 | 259 | # fast path: use lfs metadata to answer isbinary |
@@ -272,13 +267,13 b' def filectxislfs(self):' | |||
|
272 | 267 | return _islfs(self.filelog()._revlog, self.filenode()) |
|
273 | 268 | |
|
274 | 269 | |
|
275 |
@eh.wrapfunction(cmdutil, |
|
|
270 | @eh.wrapfunction(cmdutil, '_updatecatformatter') | |
|
276 | 271 | def _updatecatformatter(orig, fm, ctx, matcher, path, decode): |
|
277 | 272 | orig(fm, ctx, matcher, path, decode) |
|
278 | 273 | fm.data(rawdata=ctx[path].rawdata()) |
|
279 | 274 | |
|
280 | 275 | |
|
281 |
@eh.wrapfunction(scmutil, |
|
|
276 | @eh.wrapfunction(scmutil, 'wrapconvertsink') | |
|
282 | 277 | def convertsink(orig, sink): |
|
283 | 278 | sink = orig(sink) |
|
284 | 279 | if sink.repotype == b'hg': |
@@ -325,7 +320,7 b' def convertsink(orig, sink):' | |||
|
325 | 320 | |
|
326 | 321 | # bundlerepo uses "vfsmod.readonlyvfs(othervfs)", we need to make sure lfs |
|
327 | 322 | # options and blob stores are passed from othervfs to the new readonlyvfs. |
|
328 |
@eh.wrapfunction(vfsmod.readonlyvfs, |
|
|
323 | @eh.wrapfunction(vfsmod.readonlyvfs, '__init__') | |
|
329 | 324 | def vfsinit(orig, self, othervfs): |
|
330 | 325 | orig(self, othervfs) |
|
331 | 326 | # copy lfs related options |
@@ -334,15 +329,15 b' def vfsinit(orig, self, othervfs):' | |||
|
334 | 329 | self.options[k] = v |
|
335 | 330 | # also copy lfs blobstores. note: this can run before reposetup, so lfs |
|
336 | 331 | # blobstore attributes are not always ready at this time. |
|
337 |
for name in [ |
|
|
338 |
if |
|
|
332 | for name in ['lfslocalblobstore', 'lfsremoteblobstore']: | |
|
333 | if hasattr(othervfs, name): | |
|
339 | 334 | setattr(self, name, getattr(othervfs, name)) |
|
340 | 335 | |
|
341 | 336 | |
|
342 | 337 | def _prefetchfiles(repo, revmatches): |
|
343 | 338 | """Ensure that required LFS blobs are present, fetching them as a group if |
|
344 | 339 | needed.""" |
|
345 |
if not |
|
|
340 | if not hasattr(repo.svfs, 'lfslocalblobstore'): | |
|
346 | 341 | return |
|
347 | 342 | |
|
348 | 343 | pointers = [] |
@@ -366,7 +361,7 b' def _prefetchfiles(repo, revmatches):' | |||
|
366 | 361 | |
|
367 | 362 | def _canskipupload(repo): |
|
368 | 363 | # Skip if this hasn't been passed to reposetup() |
|
369 |
if not |
|
|
364 | if not hasattr(repo.svfs, 'lfsremoteblobstore'): | |
|
370 | 365 | return True |
|
371 | 366 | |
|
372 | 367 | # if remotestore is a null store, upload is a no-op and can be skipped |
@@ -375,7 +370,7 b' def _canskipupload(repo):' | |||
|
375 | 370 | |
|
376 | 371 | def candownload(repo): |
|
377 | 372 | # Skip if this hasn't been passed to reposetup() |
|
378 |
if not |
|
|
373 | if not hasattr(repo.svfs, 'lfsremoteblobstore'): | |
|
379 | 374 | return False |
|
380 | 375 | |
|
381 | 376 | # if remotestore is a null store, downloads will lead to nothing |
@@ -383,10 +378,7 b' def candownload(repo):' | |||
|
383 | 378 | |
|
384 | 379 | |
|
385 | 380 | def uploadblobsfromrevs(repo, revs): |
|
386 | """upload lfs blobs introduced by revs | |
|
387 | ||
|
388 | Note: also used by other extensions e. g. infinitepush. avoid renaming. | |
|
389 | """ | |
|
381 | """upload lfs blobs introduced by revs""" | |
|
390 | 382 | if _canskipupload(repo): |
|
391 | 383 | return |
|
392 | 384 | pointers = extractpointers(repo, revs) |
@@ -403,7 +395,7 b' def prepush(pushop):' | |||
|
403 | 395 | return uploadblobsfromrevs(pushop.repo, pushop.outgoing.missing) |
|
404 | 396 | |
|
405 | 397 | |
|
406 |
@eh.wrapfunction(exchange, |
|
|
398 | @eh.wrapfunction(exchange, 'push') | |
|
407 | 399 | def push(orig, repo, remote, *args, **kwargs): |
|
408 | 400 | """bail on push if the extension isn't enabled on remote when needed, and |
|
409 | 401 | update the remote store based on the destination path.""" |
@@ -433,7 +425,7 b' def push(orig, repo, remote, *args, **kw' | |||
|
433 | 425 | |
|
434 | 426 | |
|
435 | 427 | # when writing a bundle via "hg bundle" command, upload related LFS blobs |
|
436 |
@eh.wrapfunction(bundle2, |
|
|
428 | @eh.wrapfunction(bundle2, 'writenewbundle') | |
|
437 | 429 | def writenewbundle( |
|
438 | 430 | orig, ui, repo, source, filename, bundletype, outgoing, *args, **kwargs |
|
439 | 431 | ): |
@@ -522,14 +514,14 b' def uploadblobs(repo, pointers):' | |||
|
522 | 514 | remoteblob.writebatch(pointers, repo.svfs.lfslocalblobstore) |
|
523 | 515 | |
|
524 | 516 | |
|
525 |
@eh.wrapfunction(upgrade_engine, |
|
|
517 | @eh.wrapfunction(upgrade_engine, 'finishdatamigration') | |
|
526 | 518 | def upgradefinishdatamigration(orig, ui, srcrepo, dstrepo, requirements): |
|
527 | 519 | orig(ui, srcrepo, dstrepo, requirements) |
|
528 | 520 | |
|
529 | 521 | # Skip if this hasn't been passed to reposetup() |
|
530 | if util.safehasattr( | |
|
531 |
|
|
|
532 | ) and util.safehasattr(dstrepo.svfs, b'lfslocalblobstore'): | |
|
522 | if hasattr(srcrepo.svfs, 'lfslocalblobstore') and hasattr( | |
|
523 | dstrepo.svfs, 'lfslocalblobstore' | |
|
524 | ): | |
|
533 | 525 | srclfsvfs = srcrepo.svfs.lfslocalblobstore.vfs |
|
534 | 526 | dstlfsvfs = dstrepo.svfs.lfslocalblobstore.vfs |
|
535 | 527 | |
@@ -539,8 +531,8 b' def upgradefinishdatamigration(orig, ui,' | |||
|
539 | 531 | lfutil.link(srclfsvfs.join(oid), dstlfsvfs.join(oid)) |
|
540 | 532 | |
|
541 | 533 | |
|
542 |
@eh.wrapfunction(upgrade_actions, |
|
|
543 |
@eh.wrapfunction(upgrade_actions, |
|
|
534 | @eh.wrapfunction(upgrade_actions, 'preservedrequirements') | |
|
535 | @eh.wrapfunction(upgrade_actions, 'supporteddestrequirements') | |
|
544 | 536 | def upgraderequirements(orig, repo): |
|
545 | 537 | reqs = orig(repo) |
|
546 | 538 | if b'lfs' in repo.requirements: |
@@ -75,8 +75,6 b' from mercurial.node import (' | |||
|
75 | 75 | short, |
|
76 | 76 | ) |
|
77 | 77 | from mercurial.pycompat import ( |
|
78 | delattr, | |
|
79 | getattr, | |
|
80 | 78 | open, |
|
81 | 79 | ) |
|
82 | 80 | from mercurial import ( |
@@ -4186,7 +4184,7 b' def reposetup(ui, repo):' | |||
|
4186 | 4184 | |
|
4187 | 4185 | |
|
4188 | 4186 | def mqimport(orig, ui, repo, *args, **kwargs): |
|
4189 |
if |
|
|
4187 | if hasattr(repo, 'abortifwdirpatched') and not kwargs.get( | |
|
4190 | 4188 | 'no_commit', False |
|
4191 | 4189 | ): |
|
4192 | 4190 | repo.abortifwdirpatched( |
@@ -259,7 +259,7 b' def _handlechangespec(op, inpart):' | |||
|
259 | 259 | # will currently always be there when using the core+narrowhg server, but |
|
260 | 260 | # other servers may include a changespec part even when not widening (e.g. |
|
261 | 261 | # because we're deepening a shallow repo). |
|
262 |
if |
|
|
262 | if hasattr(repo, 'setnewnarrowpats'): | |
|
263 | 263 | op.gettransaction() |
|
264 | 264 | repo.setnewnarrowpats() |
|
265 | 265 | |
@@ -333,9 +333,9 b' def setup():' | |||
|
333 | 333 | |
|
334 | 334 | def wrappedcghandler(op, inpart): |
|
335 | 335 | origcghandler(op, inpart) |
|
336 |
if |
|
|
336 | if hasattr(op, '_widen_bundle'): | |
|
337 | 337 | handlechangegroup_widen(op, inpart) |
|
338 |
if |
|
|
338 | if hasattr(op, '_bookmarksbackup'): | |
|
339 | 339 | localrepo.localrepository._bookmarks.set( |
|
340 | 340 | op.repo, op._bookmarksbackup |
|
341 | 341 | ) |
@@ -87,9 +87,8 b' def setup():' | |||
|
87 | 87 | |
|
88 | 88 | def clonenarrowcmd(orig, ui, repo, *args, **opts): |
|
89 | 89 | """Wraps clone command, so 'hg clone' first wraps localrepo.clone().""" |
|
90 | opts = pycompat.byteskwargs(opts) | |
|
91 | 90 | wrappedextraprepare = util.nullcontextmanager() |
|
92 |
narrowspecfile = opts[ |
|
|
91 | narrowspecfile = opts['narrowspec'] | |
|
93 | 92 | |
|
94 | 93 | if narrowspecfile: |
|
95 | 94 | filepath = os.path.join(encoding.getcwd(), narrowspecfile) |
@@ -115,24 +114,25 b' def clonenarrowcmd(orig, ui, repo, *args' | |||
|
115 | 114 | narrowspec.validatepatterns(excludes) |
|
116 | 115 | |
|
117 | 116 | # narrowspec is passed so we should assume that user wants narrow clone |
|
118 |
opts[ |
|
|
119 |
opts[ |
|
|
120 |
opts[ |
|
|
117 | opts['narrow'] = True | |
|
118 | opts['include'].extend(includes) | |
|
119 | opts['exclude'].extend(excludes) | |
|
121 | 120 | |
|
122 |
if opts[ |
|
|
121 | if opts['narrow']: | |
|
123 | 122 | |
|
124 | 123 | def pullbundle2extraprepare_widen(orig, pullop, kwargs): |
|
125 | 124 | orig(pullop, kwargs) |
|
126 | 125 | |
|
127 |
if opts.get( |
|
|
128 | kwargs[b'depth'] = opts[b'depth'] | |
|
126 | if opts.get('depth'): | |
|
127 | # TODO: fix exchange._pullbundle2extraprepare() | |
|
128 | kwargs[b'depth'] = opts['depth'] | |
|
129 | 129 | |
|
130 | 130 | wrappedextraprepare = extensions.wrappedfunction( |
|
131 |
exchange, |
|
|
131 | exchange, '_pullbundle2extraprepare', pullbundle2extraprepare_widen | |
|
132 | 132 | ) |
|
133 | 133 | |
|
134 | 134 | with wrappedextraprepare: |
|
135 |
return orig(ui, repo, *args, ** |
|
|
135 | return orig(ui, repo, *args, **opts) | |
|
136 | 136 | |
|
137 | 137 | |
|
138 | 138 | def pullnarrowcmd(orig, ui, repo, *args, **opts): |
@@ -146,7 +146,7 b' def pullnarrowcmd(orig, ui, repo, *args,' | |||
|
146 | 146 | kwargs[b'depth'] = opts['depth'] |
|
147 | 147 | |
|
148 | 148 | wrappedextraprepare = extensions.wrappedfunction( |
|
149 |
exchange, |
|
|
149 | exchange, '_pullbundle2extraprepare', pullbundle2extraprepare_widen | |
|
150 | 150 | ) |
|
151 | 151 | |
|
152 | 152 | with wrappedextraprepare: |
@@ -201,7 +201,7 b' def pullbundle2extraprepare(orig, pullop' | |||
|
201 | 201 | |
|
202 | 202 | |
|
203 | 203 | extensions.wrapfunction( |
|
204 |
exchange, |
|
|
204 | exchange, '_pullbundle2extraprepare', pullbundle2extraprepare | |
|
205 | 205 | ) |
|
206 | 206 | |
|
207 | 207 | |
@@ -366,7 +366,7 b' def _widen(' | |||
|
366 | 366 | kwargs[b'excludepats'] = newexcludes |
|
367 | 367 | |
|
368 | 368 | wrappedextraprepare = extensions.wrappedfunction( |
|
369 |
exchange, |
|
|
369 | exchange, '_pullbundle2extraprepare', pullbundle2extraprepare_widen | |
|
370 | 370 | ) |
|
371 | 371 | |
|
372 | 372 | # define a function that narrowbundle2 can call after creating the |
@@ -511,7 +511,6 b' def trackedcmd(ui, repo, remotepath=None' | |||
|
511 | 511 | add --addinclude, --addexclude rules in bulk. Like the other include and |
|
512 | 512 | exclude switches, the changes are applied immediately. |
|
513 | 513 | """ |
|
514 | opts = pycompat.byteskwargs(opts) | |
|
515 | 514 | if requirements.NARROW_REQUIREMENT not in repo.requirements: |
|
516 | 515 | raise error.InputError( |
|
517 | 516 | _( |
@@ -522,14 +521,14 b' def trackedcmd(ui, repo, remotepath=None' | |||
|
522 | 521 | |
|
523 | 522 | # Before supporting, decide whether it "hg tracked --clear" should mean |
|
524 | 523 | # tracking no paths or all paths. |
|
525 |
if opts[ |
|
|
524 | if opts['clear']: | |
|
526 | 525 | raise error.InputError(_(b'the --clear option is not yet supported')) |
|
527 | 526 | |
|
528 | 527 | # import rules from a file |
|
529 |
newrules = opts.get( |
|
|
528 | newrules = opts.get('import_rules') | |
|
530 | 529 | if newrules: |
|
530 | filepath = os.path.join(encoding.getcwd(), newrules) | |
|
531 | 531 | try: |
|
532 | filepath = os.path.join(encoding.getcwd(), newrules) | |
|
533 | 532 | fdata = util.readfile(filepath) |
|
534 | 533 | except IOError as inst: |
|
535 | 534 | raise error.StorageError( |
@@ -546,16 +545,16 b' def trackedcmd(ui, repo, remotepath=None' | |||
|
546 | 545 | b"is not supported in narrowspec" |
|
547 | 546 | ) |
|
548 | 547 | ) |
|
549 |
opts[ |
|
|
550 |
opts[ |
|
|
548 | opts['addinclude'].extend(includepats) | |
|
549 | opts['addexclude'].extend(excludepats) | |
|
551 | 550 | |
|
552 |
addedincludes = narrowspec.parsepatterns(opts[ |
|
|
553 |
removedincludes = narrowspec.parsepatterns(opts[ |
|
|
554 |
addedexcludes = narrowspec.parsepatterns(opts[ |
|
|
555 |
removedexcludes = narrowspec.parsepatterns(opts[ |
|
|
556 |
autoremoveincludes = opts[ |
|
|
551 | addedincludes = narrowspec.parsepatterns(opts['addinclude']) | |
|
552 | removedincludes = narrowspec.parsepatterns(opts['removeinclude']) | |
|
553 | addedexcludes = narrowspec.parsepatterns(opts['addexclude']) | |
|
554 | removedexcludes = narrowspec.parsepatterns(opts['removeexclude']) | |
|
555 | autoremoveincludes = opts['auto_remove_includes'] | |
|
557 | 556 | |
|
558 |
update_working_copy = opts[ |
|
|
557 | update_working_copy = opts['update_working_copy'] | |
|
559 | 558 | only_show = not ( |
|
560 | 559 | addedincludes |
|
561 | 560 | or removedincludes |
@@ -570,7 +569,7 b' def trackedcmd(ui, repo, remotepath=None' | |||
|
570 | 569 | if only_show: |
|
571 | 570 | oldincludes, oldexcludes = repo.narrowpats |
|
572 | 571 | ui.pager(b'tracked') |
|
573 | fm = ui.formatter(b'narrow', opts) | |
|
572 | fm = ui.formatter(b'narrow', pycompat.byteskwargs(opts)) | |
|
574 | 573 | for i in sorted(oldincludes): |
|
575 | 574 | fm.startitem() |
|
576 | 575 | fm.write(b'status', b'%s ', b'I', label=b'narrow.included') |
@@ -614,7 +613,7 b' def trackedcmd(ui, repo, remotepath=None' | |||
|
614 | 613 | # also define the set of revisions to update for widening. |
|
615 | 614 | path = urlutil.get_unique_pull_path_obj(b'tracked', ui, remotepath) |
|
616 | 615 | ui.status(_(b'comparing with %s\n') % urlutil.hidepassword(path.loc)) |
|
617 | remote = hg.peer(repo, opts, path) | |
|
616 | remote = hg.peer(repo, pycompat.byteskwargs(opts), path) | |
|
618 | 617 | |
|
619 | 618 | try: |
|
620 | 619 | # check narrow support before doing anything if widening needs to be |
@@ -670,8 +669,8 b' def trackedcmd(ui, repo, remotepath=None' | |||
|
670 | 669 | oldexcludes, |
|
671 | 670 | newincludes, |
|
672 | 671 | newexcludes, |
|
673 |
opts[ |
|
|
674 |
opts[ |
|
|
672 | opts['force_delete_local_changes'], | |
|
673 | opts['backup'], | |
|
675 | 674 | ) |
|
676 | 675 | # _narrow() updated the narrowspec and _widen() below needs to |
|
677 | 676 | # use the updated values as its base (otherwise removed includes |
@@ -36,7 +36,7 b' def reposetup(repo):' | |||
|
36 | 36 | kwargs["excludepats"] = b','.join(exclude) |
|
37 | 37 | return orig(cmd, *args, **kwargs) |
|
38 | 38 | |
|
39 |
extensions.wrapfunction(peer, |
|
|
39 | extensions.wrapfunction(peer, '_calltwowaystream', wrapped) | |
|
40 | 40 | |
|
41 | 41 | hg.wirepeersetupfuncs.append(wirereposetup) |
|
42 | 42 |
@@ -76,7 +76,7 b' def uisetup(ui):' | |||
|
76 | 76 | ui.disablepager() |
|
77 | 77 | return orig(ui, options, cmd, cmdfunc) |
|
78 | 78 | |
|
79 |
extensions.wrapfunction(dispatch, |
|
|
79 | extensions.wrapfunction(dispatch, '_runcommand', pagecmd) | |
|
80 | 80 | |
|
81 | 81 | |
|
82 | 82 | attended = [b'annotate', b'cat', b'diff', b'export', b'glog', b'log', b'qdiff'] |
@@ -71,7 +71,6 b' import time' | |||
|
71 | 71 | |
|
72 | 72 | from mercurial.node import bin, short |
|
73 | 73 | from mercurial.i18n import _ |
|
74 | from mercurial.pycompat import getattr | |
|
75 | 74 | from mercurial.thirdparty import attr |
|
76 | 75 | from mercurial import ( |
|
77 | 76 | cmdutil, |
@@ -24,7 +24,6 b' from mercurial import (' | |||
|
24 | 24 | error, |
|
25 | 25 | logcmdutil, |
|
26 | 26 | minirst, |
|
27 | pycompat, | |
|
28 | 27 | registrar, |
|
29 | 28 | util, |
|
30 | 29 | ) |
@@ -665,17 +664,16 b' def releasenotes(ui, repo, file_=None, *' | |||
|
665 | 664 | admonitions (if any). |
|
666 | 665 | """ |
|
667 | 666 | |
|
668 | opts = pycompat.byteskwargs(opts) | |
|
669 | 667 | sections = releasenotessections(ui, repo) |
|
670 | 668 | |
|
671 |
cmdutil.check_incompatible_arguments(opts, |
|
|
669 | cmdutil.check_incompatible_arguments(opts, 'list', ['rev', 'check']) | |
|
672 | 670 | |
|
673 |
if opts.get( |
|
|
671 | if opts.get('list'): | |
|
674 | 672 | return _getadmonitionlist(ui, sections) |
|
675 | 673 | |
|
676 |
rev = opts.get( |
|
|
674 | rev = opts.get('rev') | |
|
677 | 675 | revs = logcmdutil.revrange(repo, [rev or b'not public()']) |
|
678 |
if opts.get( |
|
|
676 | if opts.get('check'): | |
|
679 | 677 | return checkadmonitions(ui, repo, sections.names(), revs) |
|
680 | 678 | |
|
681 | 679 | incoming = parsenotesfromrevisions(repo, sections.names(), revs) |
@@ -60,9 +60,7 b' def relink(ui, repo, origin=None, **opts' | |||
|
60 | 60 | command is running. (Both repositories will be locked against |
|
61 | 61 | writes.) |
|
62 | 62 | """ |
|
63 |
if not |
|
|
64 | util, b'samedevice' | |
|
65 | ): | |
|
63 | if not hasattr(util, 'samefile') or not hasattr(util, 'samedevice'): | |
|
66 | 64 | raise error.Abort(_(b'hardlinks are not supported on this system')) |
|
67 | 65 | |
|
68 | 66 | if origin is None and b'default-relink' in ui.paths: |
@@ -317,31 +317,31 b' def uisetup(ui):' | |||
|
317 | 317 | changegroup.cgpacker = shallowbundle.shallowcg1packer |
|
318 | 318 | |
|
319 | 319 | extensions.wrapfunction( |
|
320 |
changegroup, |
|
|
320 | changegroup, '_addchangegroupfiles', shallowbundle.addchangegroupfiles | |
|
321 | 321 | ) |
|
322 | 322 | extensions.wrapfunction( |
|
323 |
changegroup, |
|
|
323 | changegroup, 'makechangegroup', shallowbundle.makechangegroup | |
|
324 | 324 | ) |
|
325 |
extensions.wrapfunction(localrepo, |
|
|
326 |
extensions.wrapfunction(exchange, |
|
|
327 |
extensions.wrapfunction(merge, |
|
|
328 |
extensions.wrapfunction(merge, |
|
|
329 |
extensions.wrapfunction(context.workingctx, |
|
|
330 |
extensions.wrapfunction(scmutil, |
|
|
325 | extensions.wrapfunction(localrepo, 'makestore', storewrapper) | |
|
326 | extensions.wrapfunction(exchange, 'pull', exchangepull) | |
|
327 | extensions.wrapfunction(merge, 'applyupdates', applyupdates) | |
|
328 | extensions.wrapfunction(merge, '_checkunknownfiles', checkunknownfiles) | |
|
329 | extensions.wrapfunction(context.workingctx, '_checklookup', checklookup) | |
|
330 | extensions.wrapfunction(scmutil, '_findrenames', findrenames) | |
|
331 | 331 | extensions.wrapfunction( |
|
332 |
copies, |
|
|
332 | copies, '_computeforwardmissing', computeforwardmissing | |
|
333 | 333 | ) |
|
334 |
extensions.wrapfunction(dispatch, |
|
|
335 |
extensions.wrapfunction(repair, |
|
|
336 |
extensions.wrapfunction(context.changectx, |
|
|
337 |
extensions.wrapfunction(context.workingctx, |
|
|
338 |
extensions.wrapfunction(patch, |
|
|
339 |
extensions.wrapfunction(hg, |
|
|
334 | extensions.wrapfunction(dispatch, 'runcommand', runcommand) | |
|
335 | extensions.wrapfunction(repair, '_collectbrokencsets', _collectbrokencsets) | |
|
336 | extensions.wrapfunction(context.changectx, 'filectx', filectx) | |
|
337 | extensions.wrapfunction(context.workingctx, 'filectx', workingfilectx) | |
|
338 | extensions.wrapfunction(patch, 'trydiff', trydiff) | |
|
339 | extensions.wrapfunction(hg, 'verify', _verify) | |
|
340 | 340 | scmutil.fileprefetchhooks.add(b'remotefilelog', _fileprefetchhook) |
|
341 | 341 | |
|
342 | 342 | # disappointing hacks below |
|
343 |
extensions.wrapfunction(scmutil, |
|
|
344 |
extensions.wrapfunction(revset, |
|
|
343 | extensions.wrapfunction(scmutil, 'getrenamedfn', getrenamedfn) | |
|
344 | extensions.wrapfunction(revset, 'filelog', filelogrevset) | |
|
345 | 345 | revset.symbols[b'filelog'] = revset.filelog |
|
346 | 346 | |
|
347 | 347 | |
@@ -374,7 +374,7 b' def cloneshallow(orig, ui, repo, *args, ' | |||
|
374 | 374 | else: |
|
375 | 375 | return orig(self, *args, **kwargs) |
|
376 | 376 | |
|
377 |
extensions.wrapfunction(exchange, |
|
|
377 | extensions.wrapfunction(exchange, 'pull', pull_shallow) | |
|
378 | 378 | |
|
379 | 379 | # Wrap the stream logic to add requirements and to pass include/exclude |
|
380 | 380 | # patterns around. |
@@ -393,14 +393,14 b' def cloneshallow(orig, ui, repo, *args, ' | |||
|
393 | 393 | else: |
|
394 | 394 | return orig() |
|
395 | 395 | |
|
396 |
extensions.wrapfunction(remote, |
|
|
396 | extensions.wrapfunction(remote, 'stream_out', stream_out_shallow) | |
|
397 | 397 | |
|
398 | 398 | def stream_wrap(orig, op): |
|
399 | 399 | setup_streamout(op.repo, op.remote) |
|
400 | 400 | return orig(op) |
|
401 | 401 | |
|
402 | 402 | extensions.wrapfunction( |
|
403 |
streamclone, |
|
|
403 | streamclone, 'maybeperformlegacystreamclone', stream_wrap | |
|
404 | 404 | ) |
|
405 | 405 | |
|
406 | 406 | def canperformstreamclone(orig, pullop, bundle2=False): |
@@ -417,7 +417,7 b' def cloneshallow(orig, ui, repo, *args, ' | |||
|
417 | 417 | return supported, requirements |
|
418 | 418 | |
|
419 | 419 | extensions.wrapfunction( |
|
420 |
streamclone, |
|
|
420 | streamclone, 'canperformstreamclone', canperformstreamclone | |
|
421 | 421 | ) |
|
422 | 422 | |
|
423 | 423 | try: |
@@ -425,7 +425,7 b' def cloneshallow(orig, ui, repo, *args, ' | |||
|
425 | 425 | finally: |
|
426 | 426 | if opts.get('shallow'): |
|
427 | 427 | for r in repos: |
|
428 |
if |
|
|
428 | if hasattr(r, 'fileservice'): | |
|
429 | 429 | r.fileservice.close() |
|
430 | 430 | |
|
431 | 431 | |
@@ -721,7 +721,7 b' def onetimeclientsetup(ui):' | |||
|
721 | 721 | ) |
|
722 | 722 | |
|
723 | 723 | extensions.wrapfunction( |
|
724 |
remotefilelog.remotefilelog, |
|
|
724 | remotefilelog.remotefilelog, 'addrawrevision', addrawrevision | |
|
725 | 725 | ) |
|
726 | 726 | |
|
727 | 727 | def changelogadd(orig, self, *args, **kwargs): |
@@ -749,7 +749,7 b' def onetimeclientsetup(ui):' | |||
|
749 | 749 | del pendingfilecommits[:] |
|
750 | 750 | return node |
|
751 | 751 | |
|
752 |
extensions.wrapfunction(changelog.changelog, |
|
|
752 | extensions.wrapfunction(changelog.changelog, 'add', changelogadd) | |
|
753 | 753 | |
|
754 | 754 | |
|
755 | 755 | def getrenamedfn(orig, repo, endrev=None): |
@@ -904,7 +904,7 b' def gcclient(ui, cachepath):' | |||
|
904 | 904 | if not isenabled(repo): |
|
905 | 905 | continue |
|
906 | 906 | |
|
907 |
if not |
|
|
907 | if not hasattr(repo, 'name'): | |
|
908 | 908 | ui.warn( |
|
909 | 909 | _(b"repo %s is a misconfigured remotefilelog repo\n") % path |
|
910 | 910 | ) |
@@ -1034,7 +1034,7 b' def wcpprefetch(ui, repo, **kwargs):' | |||
|
1034 | 1034 | bgprefetchrevs = revdatelimit(ui, bgprefetchrevs) |
|
1035 | 1035 | |
|
1036 | 1036 | def anon(unused_success): |
|
1037 |
if |
|
|
1037 | if hasattr(repo, 'ranprefetch') and repo.ranprefetch: | |
|
1038 | 1038 | return |
|
1039 | 1039 | repo.ranprefetch = True |
|
1040 | 1040 | repo.backgroundprefetch(bgprefetchrevs, repack=bgrepack) |
@@ -1080,10 +1080,10 b' def exchangepull(orig, repo, remote, *ar' | |||
|
1080 | 1080 | source, heads=heads, common=common, bundlecaps=bundlecaps, **kwargs |
|
1081 | 1081 | ) |
|
1082 | 1082 | |
|
1083 |
if |
|
|
1083 | if hasattr(remote, '_callstream'): | |
|
1084 | 1084 | remote._localrepo = repo |
|
1085 |
elif |
|
|
1086 |
extensions.wrapfunction(remote, |
|
|
1085 | elif hasattr(remote, 'getbundle'): | |
|
1086 | extensions.wrapfunction(remote, 'getbundle', localgetbundle) | |
|
1087 | 1087 | |
|
1088 | 1088 | return orig(repo, remote, *args, **kwargs) |
|
1089 | 1089 |
@@ -7,7 +7,6 b' import time' | |||
|
7 | 7 | |
|
8 | 8 | from mercurial.i18n import _ |
|
9 | 9 | from mercurial.pycompat import ( |
|
10 | getattr, | |
|
11 | 10 | open, |
|
12 | 11 | ) |
|
13 | 12 | from mercurial.node import hex |
@@ -415,7 +415,7 b' class baseunionstore:' | |||
|
415 | 415 | |
|
416 | 416 | def markforrefresh(self): |
|
417 | 417 | for store in self.stores: |
|
418 |
if |
|
|
418 | if hasattr(store, b'markforrefresh'): | |
|
419 | 419 | store.markforrefresh() |
|
420 | 420 | |
|
421 | 421 | @staticmethod |
@@ -9,7 +9,6 b'' | |||
|
9 | 9 | from mercurial import ( |
|
10 | 10 | hg, |
|
11 | 11 | sshpeer, |
|
12 | util, | |
|
13 | 12 | ) |
|
14 | 13 | |
|
15 | 14 | _sshv1peer = sshpeer.sshv1peer |
@@ -41,14 +40,14 b' class connectionpool:' | |||
|
41 | 40 | if conn is None: |
|
42 | 41 | |
|
43 | 42 | peer = hg.peer(self._repo.ui, {}, path) |
|
44 |
if |
|
|
43 | if hasattr(peer, '_cleanup'): | |
|
45 | 44 | |
|
46 | 45 | class mypeer(peer.__class__): |
|
47 | 46 | def _cleanup(self, warn=None): |
|
48 | 47 | # close pipee first so peer.cleanup reading it won't |
|
49 | 48 | # deadlock, if there are other processes with pipeo |
|
50 | 49 | # open (i.e. us). |
|
51 |
if |
|
|
50 | if hasattr(self, 'pipee'): | |
|
52 | 51 | self.pipee.close() |
|
53 | 52 | return super(mypeer, self)._cleanup() |
|
54 | 53 | |
@@ -83,5 +82,5 b' class connection:' | |||
|
83 | 82 | self.close() |
|
84 | 83 | |
|
85 | 84 | def close(self): |
|
86 |
if |
|
|
85 | if hasattr(self.peer, 'cleanup'): | |
|
87 | 86 | self.peer.cleanup() |
@@ -4,7 +4,6 b' from mercurial.node import (' | |||
|
4 | 4 | hex, |
|
5 | 5 | sha1nodeconstants, |
|
6 | 6 | ) |
|
7 | from mercurial.pycompat import getattr | |
|
8 | 7 | from mercurial import ( |
|
9 | 8 | mdiff, |
|
10 | 9 | revlog, |
@@ -92,7 +92,7 b' def peersetup(ui, peer):' | |||
|
92 | 92 | not in self.capabilities() |
|
93 | 93 | ): |
|
94 | 94 | return |
|
95 |
if not |
|
|
95 | if not hasattr(self, '_localrepo'): | |
|
96 | 96 | return |
|
97 | 97 | if ( |
|
98 | 98 | constants.SHALLOWREPO_REQUIREMENT |
@@ -132,7 +132,7 b' def peersetup(ui, peer):' | |||
|
132 | 132 | |
|
133 | 133 | def _callstream(self, command, **opts): |
|
134 | 134 | supertype = super(remotefilepeer, self) |
|
135 |
if not |
|
|
135 | if not hasattr(supertype, '_sendrequest'): | |
|
136 | 136 | self._updatecallstreamopts(command, pycompat.byteskwargs(opts)) |
|
137 | 137 | return super(remotefilepeer, self)._callstream(command, **opts) |
|
138 | 138 | |
@@ -641,9 +641,7 b' class fileserverclient:' | |||
|
641 | 641 | self._lfsprefetch(fileids) |
|
642 | 642 | |
|
643 | 643 | def _lfsprefetch(self, fileids): |
|
644 |
if not _lfsmod or not |
|
|
645 | self.repo.svfs, b'lfslocalblobstore' | |
|
646 | ): | |
|
644 | if not _lfsmod or not hasattr(self.repo.svfs, b'lfslocalblobstore'): | |
|
647 | 645 | return |
|
648 | 646 | if not _lfsmod.wrapper.candownload(self.repo): |
|
649 | 647 | return |
@@ -44,7 +44,6 b' class remotefilelognodemap:' | |||
|
44 | 44 | |
|
45 | 45 | class remotefilelog: |
|
46 | 46 | |
|
47 | _generaldelta = True | |
|
48 | 47 | _flagserrorclass = error.RevlogError |
|
49 | 48 | |
|
50 | 49 | def __init__(self, opener, path, repo): |
@@ -67,7 +67,7 b' def setupserver(ui, repo):' | |||
|
67 | 67 | ) |
|
68 | 68 | |
|
69 | 69 | extensions.wrapfunction( |
|
70 |
changegroup.cgpacker, |
|
|
70 | changegroup.cgpacker, 'generatefiles', generatefiles | |
|
71 | 71 | ) |
|
72 | 72 | |
|
73 | 73 | |
@@ -207,7 +207,7 b' def onetimesetup(ui):' | |||
|
207 | 207 | ): |
|
208 | 208 | yield x |
|
209 | 209 | |
|
210 |
extensions.wrapfunction(streamclone, |
|
|
210 | extensions.wrapfunction(streamclone, '_walkstreamfiles', _walkstreamfiles) | |
|
211 | 211 | |
|
212 | 212 | # expose remotefilelog capabilities |
|
213 | 213 | def _capabilities(orig, repo, proto): |
@@ -222,18 +222,18 b' def onetimesetup(ui):' | |||
|
222 | 222 | caps.append(b'x_rfl_getfile') |
|
223 | 223 | return caps |
|
224 | 224 | |
|
225 |
extensions.wrapfunction(wireprotov1server, |
|
|
225 | extensions.wrapfunction(wireprotov1server, '_capabilities', _capabilities) | |
|
226 | 226 | |
|
227 | 227 | def _adjustlinkrev(orig, self, *args, **kwargs): |
|
228 | 228 | # When generating file blobs, taking the real path is too slow on large |
|
229 | 229 | # repos, so force it to just return the linkrev directly. |
|
230 | 230 | repo = self._repo |
|
231 |
if |
|
|
231 | if hasattr(repo, 'forcelinkrev') and repo.forcelinkrev: | |
|
232 | 232 | return self._filelog.linkrev(self._filelog.rev(self._filenode)) |
|
233 | 233 | return orig(self, *args, **kwargs) |
|
234 | 234 | |
|
235 | 235 | extensions.wrapfunction( |
|
236 |
context.basefilectx, |
|
|
236 | context.basefilectx, '_adjustlinkrev', _adjustlinkrev | |
|
237 | 237 | ) |
|
238 | 238 | |
|
239 | 239 | def _iscmd(orig, cmd): |
@@ -241,7 +241,7 b' def onetimesetup(ui):' | |||
|
241 | 241 | return False |
|
242 | 242 | return orig(cmd) |
|
243 | 243 | |
|
244 |
extensions.wrapfunction(wireprotoserver, |
|
|
244 | extensions.wrapfunction(wireprotoserver, 'iscmd', _iscmd) | |
|
245 | 245 | |
|
246 | 246 | |
|
247 | 247 | def _loadfileblob(repo, cachepath, path, node): |
@@ -49,7 +49,7 b' def backgroundrepack(repo, incremental=T' | |||
|
49 | 49 | |
|
50 | 50 | def fullrepack(repo, options=None): |
|
51 | 51 | """If ``packsonly`` is True, stores creating only loose objects are skipped.""" |
|
52 |
if |
|
|
52 | if hasattr(repo, 'shareddatastores'): | |
|
53 | 53 | datasource = contentstore.unioncontentstore(*repo.shareddatastores) |
|
54 | 54 | historysource = metadatastore.unionmetadatastore( |
|
55 | 55 | *repo.sharedhistorystores, allowincomplete=True |
@@ -67,7 +67,7 b' def fullrepack(repo, options=None):' | |||
|
67 | 67 | options=options, |
|
68 | 68 | ) |
|
69 | 69 | |
|
70 |
if |
|
|
70 | if hasattr(repo.manifestlog, 'datastore'): | |
|
71 | 71 | localdata, shareddata = _getmanifeststores(repo) |
|
72 | 72 | lpackpath, ldstores, lhstores = localdata |
|
73 | 73 | spackpath, sdstores, shstores = shareddata |
@@ -107,7 +107,7 b' def incrementalrepack(repo, options=None' | |||
|
107 | 107 | """This repacks the repo by looking at the distribution of pack files in the |
|
108 | 108 | repo and performing the most minimal repack to keep the repo in good shape. |
|
109 | 109 | """ |
|
110 |
if |
|
|
110 | if hasattr(repo, 'shareddatastores'): | |
|
111 | 111 | packpath = shallowutil.getcachepackpath( |
|
112 | 112 | repo, constants.FILEPACK_CATEGORY |
|
113 | 113 | ) |
@@ -120,7 +120,7 b' def incrementalrepack(repo, options=None' | |||
|
120 | 120 | options=options, |
|
121 | 121 | ) |
|
122 | 122 | |
|
123 |
if |
|
|
123 | if hasattr(repo.manifestlog, 'datastore'): | |
|
124 | 124 | localdata, shareddata = _getmanifeststores(repo) |
|
125 | 125 | lpackpath, ldstores, lhstores = localdata |
|
126 | 126 | spackpath, sdstores, shstores = shareddata |
@@ -895,7 +895,7 b' class repackentry:' | |||
|
895 | 895 | |
|
896 | 896 | |
|
897 | 897 | def repacklockvfs(repo): |
|
898 |
if |
|
|
898 | if hasattr(repo, 'name'): | |
|
899 | 899 | # Lock in the shared cache so repacks across multiple copies of the same |
|
900 | 900 | # repo are coordinated. |
|
901 | 901 | sharedcachepath = shallowutil.getcachepackpath( |
@@ -340,7 +340,7 b' def wraprepo(repo):' | |||
|
340 | 340 | repo.excludepattern = repo.ui.configlist( |
|
341 | 341 | b"remotefilelog", b"excludepattern", None |
|
342 | 342 | ) |
|
343 |
if not |
|
|
343 | if not hasattr(repo, 'connectionpool'): | |
|
344 | 344 | repo.connectionpool = connectionpool.connectionpool(repo) |
|
345 | 345 | |
|
346 | 346 | if repo.includepattern or repo.excludepattern: |
@@ -255,7 +255,7 b' def wrapprintbookmarks(orig, ui, repo, f' | |||
|
255 | 255 | |
|
256 | 256 | |
|
257 | 257 | def extsetup(ui): |
|
258 |
extensions.wrapfunction(bookmarks, |
|
|
258 | extensions.wrapfunction(bookmarks, '_printbookmarks', wrapprintbookmarks) | |
|
259 | 259 | |
|
260 | 260 | |
|
261 | 261 | def reposetup(ui, repo): |
@@ -159,7 +159,7 b' def extsetup(ui):' | |||
|
159 | 159 | else: |
|
160 | 160 | hg.repo_schemes[scheme] = ShortRepository(url, scheme, t) |
|
161 | 161 | |
|
162 |
extensions.wrapfunction(urlutil, |
|
|
162 | extensions.wrapfunction(urlutil, 'hasdriveletter', hasdriveletter) | |
|
163 | 163 | |
|
164 | 164 | |
|
165 | 165 | @command(b'debugexpandscheme', norepo=True) |
@@ -162,9 +162,9 b' def clone(orig, ui, source, *args, **opt' | |||
|
162 | 162 | |
|
163 | 163 | |
|
164 | 164 | def extsetup(ui): |
|
165 |
extensions.wrapfunction(bookmarks, |
|
|
166 |
extensions.wrapfunction(bookmarks.bmstore, |
|
|
167 |
extensions.wrapfunction(bookmarks.bmstore, |
|
|
165 | extensions.wrapfunction(bookmarks, '_getbkfile', getbkfile) | |
|
166 | extensions.wrapfunction(bookmarks.bmstore, '_recordchange', recordchange) | |
|
167 | extensions.wrapfunction(bookmarks.bmstore, '_writerepo', writerepo) | |
|
168 | 168 | extensions.wrapcommand(commands.table, b'clone', clone) |
|
169 | 169 | |
|
170 | 170 |
@@ -73,7 +73,6 b' certain files::' | |||
|
73 | 73 | |
|
74 | 74 | |
|
75 | 75 | from mercurial.i18n import _ |
|
76 | from mercurial.pycompat import setattr | |
|
77 | 76 | from mercurial import ( |
|
78 | 77 | cmdutil, |
|
79 | 78 | commands, |
@@ -146,7 +145,7 b' def _setuplog(ui):' | |||
|
146 | 145 | revs = revs.filter(ctxmatch) |
|
147 | 146 | return revs |
|
148 | 147 | |
|
149 |
extensions.wrapfunction(logcmdutil, |
|
|
148 | extensions.wrapfunction(logcmdutil, '_initialrevs', _initialrevs) | |
|
150 | 149 | |
|
151 | 150 | |
|
152 | 151 | def _clonesparsecmd(orig, ui, repo, *args, **opts): |
@@ -170,7 +169,7 b' def _clonesparsecmd(orig, ui, repo, *arg' | |||
|
170 | 169 | ) |
|
171 | 170 | return orig(ctx, *args, **kwargs) |
|
172 | 171 | |
|
173 |
extensions.wrapfunction(mergemod, |
|
|
172 | extensions.wrapfunction(mergemod, 'update', clonesparse) | |
|
174 | 173 | return orig(ui, repo, *args, **opts) |
|
175 | 174 | |
|
176 | 175 |
@@ -22,7 +22,6 b' from mercurial import (' | |||
|
22 | 22 | error, |
|
23 | 23 | hg, |
|
24 | 24 | logcmdutil, |
|
25 | pycompat, | |
|
26 | 25 | registrar, |
|
27 | 26 | revsetlang, |
|
28 | 27 | rewriteutil, |
@@ -65,10 +64,9 b' def split(ui, repo, *revs, **opts):' | |||
|
65 | 64 | By default, rebase connected non-obsoleted descendants onto the new |
|
66 | 65 | changeset. Use --no-rebase to avoid the rebase. |
|
67 | 66 | """ |
|
68 | opts = pycompat.byteskwargs(opts) | |
|
69 | 67 | revlist = [] |
|
70 |
if opts.get( |
|
|
71 |
revlist.append(opts.get( |
|
|
68 | if opts.get('rev'): | |
|
69 | revlist.append(opts.get('rev')) | |
|
72 | 70 | revlist.extend(revs) |
|
73 | 71 | with repo.wlock(), repo.lock(): |
|
74 | 72 | tr = repo.transaction(b'split') |
@@ -89,7 +87,7 b' def split(ui, repo, *revs, **opts):' | |||
|
89 | 87 | if ctx.node() is None: |
|
90 | 88 | raise error.InputError(_(b'cannot split working directory')) |
|
91 | 89 | |
|
92 |
if opts.get( |
|
|
90 | if opts.get('rebase'): | |
|
93 | 91 | # Skip obsoleted descendants and their descendants so the rebase |
|
94 | 92 | # won't cause conflicts for sure. |
|
95 | 93 | descendants = list(repo.revs(b'(%d::) - (%d)', rev, rev)) |
@@ -116,7 +114,7 b' def split(ui, repo, *revs, **opts):' | |||
|
116 | 114 | wnode = repo[b'.'].node() |
|
117 | 115 | top = None |
|
118 | 116 | try: |
|
119 | top = dosplit(ui, repo, tr, ctx, opts) | |
|
117 | top = dosplit(ui, repo, tr, ctx, **opts) | |
|
120 | 118 | finally: |
|
121 | 119 | # top is None: split failed, need update --clean recovery. |
|
122 | 120 | # wnode == ctx.node(): wnode split, no need to update. |
@@ -128,7 +126,7 b' def split(ui, repo, *revs, **opts):' | |||
|
128 | 126 | dorebase(ui, repo, torebase, top) |
|
129 | 127 | |
|
130 | 128 | |
|
131 | def dosplit(ui, repo, tr, ctx, opts): | |
|
129 | def dosplit(ui, repo, tr, ctx, **opts): | |
|
132 | 130 | committed = [] # [ctx] |
|
133 | 131 | |
|
134 | 132 | # Set working parent to ctx.p1(), and keep working copy as ctx's content |
@@ -166,13 +164,13 b' def dosplit(ui, repo, tr, ctx, opts):' | |||
|
166 | 164 | ) % short(ctx.node()) |
|
167 | 165 | opts.update( |
|
168 | 166 | { |
|
169 |
|
|
|
170 |
|
|
|
171 |
|
|
|
167 | 'edit': True, | |
|
168 | 'interactive': True, | |
|
169 | 'message': header + ctx.description(), | |
|
172 | 170 | } |
|
173 | 171 | ) |
|
174 | 172 | origctx = repo[b'.'] |
|
175 |
commands.commit(ui, repo, ** |
|
|
173 | commands.commit(ui, repo, **opts) | |
|
176 | 174 | newctx = repo[b'.'] |
|
177 | 175 | # Ensure user didn't do a "no-op" split (such as deselecting |
|
178 | 176 | # everything). |
@@ -1330,11 +1330,11 b' def verifierinit(orig, self, *args, **kw' | |||
|
1330 | 1330 | def extsetup(ui): |
|
1331 | 1331 | localrepo.featuresetupfuncs.add(featuresetup) |
|
1332 | 1332 | extensions.wrapfunction( |
|
1333 |
localrepo, |
|
|
1333 | localrepo, 'newreporequirements', newreporequirements | |
|
1334 | 1334 | ) |
|
1335 |
extensions.wrapfunction(localrepo, |
|
|
1336 |
extensions.wrapfunction(localrepo, |
|
|
1337 |
extensions.wrapfunction(verify.verifier, |
|
|
1335 | extensions.wrapfunction(localrepo, 'makefilestorage', makefilestorage) | |
|
1336 | extensions.wrapfunction(localrepo, 'makemain', makemain) | |
|
1337 | extensions.wrapfunction(verify.verifier, '__init__', verifierinit) | |
|
1338 | 1338 | |
|
1339 | 1339 | |
|
1340 | 1340 | def reposetup(ui, repo): |
@@ -152,7 +152,6 b' def uncommit(ui, repo, *pats, **opts):' | |||
|
152 | 152 | """ |
|
153 | 153 | cmdutil.check_note_size(opts) |
|
154 | 154 | cmdutil.resolve_commit_options(ui, opts) |
|
155 | opts = pycompat.byteskwargs(opts) | |
|
156 | 155 | |
|
157 | 156 | with repo.wlock(), repo.lock(): |
|
158 | 157 | |
@@ -160,7 +159,7 b' def uncommit(ui, repo, *pats, **opts):' | |||
|
160 | 159 | m, a, r, d = st.modified, st.added, st.removed, st.deleted |
|
161 | 160 | isdirtypath = any(set(m + a + r + d) & set(pats)) |
|
162 | 161 | allowdirtywcopy = opts[ |
|
163 |
|
|
|
162 | 'allow_dirty_working_copy' | |
|
164 | 163 | ] or repo.ui.configbool(b'experimental', b'uncommitondirtywdir') |
|
165 | 164 | if not allowdirtywcopy and (not pats or isdirtypath): |
|
166 | 165 | cmdutil.bailifchanged( |
@@ -172,7 +171,7 b' def uncommit(ui, repo, *pats, **opts):' | |||
|
172 | 171 | if len(old.parents()) > 1: |
|
173 | 172 | raise error.InputError(_(b"cannot uncommit merge changeset")) |
|
174 | 173 | |
|
175 | match = scmutil.match(old, pats, opts) | |
|
174 | match = scmutil.match(old, pats, pycompat.byteskwargs(opts)) | |
|
176 | 175 | |
|
177 | 176 | # Check all explicitly given files; abort if there's a problem. |
|
178 | 177 | if match.files(): |
@@ -203,14 +202,14 b' def uncommit(ui, repo, *pats, **opts):' | |||
|
203 | 202 | ) |
|
204 | 203 | |
|
205 | 204 | with repo.transaction(b'uncommit'): |
|
206 |
if not (opts[ |
|
|
207 |
opts[ |
|
|
208 | message = cmdutil.logmessage(ui, opts) | |
|
205 | if not (opts['message'] or opts['logfile']): | |
|
206 | opts['message'] = old.description() | |
|
207 | message = cmdutil.logmessage(ui, pycompat.byteskwargs(opts)) | |
|
209 | 208 | |
|
210 | 209 | keepcommit = pats |
|
211 | 210 | if not keepcommit: |
|
212 |
if opts.get( |
|
|
213 |
keepcommit = opts.get( |
|
|
211 | if opts.get('keep') is not None: | |
|
212 | keepcommit = opts.get('keep') | |
|
214 | 213 | else: |
|
215 | 214 | keepcommit = ui.configbool( |
|
216 | 215 | b'experimental', b'uncommit.keep' |
@@ -221,8 +220,8 b' def uncommit(ui, repo, *pats, **opts):' | |||
|
221 | 220 | match, |
|
222 | 221 | keepcommit, |
|
223 | 222 | message=message, |
|
224 |
user=opts.get( |
|
|
225 |
date=opts.get( |
|
|
223 | user=opts.get('user'), | |
|
224 | date=opts.get('date'), | |
|
226 | 225 | ) |
|
227 | 226 | if newid is None: |
|
228 | 227 | ui.status(_(b"nothing to uncommit\n")) |
@@ -49,7 +49,6 b' import os' | |||
|
49 | 49 | import sys |
|
50 | 50 | |
|
51 | 51 | from mercurial.i18n import _ |
|
52 | from mercurial.pycompat import getattr, setattr | |
|
53 | 52 | from mercurial import ( |
|
54 | 53 | encoding, |
|
55 | 54 | error, |
@@ -233,10 +233,10 b' def cleanupafterdispatch(orig, ui, optio' | |||
|
233 | 233 | server.close() |
|
234 | 234 | |
|
235 | 235 | |
|
236 |
extensions.wrapfunction(dispatch, |
|
|
236 | extensions.wrapfunction(dispatch, '_runcommand', cleanupafterdispatch) | |
|
237 | 237 | |
|
238 |
extensions.wrapfunction(uimod.ui, |
|
|
239 |
extensions.wrapfunction(uimod.ui, |
|
|
240 |
extensions.wrapfunction(uimod.ui, |
|
|
241 |
extensions.wrapfunction(hg, |
|
|
242 |
extensions.wrapfunction(servermod, |
|
|
238 | extensions.wrapfunction(uimod.ui, 'config', config) | |
|
239 | extensions.wrapfunction(uimod.ui, 'configitems', configitems) | |
|
240 | extensions.wrapfunction(uimod.ui, 'configsuboptions', configsuboptions) | |
|
241 | extensions.wrapfunction(hg, 'defaultdest', defaultdest) | |
|
242 | extensions.wrapfunction(servermod, 'create_server', zc_create_server) |
@@ -5875,13 +5875,6 b' msgid " store some pushes in a remote bl' | |||
|
5875 | 5875 | msgstr "共有元情報を相対パスで保持 (実験的実装)" |
|
5876 | 5876 | |
|
5877 | 5877 | msgid "" |
|
5878 | " [infinitepush]\n" | |
|
5879 | " # Server-side and client-side option. Pattern of the infinitepush " | |
|
5880 | "bookmark\n" | |
|
5881 | " branchpattern = PATTERN" | |
|
5882 | msgstr "" | |
|
5883 | ||
|
5884 | msgid "" | |
|
5885 | 5878 | " # Server or client\n" |
|
5886 | 5879 | " server = False" |
|
5887 | 5880 | msgstr "" |
@@ -5973,12 +5966,6 b' msgid ""' | |||
|
5973 | 5966 | msgstr "" |
|
5974 | 5967 | |
|
5975 | 5968 | msgid "" |
|
5976 | " # Instructs infinitepush to forward all received bundle2 parts to the\n" | |
|
5977 | " # bundle for storage. Defaults to False.\n" | |
|
5978 | " storeallparts = True" | |
|
5979 | msgstr "" | |
|
5980 | ||
|
5981 | msgid "" | |
|
5982 | 5969 | " # routes each incoming push to the bundlestore. defaults to False\n" |
|
5983 | 5970 | " pushtobundlestore = True" |
|
5984 | 5971 | msgstr "" |
@@ -5991,24 +5978,10 b' msgid ""' | |||
|
5991 | 5978 | " bookmarks = True\n" |
|
5992 | 5979 | msgstr "" |
|
5993 | 5980 | |
|
5994 | msgid "please set infinitepush.sqlhost" | |
|
5995 | msgstr "" | |
|
5996 | ||
|
5997 | msgid "please set infinitepush.reponame" | |
|
5998 | msgstr "" | |
|
5999 | ||
|
6000 | 5981 | #, fuzzy, python-format |
|
6001 | 5982 | msgid "invalid log level %s" |
|
6002 | 5983 | msgstr "不正なローカルアドレス: %s" |
|
6003 | 5984 | |
|
6004 | #, fuzzy, python-format | |
|
6005 | msgid "unknown infinitepush store type specified %s" | |
|
6006 | msgstr "--type に未知のバンドル種別が指定されました" | |
|
6007 | ||
|
6008 | #, fuzzy, python-format | |
|
6009 | msgid "unknown infinitepush index type specified %s" | |
|
6010 | msgstr "--type に未知のバンドル種別が指定されました" | |
|
6011 | ||
|
6012 | 5985 | #, fuzzy |
|
6013 | 5986 | msgid "force push to go to bundle store (EXPERIMENTAL)" |
|
6014 | 5987 | msgstr "表示対象リビジョン" |
@@ -6019,10 +5992,6 b' msgstr "\xe3\x83\x87\xe3\x83\x95\xe3\x82\xa9\xe3\x83\xab\xe3\x83\x88\xe3\x81\xae\xe9\x80\xa3\xe6\x90\xba\xe5\x85\x88\xe3\x81\x8c\xe8\xa8\xad\xe5\xae\x9a\xe3\x81\x95\xe3\x82\x8c\xe3\x81\xa6\xe3\x81\x84\xe3\x81\xbe\xe3\x81\x9b\xe3\x82\x93"' | |||
|
6019 | 5992 | msgid "see 'hg help config.paths'" |
|
6020 | 5993 | msgstr "詳細は 'hg help config.paths' 参照" |
|
6021 | 5994 | |
|
6022 | #, fuzzy | |
|
6023 | msgid "infinitepush bookmark '{}' does not exist in path '{}'" | |
|
6024 | msgstr "ブックマーク '%s' は存在しません" | |
|
6025 | ||
|
6026 | 5995 | msgid "no changes found\n" |
|
6027 | 5996 | msgstr "差分はありません\n" |
|
6028 | 5997 |
@@ -5940,12 +5940,6 b' msgid " store some pushes in a remote bl' | |||
|
5940 | 5940 | msgstr "" |
|
5941 | 5941 | |
|
5942 | 5942 | msgid "" |
|
5943 | " [infinitepush]\n" | |
|
5944 | " # Server-side and client-side option. Pattern of the infinitepush bookmark\n" | |
|
5945 | " branchpattern = PATTERN" | |
|
5946 | msgstr "" | |
|
5947 | ||
|
5948 | msgid "" | |
|
5949 | 5943 | " # Server or client\n" |
|
5950 | 5944 | " server = False" |
|
5951 | 5945 | msgstr "" |
@@ -6034,12 +6028,6 b' msgid ""' | |||
|
6034 | 6028 | msgstr "" |
|
6035 | 6029 | |
|
6036 | 6030 | msgid "" |
|
6037 | " # Instructs infinitepush to forward all received bundle2 parts to the\n" | |
|
6038 | " # bundle for storage. Defaults to False.\n" | |
|
6039 | " storeallparts = True" | |
|
6040 | msgstr "" | |
|
6041 | ||
|
6042 | msgid "" | |
|
6043 | 6031 | " # routes each incoming push to the bundlestore. defaults to False\n" |
|
6044 | 6032 | " pushtobundlestore = True" |
|
6045 | 6033 | msgstr "" |
@@ -6052,24 +6040,10 b' msgid ""' | |||
|
6052 | 6040 | " bookmarks = True\n" |
|
6053 | 6041 | msgstr "" |
|
6054 | 6042 | |
|
6055 | msgid "please set infinitepush.sqlhost" | |
|
6056 | msgstr "" | |
|
6057 | ||
|
6058 | msgid "please set infinitepush.reponame" | |
|
6059 | msgstr "" | |
|
6060 | ||
|
6061 | 6043 | #, python-format |
|
6062 | 6044 | msgid "invalid log level %s" |
|
6063 | 6045 | msgstr "" |
|
6064 | 6046 | |
|
6065 | #, python-format | |
|
6066 | msgid "unknown infinitepush store type specified %s" | |
|
6067 | msgstr "" | |
|
6068 | ||
|
6069 | #, python-format | |
|
6070 | msgid "unknown infinitepush index type specified %s" | |
|
6071 | msgstr "" | |
|
6072 | ||
|
6073 | 6047 | msgid "force push to go to bundle store (EXPERIMENTAL)" |
|
6074 | 6048 | msgstr "" |
|
6075 | 6049 | |
@@ -6079,9 +6053,6 b' msgstr "o caminho default do reposit\xc3\xb3rio n\xc3\xa3o foi configurado!"' | |||
|
6079 | 6053 | msgid "see 'hg help config.paths'" |
|
6080 | 6054 | msgstr "veja 'hg help config.paths'" |
|
6081 | 6055 | |
|
6082 | msgid "infinitepush bookmark '{}' does not exist in path '{}'" | |
|
6083 | msgstr "" | |
|
6084 | ||
|
6085 | 6056 | msgid "no changes found\n" |
|
6086 | 6057 | msgstr "nenhuma alteração encontrada\n" |
|
6087 | 6058 |
@@ -14,7 +14,6 b' from .node import (' | |||
|
14 | 14 | hex, |
|
15 | 15 | short, |
|
16 | 16 | ) |
|
17 | from .pycompat import getattr | |
|
18 | 17 | from . import ( |
|
19 | 18 | encoding, |
|
20 | 19 | error, |
@@ -980,7 +980,7 b' class unbundle20(unpackermixin):' | |||
|
980 | 980 | |
|
981 | 981 | def close(self): |
|
982 | 982 | """close underlying file""" |
|
983 |
if |
|
|
983 | if hasattr(self._fp, 'close'): | |
|
984 | 984 | return self._fp.close() |
|
985 | 985 | |
|
986 | 986 | |
@@ -1068,7 +1068,7 b' class bundlepart:' | |||
|
1068 | 1068 | |
|
1069 | 1069 | The new part have the very same content but no partid assigned yet. |
|
1070 | 1070 | Parts with generated data cannot be copied.""" |
|
1071 |
assert not |
|
|
1071 | assert not hasattr(self.data, 'next') | |
|
1072 | 1072 | return self.__class__( |
|
1073 | 1073 | self.type, |
|
1074 | 1074 | self._mandatoryparams, |
@@ -1137,9 +1137,7 b' class bundlepart:' | |||
|
1137 | 1137 | msg.append(b')') |
|
1138 | 1138 | if not self.data: |
|
1139 | 1139 | msg.append(b' empty payload') |
|
1140 |
elif |
|
|
1141 | self.data, b'__next__' | |
|
1142 | ): | |
|
1140 | elif hasattr(self.data, 'next') or hasattr(self.data, '__next__'): | |
|
1143 | 1141 | msg.append(b' streamed payload') |
|
1144 | 1142 | else: |
|
1145 | 1143 | msg.append(b' %i bytes payload' % len(self.data)) |
@@ -1233,9 +1231,7 b' class bundlepart:' | |||
|
1233 | 1231 | Exists to handle the different methods to provide data to a part.""" |
|
1234 | 1232 | # we only support fixed size data now. |
|
1235 | 1233 | # This will be improved in the future. |
|
1236 |
if |
|
|
1237 | self.data, '__next__' | |
|
1238 | ): | |
|
1234 | if hasattr(self.data, 'next') or hasattr(self.data, '__next__'): | |
|
1239 | 1235 | buff = util.chunkbuffer(self.data) |
|
1240 | 1236 | chunk = buff.read(preferedchunksize) |
|
1241 | 1237 | while chunk: |
@@ -1380,9 +1376,7 b' class unbundlepart(unpackermixin):' | |||
|
1380 | 1376 | |
|
1381 | 1377 | def __init__(self, ui, header, fp): |
|
1382 | 1378 | super(unbundlepart, self).__init__(fp) |
|
1383 |
self._seekable = |
|
|
1384 | fp, 'tell' | |
|
1385 | ) | |
|
1379 | self._seekable = hasattr(fp, 'seek') and hasattr(fp, 'tell') | |
|
1386 | 1380 | self.ui = ui |
|
1387 | 1381 | # unbundle state attr |
|
1388 | 1382 | self._headerdata = header |
@@ -12,6 +12,7 b' were part of the actual repository.' | |||
|
12 | 12 | """ |
|
13 | 13 | |
|
14 | 14 | |
|
15 | import contextlib | |
|
15 | 16 | import os |
|
16 | 17 | import shutil |
|
17 | 18 | |
@@ -108,7 +109,15 b' class bundlerevlog(revlog.revlog):' | |||
|
108 | 109 | self.bundlerevs.add(n) |
|
109 | 110 | n += 1 |
|
110 | 111 | |
|
111 | def _chunk(self, rev, df=None): | |
|
112 | @contextlib.contextmanager | |
|
113 | def reading(self): | |
|
114 | if self.repotiprev < 0: | |
|
115 | yield | |
|
116 | else: | |
|
117 | with super().reading() as x: | |
|
118 | yield x | |
|
119 | ||
|
120 | def _chunk(self, rev): | |
|
112 | 121 | # Warning: in case of bundle, the diff is against what we stored as |
|
113 | 122 | # delta base, not against rev - 1 |
|
114 | 123 | # XXX: could use some caching |
@@ -129,7 +138,7 b' class bundlerevlog(revlog.revlog):' | |||
|
129 | 138 | |
|
130 | 139 | return mdiff.textdiff(self.rawdata(rev1), self.rawdata(rev2)) |
|
131 | 140 | |
|
132 |
def _rawtext(self, node, rev |
|
|
141 | def _rawtext(self, node, rev): | |
|
133 | 142 | if rev is None: |
|
134 | 143 | rev = self.rev(node) |
|
135 | 144 | validated = False |
@@ -138,8 +147,11 b' class bundlerevlog(revlog.revlog):' | |||
|
138 | 147 | iterrev = rev |
|
139 | 148 | # reconstruct the revision if it is from a changegroup |
|
140 | 149 | while iterrev > self.repotiprev: |
|
141 | if self._revisioncache and self._revisioncache[1] == iterrev: | |
|
142 |
|
|
|
150 | if ( | |
|
151 | self._inner._revisioncache | |
|
152 | and self._inner._revisioncache[1] == iterrev | |
|
153 | ): | |
|
154 | rawtext = self._inner._revisioncache[2] | |
|
143 | 155 | break |
|
144 | 156 | chain.append(iterrev) |
|
145 | 157 | iterrev = self.index[iterrev][3] |
@@ -147,7 +159,8 b' class bundlerevlog(revlog.revlog):' | |||
|
147 | 159 | rawtext = b'' |
|
148 | 160 | elif rawtext is None: |
|
149 | 161 | r = super(bundlerevlog, self)._rawtext( |
|
150 |
self.node(iterrev), |
|
|
162 | self.node(iterrev), | |
|
163 | iterrev, | |
|
151 | 164 | ) |
|
152 | 165 | __, rawtext, validated = r |
|
153 | 166 | if chain: |
@@ -194,6 +207,8 b' class bundlemanifest(bundlerevlog, manif' | |||
|
194 | 207 | dirlogstarts=None, |
|
195 | 208 | dir=b'', |
|
196 | 209 | ): |
|
210 | # XXX manifestrevlog is not actually a revlog , so mixing it with | |
|
211 | # bundlerevlog is not a good idea. | |
|
197 | 212 | manifest.manifestrevlog.__init__(self, nodeconstants, opener, tree=dir) |
|
198 | 213 | bundlerevlog.__init__( |
|
199 | 214 | self, |
@@ -245,7 +260,7 b' class bundlepeer(localrepo.localpeer):' | |||
|
245 | 260 | class bundlephasecache(phases.phasecache): |
|
246 | 261 | def __init__(self, *args, **kwargs): |
|
247 | 262 | super(bundlephasecache, self).__init__(*args, **kwargs) |
|
248 |
if |
|
|
263 | if hasattr(self, 'opener'): | |
|
249 | 264 | self.opener = vfsmod.readonlyvfs(self.opener) |
|
250 | 265 | |
|
251 | 266 | def write(self): |
@@ -1043,7 +1043,7 b' def _resolvenarrowrevisioninfo(' | |||
|
1043 | 1043 | return i |
|
1044 | 1044 | # We failed to resolve a parent for this node, so |
|
1045 | 1045 | # we crash the changegroup construction. |
|
1046 |
if |
|
|
1046 | if hasattr(store, 'target'): | |
|
1047 | 1047 | target = store.display_id |
|
1048 | 1048 | else: |
|
1049 | 1049 | # some revlog not actually a revlog |
@@ -91,102 +91,6 b' def stripdesc(desc):' | |||
|
91 | 91 | return b'\n'.join([l.rstrip() for l in desc.splitlines()]).strip(b'\n') |
|
92 | 92 | |
|
93 | 93 | |
|
94 | class appender: | |
|
95 | """the changelog index must be updated last on disk, so we use this class | |
|
96 | to delay writes to it""" | |
|
97 | ||
|
98 | def __init__(self, vfs, name, mode, buf): | |
|
99 | self.data = buf | |
|
100 | fp = vfs(name, mode) | |
|
101 | self.fp = fp | |
|
102 | self.offset = fp.tell() | |
|
103 | self.size = vfs.fstat(fp).st_size | |
|
104 | self._end = self.size | |
|
105 | ||
|
106 | def end(self): | |
|
107 | return self._end | |
|
108 | ||
|
109 | def tell(self): | |
|
110 | return self.offset | |
|
111 | ||
|
112 | def flush(self): | |
|
113 | pass | |
|
114 | ||
|
115 | @property | |
|
116 | def closed(self): | |
|
117 | return self.fp.closed | |
|
118 | ||
|
119 | def close(self): | |
|
120 | self.fp.close() | |
|
121 | ||
|
122 | def seek(self, offset, whence=0): | |
|
123 | '''virtual file offset spans real file and data''' | |
|
124 | if whence == 0: | |
|
125 | self.offset = offset | |
|
126 | elif whence == 1: | |
|
127 | self.offset += offset | |
|
128 | elif whence == 2: | |
|
129 | self.offset = self.end() + offset | |
|
130 | if self.offset < self.size: | |
|
131 | self.fp.seek(self.offset) | |
|
132 | ||
|
133 | def read(self, count=-1): | |
|
134 | '''only trick here is reads that span real file and data''' | |
|
135 | ret = b"" | |
|
136 | if self.offset < self.size: | |
|
137 | s = self.fp.read(count) | |
|
138 | ret = s | |
|
139 | self.offset += len(s) | |
|
140 | if count > 0: | |
|
141 | count -= len(s) | |
|
142 | if count != 0: | |
|
143 | doff = self.offset - self.size | |
|
144 | self.data.insert(0, b"".join(self.data)) | |
|
145 | del self.data[1:] | |
|
146 | s = self.data[0][doff : doff + count] | |
|
147 | self.offset += len(s) | |
|
148 | ret += s | |
|
149 | return ret | |
|
150 | ||
|
151 | def write(self, s): | |
|
152 | self.data.append(bytes(s)) | |
|
153 | self.offset += len(s) | |
|
154 | self._end += len(s) | |
|
155 | ||
|
156 | def __enter__(self): | |
|
157 | self.fp.__enter__() | |
|
158 | return self | |
|
159 | ||
|
160 | def __exit__(self, *args): | |
|
161 | return self.fp.__exit__(*args) | |
|
162 | ||
|
163 | ||
|
164 | class _divertopener: | |
|
165 | def __init__(self, opener, target): | |
|
166 | self._opener = opener | |
|
167 | self._target = target | |
|
168 | ||
|
169 | def __call__(self, name, mode=b'r', checkambig=False, **kwargs): | |
|
170 | if name != self._target: | |
|
171 | return self._opener(name, mode, **kwargs) | |
|
172 | return self._opener(name + b".a", mode, **kwargs) | |
|
173 | ||
|
174 | def __getattr__(self, attr): | |
|
175 | return getattr(self._opener, attr) | |
|
176 | ||
|
177 | ||
|
178 | def _delayopener(opener, target, buf): | |
|
179 | """build an opener that stores chunks in 'buf' instead of 'target'""" | |
|
180 | ||
|
181 | def _delay(name, mode=b'r', checkambig=False, **kwargs): | |
|
182 | if name != target: | |
|
183 | return opener(name, mode, **kwargs) | |
|
184 | assert not kwargs | |
|
185 | return appender(opener, name, mode, buf) | |
|
186 | ||
|
187 | return _delay | |
|
188 | ||
|
189 | ||
|
190 | 94 | @attr.s |
|
191 | 95 | class _changelogrevision: |
|
192 | 96 | # Extensions might modify _defaultextra, so let the constructor below pass |
@@ -410,17 +314,14 b' class changelog(revlog.revlog):' | |||
|
410 | 314 | # changelogs don't benefit from generaldelta. |
|
411 | 315 | |
|
412 | 316 | self._format_flags &= ~revlog.FLAG_GENERALDELTA |
|
413 | self._generaldelta = False | |
|
317 | self.delta_config.general_delta = False | |
|
414 | 318 | |
|
415 | 319 | # Delta chains for changelogs tend to be very small because entries |
|
416 | 320 | # tend to be small and don't delta well with each. So disable delta |
|
417 | 321 | # chains. |
|
418 | 322 | self._storedeltachains = False |
|
419 | 323 | |
|
420 |
self._ |
|
|
421 | self._delayed = False | |
|
422 | self._delaybuf = None | |
|
423 | self._divert = False | |
|
324 | self._v2_delayed = False | |
|
424 | 325 | self._filteredrevs = frozenset() |
|
425 | 326 | self._filteredrevs_hashcache = {} |
|
426 | 327 | self._copiesstorage = opener.options.get(b'copies-storage') |
@@ -437,83 +338,50 b' class changelog(revlog.revlog):' | |||
|
437 | 338 | self._filteredrevs_hashcache = {} |
|
438 | 339 | |
|
439 | 340 | def _write_docket(self, tr): |
|
440 | if not self._delayed: | |
|
341 | if not self._v2_delayed: | |
|
441 | 342 | super(changelog, self)._write_docket(tr) |
|
442 | 343 | |
|
443 | 344 | def delayupdate(self, tr): |
|
444 | 345 | """delay visibility of index updates to other readers""" |
|
445 | if self._docket is None and not self._delayed: | |
|
446 | if len(self) == 0: | |
|
447 |
|
|
|
448 | if self._realopener.exists(self._indexfile + b'.a'): | |
|
449 | self._realopener.unlink(self._indexfile + b'.a') | |
|
450 | self.opener = _divertopener(self._realopener, self._indexfile) | |
|
451 | else: | |
|
452 | self._delaybuf = [] | |
|
453 | self.opener = _delayopener( | |
|
454 | self._realopener, self._indexfile, self._delaybuf | |
|
455 | ) | |
|
456 | self._segmentfile.opener = self.opener | |
|
457 | self._segmentfile_sidedata.opener = self.opener | |
|
458 | self._delayed = True | |
|
346 | assert not self._inner.is_open | |
|
347 | if self._docket is not None: | |
|
348 | self._v2_delayed = True | |
|
349 | else: | |
|
350 | new_index = self._inner.delay() | |
|
351 | if new_index is not None: | |
|
352 | self._indexfile = new_index | |
|
353 | tr.registertmp(new_index) | |
|
459 | 354 | tr.addpending(b'cl-%i' % id(self), self._writepending) |
|
460 | 355 | tr.addfinalize(b'cl-%i' % id(self), self._finalize) |
|
461 | 356 | |
|
462 | 357 | def _finalize(self, tr): |
|
463 | 358 | """finalize index updates""" |
|
464 | self._delayed = False | |
|
465 | self.opener = self._realopener | |
|
466 | self._segmentfile.opener = self.opener | |
|
467 | self._segmentfile_sidedata.opener = self.opener | |
|
468 | # move redirected index data back into place | |
|
359 | assert not self._inner.is_open | |
|
469 | 360 | if self._docket is not None: |
|
470 |
self. |
|
|
471 | elif self._divert: | |
|
472 | assert not self._delaybuf | |
|
473 | tmpname = self._indexfile + b".a" | |
|
474 | nfile = self.opener.open(tmpname) | |
|
475 | nfile.close() | |
|
476 | self.opener.rename(tmpname, self._indexfile, checkambig=True) | |
|
477 | elif self._delaybuf: | |
|
478 | fp = self.opener(self._indexfile, b'a', checkambig=True) | |
|
479 | fp.write(b"".join(self._delaybuf)) | |
|
480 | fp.close() | |
|
481 | self._delaybuf = None | |
|
482 | self._divert = False | |
|
483 | # split when we're done | |
|
484 | self._enforceinlinesize(tr, side_write=False) | |
|
361 | self._docket.write(tr) | |
|
362 | self._v2_delayed = False | |
|
363 | else: | |
|
364 | new_index_file = self._inner.finalize_pending() | |
|
365 | self._indexfile = new_index_file | |
|
366 | # split when we're done | |
|
367 | self._enforceinlinesize(tr, side_write=False) | |
|
485 | 368 | |
|
486 | 369 | def _writepending(self, tr): |
|
487 | 370 | """create a file containing the unfinalized state for |
|
488 | 371 | pretxnchangegroup""" |
|
372 | assert not self._inner.is_open | |
|
489 | 373 | if self._docket: |
|
490 |
|
|
|
491 |
|
|
|
492 | # make a temporary copy of the index | |
|
493 | fp1 = self._realopener(self._indexfile) | |
|
494 | pendingfilename = self._indexfile + b".a" | |
|
495 | # register as a temp file to ensure cleanup on failure | |
|
496 |
tr.registertmp( |
|
|
497 | # write existing data | |
|
498 | fp2 = self._realopener(pendingfilename, b"w") | |
|
499 | fp2.write(fp1.read()) | |
|
500 | # add pending data | |
|
501 | fp2.write(b"".join(self._delaybuf)) | |
|
502 | fp2.close() | |
|
503 | # switch modes so finalize can simply rename | |
|
504 | self._delaybuf = None | |
|
505 | self._divert = True | |
|
506 | self.opener = _divertopener(self._realopener, self._indexfile) | |
|
507 | self._segmentfile.opener = self.opener | |
|
508 | self._segmentfile_sidedata.opener = self.opener | |
|
509 | ||
|
510 | if self._divert: | |
|
511 | return True | |
|
512 | ||
|
513 | return False | |
|
374 | any_pending = self._docket.write(tr, pending=True) | |
|
375 | self._v2_delayed = False | |
|
376 | else: | |
|
377 | new_index, any_pending = self._inner.write_pending() | |
|
378 | if new_index is not None: | |
|
379 | self._indexfile = new_index | |
|
380 | tr.registertmp(new_index) | |
|
381 | return any_pending | |
|
514 | 382 | |
|
515 | 383 | def _enforceinlinesize(self, tr, side_write=True): |
|
516 |
if not self._delay |
|
|
384 | if not self.is_delaying: | |
|
517 | 385 | revlog.revlog._enforceinlinesize(self, tr, side_write=side_write) |
|
518 | 386 | |
|
519 | 387 | def read(self, nodeorrev): |
@@ -49,10 +49,6 b' import struct' | |||
|
49 | 49 | import time |
|
50 | 50 | |
|
51 | 51 | from .i18n import _ |
|
52 | from .pycompat import ( | |
|
53 | getattr, | |
|
54 | setattr, | |
|
55 | ) | |
|
56 | 52 | from .node import hex |
|
57 | 53 | |
|
58 | 54 | from . import ( |
@@ -236,7 +232,7 b' def _newchgui(srcui, csystem, attachio):' | |||
|
236 | 232 | # will behave differently (i.e. write to stdout). |
|
237 | 233 | if ( |
|
238 | 234 | out is not self.fout |
|
239 |
or not |
|
|
235 | or not hasattr(self.fout, 'fileno') | |
|
240 | 236 | or self.fout.fileno() != procutil.stdout.fileno() |
|
241 | 237 | or self._finoutredirected |
|
242 | 238 | ): |
@@ -260,9 +256,9 b' def _loadnewui(srcui, args, cdebug):' | |||
|
260 | 256 | from . import dispatch # avoid cycle |
|
261 | 257 | |
|
262 | 258 | newui = srcui.__class__.load() |
|
263 |
for a in [ |
|
|
259 | for a in ['fin', 'fout', 'ferr', 'environ']: | |
|
264 | 260 | setattr(newui, a, getattr(srcui, a)) |
|
265 |
if |
|
|
261 | if hasattr(srcui, '_csystem'): | |
|
266 | 262 | newui._csystem = srcui._csystem |
|
267 | 263 | |
|
268 | 264 | # command line args |
@@ -348,9 +344,9 b' class channeledsystem:' | |||
|
348 | 344 | |
|
349 | 345 | _iochannels = [ |
|
350 | 346 | # server.ch, ui.fp, mode |
|
351 |
( |
|
|
352 |
( |
|
|
353 |
( |
|
|
347 | ('cin', 'fin', 'rb'), | |
|
348 | ('cout', 'fout', 'wb'), | |
|
349 | ('cerr', 'ferr', 'wb'), | |
|
354 | 350 | ] |
|
355 | 351 | |
|
356 | 352 | |
@@ -603,7 +599,7 b' class chgcmdserver(commandserver.server)' | |||
|
603 | 599 | } |
|
604 | 600 | ) |
|
605 | 601 | |
|
606 |
if |
|
|
602 | if hasattr(procutil, 'setprocname'): | |
|
607 | 603 | |
|
608 | 604 | def setprocname(self): |
|
609 | 605 | """Change process title""" |
@@ -28,9 +28,7 b' from .node import (' | |||
|
28 | 28 | short, |
|
29 | 29 | ) |
|
30 | 30 | from .pycompat import ( |
|
31 | getattr, | |
|
32 | 31 | open, |
|
33 | setattr, | |
|
34 | 32 | ) |
|
35 | 33 | from .thirdparty import attr |
|
36 | 34 | |
@@ -813,18 +811,17 b' def tersedir(statuslist, terseargs):' | |||
|
813 | 811 | # creating a dirnode object for the root of the repo |
|
814 | 812 | rootobj = dirnode(b'') |
|
815 | 813 | pstatus = ( |
|
816 |
|
|
|
817 |
|
|
|
818 |
|
|
|
819 |
|
|
|
820 |
|
|
|
821 |
|
|
|
822 |
|
|
|
814 | ('modified', b'm'), | |
|
815 | ('added', b'a'), | |
|
816 | ('deleted', b'd'), | |
|
817 | ('clean', b'c'), | |
|
818 | ('unknown', b'u'), | |
|
819 | ('ignored', b'i'), | |
|
820 | ('removed', b'r'), | |
|
823 | 821 | ) |
|
824 | 822 | |
|
825 | 823 | tersedict = {} |
|
826 | for attrname in pstatus: | |
|
827 | statuschar = attrname[0:1] | |
|
824 | for attrname, statuschar in pstatus: | |
|
828 | 825 | for f in getattr(statuslist, attrname): |
|
829 | 826 | rootobj.addfile(f, statuschar) |
|
830 | 827 | tersedict[statuschar] = [] |
@@ -1007,7 +1004,7 b' def findcmd(cmd, table, strict=True):' | |||
|
1007 | 1004 | raise error.UnknownCommand(cmd, allcmds) |
|
1008 | 1005 | |
|
1009 | 1006 | |
|
1010 | def changebranch(ui, repo, revs, label, opts): | |
|
1007 | def changebranch(ui, repo, revs, label, **opts): | |
|
1011 | 1008 | """Change the branch name of given revs to label""" |
|
1012 | 1009 | |
|
1013 | 1010 | with repo.wlock(), repo.lock(), repo.transaction(b'branches'): |
@@ -1026,7 +1023,7 b' def changebranch(ui, repo, revs, label, ' | |||
|
1026 | 1023 | root = repo[roots.first()] |
|
1027 | 1024 | rpb = {parent.branch() for parent in root.parents()} |
|
1028 | 1025 | if ( |
|
1029 |
not opts.get( |
|
|
1026 | not opts.get('force') | |
|
1030 | 1027 | and label not in rpb |
|
1031 | 1028 | and label in repo.branchmap() |
|
1032 | 1029 | ): |
@@ -1450,7 +1447,7 b' def openstorage(repo, cmd, file_, opts, ' | |||
|
1450 | 1447 | if returnrevlog: |
|
1451 | 1448 | if isinstance(r, revlog.revlog): |
|
1452 | 1449 | pass |
|
1453 |
elif |
|
|
1450 | elif hasattr(r, '_revlog'): | |
|
1454 | 1451 | r = r._revlog # pytype: disable=attribute-error |
|
1455 | 1452 | elif r is not None: |
|
1456 | 1453 | raise error.InputError( |
@@ -3329,9 +3326,7 b' def buildcommittext(repo, ctx, subs, ext' | |||
|
3329 | 3326 | return b"\n".join(edittext) |
|
3330 | 3327 | |
|
3331 | 3328 | |
|
3332 |
def commitstatus(repo, node, branch, bheads=None, tip=None, opts |
|
|
3333 | if opts is None: | |
|
3334 | opts = {} | |
|
3329 | def commitstatus(repo, node, branch, bheads=None, tip=None, **opts): | |
|
3335 | 3330 | ctx = repo[node] |
|
3336 | 3331 | parents = ctx.parents() |
|
3337 | 3332 | |
@@ -3341,7 +3336,7 b' def commitstatus(repo, node, branch, bhe' | |||
|
3341 | 3336 | # for most instances |
|
3342 | 3337 | repo.ui.warn(_(b"warning: commit already existed in the repository!\n")) |
|
3343 | 3338 | elif ( |
|
3344 |
not opts.get( |
|
|
3339 | not opts.get('amend') | |
|
3345 | 3340 | and bheads |
|
3346 | 3341 | and node not in bheads |
|
3347 | 3342 | and not any( |
@@ -3378,7 +3373,7 b' def commitstatus(repo, node, branch, bhe' | |||
|
3378 | 3373 | # |
|
3379 | 3374 | # H H n head merge: head count decreases |
|
3380 | 3375 | |
|
3381 |
if not opts.get( |
|
|
3376 | if not opts.get('close_branch'): | |
|
3382 | 3377 | for r in parents: |
|
3383 | 3378 | if r.closesbranch() and r.branch() == branch: |
|
3384 | 3379 | repo.ui.status( |
@@ -9,7 +9,6 b'' | |||
|
9 | 9 | import re |
|
10 | 10 | |
|
11 | 11 | from .i18n import _ |
|
12 | from .pycompat import getattr | |
|
13 | 12 | |
|
14 | 13 | from . import ( |
|
15 | 14 | encoding, |
@@ -18,8 +18,8 b' from .node import (' | |||
|
18 | 18 | short, |
|
19 | 19 | wdirrev, |
|
20 | 20 | ) |
|
21 | from .pycompat import open | |
|
22 | 21 | from . import ( |
|
22 | admin_commands as admin_commands_mod, | |
|
23 | 23 | archival, |
|
24 | 24 | bookmarks, |
|
25 | 25 | bundle2, |
@@ -76,6 +76,7 b' from .utils import (' | |||
|
76 | 76 | |
|
77 | 77 | table = {} |
|
78 | 78 | table.update(debugcommandsmod.command._table) |
|
79 | table.update(admin_commands_mod.command._table) | |
|
79 | 80 | |
|
80 | 81 | command = registrar.command(table) |
|
81 | 82 | INTENT_READONLY = registrar.INTENT_READONLY |
@@ -646,8 +647,7 b' def archive(ui, repo, dest, **opts):' | |||
|
646 | 647 | Returns 0 on success. |
|
647 | 648 | """ |
|
648 | 649 | |
|
649 | opts = pycompat.byteskwargs(opts) | |
|
650 | rev = opts.get(b'rev') | |
|
650 | rev = opts.get('rev') | |
|
651 | 651 | if rev: |
|
652 | 652 | repo = scmutil.unhidehashlikerevs(repo, [rev], b'nowarn') |
|
653 | 653 | ctx = logcmdutil.revsingle(repo, rev) |
@@ -660,8 +660,8 b' def archive(ui, repo, dest, **opts):' | |||
|
660 | 660 | if os.path.realpath(dest) == repo.root: |
|
661 | 661 | raise error.InputError(_(b'repository root cannot be destination')) |
|
662 | 662 | |
|
663 |
kind = opts.get( |
|
|
664 |
prefix = opts.get( |
|
|
663 | kind = opts.get('type') or archival.guesskind(dest) or b'files' | |
|
664 | prefix = opts.get('prefix') | |
|
665 | 665 | |
|
666 | 666 | if dest == b'-': |
|
667 | 667 | if kind == b'files': |
@@ -671,16 +671,16 b' def archive(ui, repo, dest, **opts):' | |||
|
671 | 671 | prefix = os.path.basename(repo.root) + b'-%h' |
|
672 | 672 | |
|
673 | 673 | prefix = cmdutil.makefilename(ctx, prefix) |
|
674 | match = scmutil.match(ctx, [], opts) | |
|
674 | match = scmutil.match(ctx, [], pycompat.byteskwargs(opts)) | |
|
675 | 675 | archival.archive( |
|
676 | 676 | repo, |
|
677 | 677 | dest, |
|
678 | 678 | node, |
|
679 | 679 | kind, |
|
680 |
not opts.get( |
|
|
680 | not opts.get('no_decode'), | |
|
681 | 681 | match, |
|
682 | 682 | prefix, |
|
683 |
subrepos=opts.get( |
|
|
683 | subrepos=opts.get('subrepos'), | |
|
684 | 684 | ) |
|
685 | 685 | |
|
686 | 686 | |
@@ -775,7 +775,6 b' def backout(ui, repo, node=None, rev=Non' | |||
|
775 | 775 | |
|
776 | 776 | def _dobackout(ui, repo, node=None, rev=None, **opts): |
|
777 | 777 | cmdutil.check_incompatible_arguments(opts, 'no_commit', ['commit', 'merge']) |
|
778 | opts = pycompat.byteskwargs(opts) | |
|
779 | 778 | |
|
780 | 779 | if rev and node: |
|
781 | 780 | raise error.InputError(_(b"please specify just one revision")) |
@@ -786,9 +785,9 b' def _dobackout(ui, repo, node=None, rev=' | |||
|
786 | 785 | if not rev: |
|
787 | 786 | raise error.InputError(_(b"please specify a revision to backout")) |
|
788 | 787 | |
|
789 |
date = opts.get( |
|
|
788 | date = opts.get('date') | |
|
790 | 789 | if date: |
|
791 |
opts[ |
|
|
790 | opts['date'] = dateutil.parsedate(date) | |
|
792 | 791 | |
|
793 | 792 | cmdutil.checkunfinished(repo) |
|
794 | 793 | cmdutil.bailifchanged(repo) |
@@ -805,16 +804,16 b' def _dobackout(ui, repo, node=None, rev=' | |||
|
805 | 804 | if p1 == repo.nullid: |
|
806 | 805 | raise error.InputError(_(b'cannot backout a change with no parents')) |
|
807 | 806 | if p2 != repo.nullid: |
|
808 |
if not opts.get( |
|
|
807 | if not opts.get('parent'): | |
|
809 | 808 | raise error.InputError(_(b'cannot backout a merge changeset')) |
|
810 |
p = repo.lookup(opts[ |
|
|
809 | p = repo.lookup(opts['parent']) | |
|
811 | 810 | if p not in (p1, p2): |
|
812 | 811 | raise error.InputError( |
|
813 | 812 | _(b'%s is not a parent of %s') % (short(p), short(node)) |
|
814 | 813 | ) |
|
815 | 814 | parent = p |
|
816 | 815 | else: |
|
817 |
if opts.get( |
|
|
816 | if opts.get('parent'): | |
|
818 | 817 | raise error.InputError( |
|
819 | 818 | _(b'cannot use --parent on non-merge changeset') |
|
820 | 819 | ) |
@@ -824,9 +823,9 b' def _dobackout(ui, repo, node=None, rev=' | |||
|
824 | 823 | branch = repo.dirstate.branch() |
|
825 | 824 | bheads = repo.branchheads(branch) |
|
826 | 825 | rctx = scmutil.revsingle(repo, hex(parent)) |
|
827 |
if not opts.get( |
|
|
826 | if not opts.get('merge') and op1 != node: | |
|
828 | 827 | with repo.transaction(b"backout"): |
|
829 |
overrides = {(b'ui', b'forcemerge'): opts.get( |
|
|
828 | overrides = {(b'ui', b'forcemerge'): opts.get('tool', b'')} | |
|
830 | 829 | with ui.configoverride(overrides, b'backout'): |
|
831 | 830 | stats = mergemod.back_out(ctx, parent=repo[parent]) |
|
832 | 831 | repo.setparents(op1, op2) |
@@ -841,7 +840,7 b' def _dobackout(ui, repo, node=None, rev=' | |||
|
841 | 840 | repo.dirstate.setbranch(branch, repo.currenttransaction()) |
|
842 | 841 | cmdutil.revert(ui, repo, rctx) |
|
843 | 842 | |
|
844 |
if opts.get( |
|
|
843 | if opts.get('no_commit'): | |
|
845 | 844 | msg = _(b"changeset %s backed out, don't forget to commit.\n") |
|
846 | 845 | ui.status(msg % short(node)) |
|
847 | 846 | return 0 |
@@ -862,7 +861,9 b' def _dobackout(ui, repo, node=None, rev=' | |||
|
862 | 861 | # save to detect changes |
|
863 | 862 | tip = repo.changelog.tip() |
|
864 | 863 | |
|
865 |
newnode = cmdutil.commit( |
|
|
864 | newnode = cmdutil.commit( | |
|
865 | ui, repo, commitfunc, [], pycompat.byteskwargs(opts) | |
|
866 | ) | |
|
866 | 867 | if not newnode: |
|
867 | 868 | ui.status(_(b"nothing changed\n")) |
|
868 | 869 | return 1 |
@@ -875,10 +876,10 b' def _dobackout(ui, repo, node=None, rev=' | |||
|
875 | 876 | _(b'changeset %s backs out changeset %s\n') |
|
876 | 877 | % (nice(newnode), nice(node)) |
|
877 | 878 | ) |
|
878 |
if opts.get( |
|
|
879 | if opts.get('merge') and op1 != node: | |
|
879 | 880 | hg.clean(repo, op1, show_stats=False) |
|
880 | 881 | ui.status(_(b'merging with changeset %s\n') % nice(newnode)) |
|
881 |
overrides = {(b'ui', b'forcemerge'): opts.get( |
|
|
882 | overrides = {(b'ui', b'forcemerge'): opts.get('tool', b'')} | |
|
882 | 883 | with ui.configoverride(overrides, b'backout'): |
|
883 | 884 | return hg.merge(repo[b'tip']) |
|
884 | 885 | return 0 |
@@ -1239,56 +1240,55 b' def bookmark(ui, repo, *names, **opts):' | |||
|
1239 | 1240 | |
|
1240 | 1241 | hg book -ql . |
|
1241 | 1242 | """ |
|
1242 | opts = pycompat.byteskwargs(opts) | |
|
1243 |
|
|
|
1244 | rev = opts.get(b'rev') | |
|
1245 | inactive = opts.get(b'inactive') # meaning add/rename to inactive bookmark | |
|
1246 | ||
|
1247 | action = cmdutil.check_at_most_one_arg(opts, b'delete', b'rename', b'list') | |
|
1243 | force = opts.get('force') | |
|
1244 | rev = opts.get('rev') | |
|
1245 | inactive = opts.get('inactive') # meaning add/rename to inactive bookmark | |
|
1246 | ||
|
1247 | action = cmdutil.check_at_most_one_arg(opts, 'delete', 'rename', 'list') | |
|
1248 | 1248 | if action: |
|
1249 |
cmdutil.check_incompatible_arguments(opts, action, [ |
|
|
1249 | cmdutil.check_incompatible_arguments(opts, action, ['rev']) | |
|
1250 | 1250 | elif names or rev: |
|
1251 |
action = |
|
|
1251 | action = 'add' | |
|
1252 | 1252 | elif inactive: |
|
1253 |
action = |
|
|
1253 | action = 'inactive' # meaning deactivate | |
|
1254 | 1254 | else: |
|
1255 |
action = |
|
|
1256 | ||
|
1257 | cmdutil.check_incompatible_arguments( | |
|
1258 | opts, b'inactive', [b'delete', b'list'] | |
|
1259 | ) | |
|
1260 | if not names and action in {b'add', b'delete'}: | |
|
1255 | action = 'list' | |
|
1256 | ||
|
1257 | cmdutil.check_incompatible_arguments(opts, 'inactive', ['delete', 'list']) | |
|
1258 | if not names and action in {'add', 'delete'}: | |
|
1261 | 1259 | raise error.InputError(_(b"bookmark name required")) |
|
1262 | 1260 | |
|
1263 |
if action in { |
|
|
1261 | if action in {'add', 'delete', 'rename', 'inactive'}: | |
|
1264 | 1262 | with repo.wlock(), repo.lock(), repo.transaction(b'bookmark') as tr: |
|
1265 |
if action == |
|
|
1263 | if action == 'delete': | |
|
1266 | 1264 | names = pycompat.maplist(repo._bookmarks.expandname, names) |
|
1267 | 1265 | bookmarks.delete(repo, tr, names) |
|
1268 |
elif action == |
|
|
1266 | elif action == 'rename': | |
|
1269 | 1267 | if not names: |
|
1270 | 1268 | raise error.InputError(_(b"new bookmark name required")) |
|
1271 | 1269 | elif len(names) > 1: |
|
1272 | 1270 | raise error.InputError( |
|
1273 | 1271 | _(b"only one new bookmark name allowed") |
|
1274 | 1272 | ) |
|
1275 |
oldname = repo._bookmarks.expandname(opts[ |
|
|
1273 | oldname = repo._bookmarks.expandname(opts['rename']) | |
|
1276 | 1274 | bookmarks.rename(repo, tr, oldname, names[0], force, inactive) |
|
1277 |
elif action == |
|
|
1275 | elif action == 'add': | |
|
1278 | 1276 | bookmarks.addbookmarks(repo, tr, names, rev, force, inactive) |
|
1279 |
elif action == |
|
|
1277 | elif action == 'inactive': | |
|
1280 | 1278 | if len(repo._bookmarks) == 0: |
|
1281 | 1279 | ui.status(_(b"no bookmarks set\n")) |
|
1282 | 1280 | elif not repo._activebookmark: |
|
1283 | 1281 | ui.status(_(b"no active bookmark\n")) |
|
1284 | 1282 | else: |
|
1285 | 1283 | bookmarks.deactivate(repo) |
|
1286 |
elif action == |
|
|
1284 | elif action == 'list': | |
|
1287 | 1285 | names = pycompat.maplist(repo._bookmarks.expandname, names) |
|
1288 | with ui.formatter(b'bookmarks', opts) as fm: | |
|
1286 | with ui.formatter(b'bookmarks', pycompat.byteskwargs(opts)) as fm: | |
|
1289 | 1287 | bookmarks.printbookmarks(ui, repo, fm, names) |
|
1290 | 1288 | else: |
|
1291 |
raise error.ProgrammingError( |
|
|
1289 | raise error.ProgrammingError( | |
|
1290 | b'invalid action: %s' % pycompat.sysbytes(action) | |
|
1291 | ) | |
|
1292 | 1292 | |
|
1293 | 1293 | |
|
1294 | 1294 | @command( |
@@ -1340,12 +1340,11 b' def branch(ui, repo, label=None, **opts)' | |||
|
1340 | 1340 | |
|
1341 | 1341 | Returns 0 on success. |
|
1342 | 1342 | """ |
|
1343 | opts = pycompat.byteskwargs(opts) | |
|
1344 | revs = opts.get(b'rev') | |
|
1343 | revs = opts.get('rev') | |
|
1345 | 1344 | if label: |
|
1346 | 1345 | label = label.strip() |
|
1347 | 1346 | |
|
1348 |
if not opts.get( |
|
|
1347 | if not opts.get('clean') and not label: | |
|
1349 | 1348 | if revs: |
|
1350 | 1349 | raise error.InputError( |
|
1351 | 1350 | _(b"no branch name specified for the revisions") |
@@ -1354,7 +1353,7 b' def branch(ui, repo, label=None, **opts)' | |||
|
1354 | 1353 | return |
|
1355 | 1354 | |
|
1356 | 1355 | with repo.wlock(): |
|
1357 |
if opts.get( |
|
|
1356 | if opts.get('clean'): | |
|
1358 | 1357 | label = repo[b'.'].branch() |
|
1359 | 1358 | repo.dirstate.setbranch(label, repo.currenttransaction()) |
|
1360 | 1359 | ui.status(_(b'reset working directory to branch %s\n') % label) |
@@ -1362,9 +1361,9 b' def branch(ui, repo, label=None, **opts)' | |||
|
1362 | 1361 | |
|
1363 | 1362 | scmutil.checknewlabel(repo, label, b'branch') |
|
1364 | 1363 | if revs: |
|
1365 | return cmdutil.changebranch(ui, repo, revs, label, opts) | |
|
1366 | ||
|
1367 |
if not opts.get( |
|
|
1364 | return cmdutil.changebranch(ui, repo, revs, label, **opts) | |
|
1365 | ||
|
1366 | if not opts.get('force') and label in repo.branchmap(): | |
|
1368 | 1367 | if label not in [p.branch() for p in repo[None].parents()]: |
|
1369 | 1368 | raise error.InputError( |
|
1370 | 1369 | _(b'a branch of the same name already exists'), |
@@ -1428,8 +1427,7 b' def branches(ui, repo, active=False, clo' | |||
|
1428 | 1427 | Returns 0. |
|
1429 | 1428 | """ |
|
1430 | 1429 | |
|
1431 | opts = pycompat.byteskwargs(opts) | |
|
1432 | revs = opts.get(b'rev') | |
|
1430 | revs = opts.get('rev') | |
|
1433 | 1431 | selectedbranches = None |
|
1434 | 1432 | if revs: |
|
1435 | 1433 | revs = logcmdutil.revrange(repo, revs) |
@@ -1437,7 +1435,7 b' def branches(ui, repo, active=False, clo' | |||
|
1437 | 1435 | selectedbranches = {getbi(r)[0] for r in revs} |
|
1438 | 1436 | |
|
1439 | 1437 | ui.pager(b'branches') |
|
1440 | fm = ui.formatter(b'branches', opts) | |
|
1438 | fm = ui.formatter(b'branches', pycompat.byteskwargs(opts)) | |
|
1441 | 1439 | hexfunc = fm.hexfunc |
|
1442 | 1440 | |
|
1443 | 1441 | allheads = set(repo.heads()) |
@@ -1568,16 +1566,15 b' def bundle(ui, repo, fname, *dests, **op' | |||
|
1568 | 1566 | |
|
1569 | 1567 | Returns 0 on success, 1 if no changes found. |
|
1570 | 1568 | """ |
|
1571 | opts = pycompat.byteskwargs(opts) | |
|
1572 | 1569 | |
|
1573 | 1570 | revs = None |
|
1574 |
if |
|
|
1575 |
revstrings = opts[ |
|
|
1571 | if 'rev' in opts: | |
|
1572 | revstrings = opts['rev'] | |
|
1576 | 1573 | revs = logcmdutil.revrange(repo, revstrings) |
|
1577 | 1574 | if revstrings and not revs: |
|
1578 | 1575 | raise error.InputError(_(b'no commits to bundle')) |
|
1579 | 1576 | |
|
1580 |
bundletype = opts.get( |
|
|
1577 | bundletype = opts.get('type', b'bzip2').lower() | |
|
1581 | 1578 | try: |
|
1582 | 1579 | bundlespec = bundlecaches.parsebundlespec( |
|
1583 | 1580 | repo, bundletype, strict=False |
@@ -1596,28 +1593,28 b' def bundle(ui, repo, fname, *dests, **op' | |||
|
1596 | 1593 | hint=_(b"use 'hg debugcreatestreamclonebundle'"), |
|
1597 | 1594 | ) |
|
1598 | 1595 | |
|
1599 |
if opts.get( |
|
|
1596 | if opts.get('all'): | |
|
1600 | 1597 | if dests: |
|
1601 | 1598 | raise error.InputError( |
|
1602 | 1599 | _(b"--all is incompatible with specifying destinations") |
|
1603 | 1600 | ) |
|
1604 |
if opts.get( |
|
|
1601 | if opts.get('base'): | |
|
1605 | 1602 | ui.warn(_(b"ignoring --base because --all was specified\n")) |
|
1606 |
if opts.get( |
|
|
1603 | if opts.get('exact'): | |
|
1607 | 1604 | ui.warn(_(b"ignoring --exact because --all was specified\n")) |
|
1608 | 1605 | base = [nullrev] |
|
1609 |
elif opts.get( |
|
|
1606 | elif opts.get('exact'): | |
|
1610 | 1607 | if dests: |
|
1611 | 1608 | raise error.InputError( |
|
1612 | 1609 | _(b"--exact is incompatible with specifying destinations") |
|
1613 | 1610 | ) |
|
1614 |
if opts.get( |
|
|
1611 | if opts.get('base'): | |
|
1615 | 1612 | ui.warn(_(b"ignoring --base because --exact was specified\n")) |
|
1616 | 1613 | base = repo.revs(b'parents(%ld) - %ld', revs, revs) |
|
1617 | 1614 | if not base: |
|
1618 | 1615 | base = [nullrev] |
|
1619 | 1616 | else: |
|
1620 |
base = logcmdutil.revrange(repo, opts.get( |
|
|
1617 | base = logcmdutil.revrange(repo, opts.get('base')) | |
|
1621 | 1618 | if cgversion not in changegroup.supportedoutgoingversions(repo): |
|
1622 | 1619 | raise error.Abort( |
|
1623 | 1620 | _(b"repository does not support bundle version %s") % cgversion |
@@ -1638,7 +1635,7 b' def bundle(ui, repo, fname, *dests, **op' | |||
|
1638 | 1635 | missing = set() |
|
1639 | 1636 | excluded = set() |
|
1640 | 1637 | for path in urlutil.get_push_paths(repo, ui, dests): |
|
1641 | other = hg.peer(repo, opts, path) | |
|
1638 | other = hg.peer(repo, pycompat.byteskwargs(opts), path) | |
|
1642 | 1639 | if revs is not None: |
|
1643 | 1640 | hex_revs = [repo[r].hex() for r in revs] |
|
1644 | 1641 | else: |
@@ -1656,7 +1653,7 b' def bundle(ui, repo, fname, *dests, **op' | |||
|
1656 | 1653 | repo, |
|
1657 | 1654 | other, |
|
1658 | 1655 | onlyheads=heads, |
|
1659 |
force=opts.get( |
|
|
1656 | force=opts.get('force'), | |
|
1660 | 1657 | portable=True, |
|
1661 | 1658 | ) |
|
1662 | 1659 | missing.update(outgoing.missing) |
@@ -1794,25 +1791,22 b' def cat(ui, repo, file1, *pats, **opts):' | |||
|
1794 | 1791 | |
|
1795 | 1792 | Returns 0 on success. |
|
1796 | 1793 | """ |
|
1797 | opts = pycompat.byteskwargs(opts) | |
|
1798 | rev = opts.get(b'rev') | |
|
1794 | rev = opts.get('rev') | |
|
1799 | 1795 | if rev: |
|
1800 | 1796 | repo = scmutil.unhidehashlikerevs(repo, [rev], b'nowarn') |
|
1801 | 1797 | ctx = logcmdutil.revsingle(repo, rev) |
|
1802 | m = scmutil.match(ctx, (file1,) + pats, opts) | |
|
1803 |
fntemplate = opts.pop( |
|
|
1798 | m = scmutil.match(ctx, (file1,) + pats, pycompat.byteskwargs(opts)) | |
|
1799 | fntemplate = opts.pop('output', b'') | |
|
1804 | 1800 | if cmdutil.isstdiofilename(fntemplate): |
|
1805 | 1801 | fntemplate = b'' |
|
1806 | 1802 | |
|
1807 | 1803 | if fntemplate: |
|
1808 | fm = formatter.nullformatter(ui, b'cat', opts) | |
|
1804 | fm = formatter.nullformatter(ui, b'cat', pycompat.byteskwargs(opts)) | |
|
1809 | 1805 | else: |
|
1810 | 1806 | ui.pager(b'cat') |
|
1811 | fm = ui.formatter(b'cat', opts) | |
|
1807 | fm = ui.formatter(b'cat', pycompat.byteskwargs(opts)) | |
|
1812 | 1808 | with fm: |
|
1813 | return cmdutil.cat( | |
|
1814 | ui, repo, ctx, m, fm, fntemplate, b'', **pycompat.strkwargs(opts) | |
|
1815 | ) | |
|
1809 | return cmdutil.cat(ui, repo, ctx, m, fm, fntemplate, b'', **opts) | |
|
1816 | 1810 | |
|
1817 | 1811 | |
|
1818 | 1812 | @command( |
@@ -1972,37 +1966,36 b' def clone(ui, source, dest=None, **opts)' | |||
|
1972 | 1966 | |
|
1973 | 1967 | Returns 0 on success. |
|
1974 | 1968 | """ |
|
1975 | opts = pycompat.byteskwargs(opts) | |
|
1976 | cmdutil.check_at_most_one_arg(opts, b'noupdate', b'updaterev') | |
|
1969 | cmdutil.check_at_most_one_arg(opts, 'noupdate', 'updaterev') | |
|
1977 | 1970 | |
|
1978 | 1971 | # --include/--exclude can come from narrow or sparse. |
|
1979 | 1972 | includepats, excludepats = None, None |
|
1980 | 1973 | |
|
1981 | 1974 | # hg.clone() differentiates between None and an empty set. So make sure |
|
1982 | 1975 | # patterns are sets if narrow is requested without patterns. |
|
1983 |
if opts.get( |
|
|
1976 | if opts.get('narrow'): | |
|
1984 | 1977 | includepats = set() |
|
1985 | 1978 | excludepats = set() |
|
1986 | 1979 | |
|
1987 |
if opts.get( |
|
|
1988 |
includepats = narrowspec.parsepatterns(opts.get( |
|
|
1989 |
if opts.get( |
|
|
1990 |
excludepats = narrowspec.parsepatterns(opts.get( |
|
|
1980 | if opts.get('include'): | |
|
1981 | includepats = narrowspec.parsepatterns(opts.get('include')) | |
|
1982 | if opts.get('exclude'): | |
|
1983 | excludepats = narrowspec.parsepatterns(opts.get('exclude')) | |
|
1991 | 1984 | |
|
1992 | 1985 | r = hg.clone( |
|
1993 | 1986 | ui, |
|
1994 | opts, | |
|
1987 | pycompat.byteskwargs(opts), | |
|
1995 | 1988 | source, |
|
1996 | 1989 | dest, |
|
1997 |
pull=opts.get( |
|
|
1998 |
stream=opts.get( |
|
|
1999 |
revs=opts.get( |
|
|
2000 |
update=opts.get( |
|
|
2001 |
branch=opts.get( |
|
|
2002 |
shareopts=opts.get( |
|
|
1990 | pull=opts.get('pull'), | |
|
1991 | stream=opts.get('stream') or opts.get('uncompressed'), | |
|
1992 | revs=opts.get('rev'), | |
|
1993 | update=opts.get('updaterev') or not opts.get('noupdate'), | |
|
1994 | branch=opts.get('branch'), | |
|
1995 | shareopts=opts.get('shareopts'), | |
|
2003 | 1996 | storeincludepats=includepats, |
|
2004 | 1997 | storeexcludepats=excludepats, |
|
2005 |
depth=opts.get( |
|
|
1998 | depth=opts.get('depth') or None, | |
|
2006 | 1999 | ) |
|
2007 | 2000 | |
|
2008 | 2001 | return r is None |
@@ -2178,7 +2171,6 b' def _docommit(ui, repo, *pats, **opts):' | |||
|
2178 | 2171 | cmdutil.checkunfinished(repo) |
|
2179 | 2172 | |
|
2180 | 2173 | node = cmdutil.amend(ui, repo, old, extra, pats, opts) |
|
2181 | opts = pycompat.byteskwargs(opts) | |
|
2182 | 2174 | if node == old.node(): |
|
2183 | 2175 | ui.status(_(b"nothing changed\n")) |
|
2184 | 2176 | return 1 |
@@ -2209,11 +2201,14 b' def _docommit(ui, repo, *pats, **opts):' | |||
|
2209 | 2201 | extra=extra, |
|
2210 | 2202 | ) |
|
2211 | 2203 | |
|
2212 | opts = pycompat.byteskwargs(opts) | |
|
2213 |
|
|
|
2204 | node = cmdutil.commit( | |
|
2205 | ui, repo, commitfunc, pats, pycompat.byteskwargs(opts) | |
|
2206 | ) | |
|
2214 | 2207 | |
|
2215 | 2208 | if not node: |
|
2216 |
stat = cmdutil.postcommitstatus( |
|
|
2209 | stat = cmdutil.postcommitstatus( | |
|
2210 | repo, pats, pycompat.byteskwargs(opts) | |
|
2211 | ) | |
|
2217 | 2212 | if stat.deleted: |
|
2218 | 2213 | ui.status( |
|
2219 | 2214 | _( |
@@ -2226,7 +2221,7 b' def _docommit(ui, repo, *pats, **opts):' | |||
|
2226 | 2221 | ui.status(_(b"nothing changed\n")) |
|
2227 | 2222 | return 1 |
|
2228 | 2223 | |
|
2229 | cmdutil.commitstatus(repo, node, branch, bheads, tip, opts) | |
|
2224 | cmdutil.commitstatus(repo, node, branch, bheads, tip, **opts) | |
|
2230 | 2225 | |
|
2231 | 2226 | if not ui.quiet and ui.configbool(b'commands', b'commit.post-status'): |
|
2232 | 2227 | status( |
@@ -2237,7 +2232,7 b' def _docommit(ui, repo, *pats, **opts):' | |||
|
2237 | 2232 | removed=True, |
|
2238 | 2233 | deleted=True, |
|
2239 | 2234 | unknown=True, |
|
2240 |
subrepos=opts.get( |
|
|
2235 | subrepos=opts.get('subrepos'), | |
|
2241 | 2236 | ) |
|
2242 | 2237 | |
|
2243 | 2238 | |
@@ -2319,19 +2314,18 b' def config(ui, repo, *values, **opts):' | |||
|
2319 | 2314 | |
|
2320 | 2315 | """ |
|
2321 | 2316 | |
|
2322 | opts = pycompat.byteskwargs(opts) | |
|
2323 | editopts = (b'edit', b'local', b'global', b'shared', b'non_shared') | |
|
2317 | editopts = ('edit', 'local', 'global', 'shared', 'non_shared') | |
|
2324 | 2318 | if any(opts.get(o) for o in editopts): |
|
2325 | 2319 | cmdutil.check_at_most_one_arg(opts, *editopts[1:]) |
|
2326 |
if opts.get( |
|
|
2320 | if opts.get('local'): | |
|
2327 | 2321 | if not repo: |
|
2328 | 2322 | raise error.InputError( |
|
2329 | 2323 | _(b"can't use --local outside a repository") |
|
2330 | 2324 | ) |
|
2331 | 2325 | paths = [repo.vfs.join(b'hgrc')] |
|
2332 |
elif opts.get( |
|
|
2326 | elif opts.get('global'): | |
|
2333 | 2327 | paths = rcutil.systemrcpath() |
|
2334 |
elif opts.get( |
|
|
2328 | elif opts.get('shared'): | |
|
2335 | 2329 | if not repo.shared(): |
|
2336 | 2330 | raise error.InputError( |
|
2337 | 2331 | _(b"repository is not shared; can't use --shared") |
@@ -2344,7 +2338,7 b' def config(ui, repo, *values, **opts):' | |||
|
2344 | 2338 | ) |
|
2345 | 2339 | ) |
|
2346 | 2340 | paths = [vfsmod.vfs(repo.sharedpath).join(b'hgrc')] |
|
2347 |
elif opts.get( |
|
|
2341 | elif opts.get('non_shared'): | |
|
2348 | 2342 | paths = [repo.vfs.join(b'hgrc-not-shared')] |
|
2349 | 2343 | else: |
|
2350 | 2344 | paths = rcutil.userrcpath() |
@@ -2353,17 +2347,15 b' def config(ui, repo, *values, **opts):' | |||
|
2353 | 2347 | if os.path.exists(f): |
|
2354 | 2348 | break |
|
2355 | 2349 | else: |
|
2356 |
if opts.get( |
|
|
2350 | if opts.get('global'): | |
|
2357 | 2351 | samplehgrc = uimod.samplehgrcs[b'global'] |
|
2358 |
elif opts.get( |
|
|
2352 | elif opts.get('local'): | |
|
2359 | 2353 | samplehgrc = uimod.samplehgrcs[b'local'] |
|
2360 | 2354 | else: |
|
2361 | 2355 | samplehgrc = uimod.samplehgrcs[b'user'] |
|
2362 | 2356 | |
|
2363 | 2357 | f = paths[0] |
|
2364 | fp = open(f, b"wb") | |
|
2365 | fp.write(util.tonativeeol(samplehgrc)) | |
|
2366 | fp.close() | |
|
2358 | util.writefile(f, util.tonativeeol(samplehgrc)) | |
|
2367 | 2359 | |
|
2368 | 2360 | editor = ui.geteditor() |
|
2369 | 2361 | ui.system( |
@@ -2374,7 +2366,7 b' def config(ui, repo, *values, **opts):' | |||
|
2374 | 2366 | ) |
|
2375 | 2367 | return |
|
2376 | 2368 | ui.pager(b'config') |
|
2377 | fm = ui.formatter(b'config', opts) | |
|
2369 | fm = ui.formatter(b'config', pycompat.byteskwargs(opts)) | |
|
2378 | 2370 | for t, f in rcutil.rccomponents(): |
|
2379 | 2371 | if t == b'path': |
|
2380 | 2372 | ui.debug(b'read config from: %s\n' % f) |
@@ -2385,7 +2377,7 b' def config(ui, repo, *values, **opts):' | |||
|
2385 | 2377 | pass |
|
2386 | 2378 | else: |
|
2387 | 2379 | raise error.ProgrammingError(b'unknown rctype: %s' % t) |
|
2388 |
untrusted = bool(opts.get( |
|
|
2380 | untrusted = bool(opts.get('untrusted')) | |
|
2389 | 2381 | |
|
2390 | 2382 | selsections = selentries = [] |
|
2391 | 2383 | if values: |
@@ -2396,8 +2388,8 b' def config(ui, repo, *values, **opts):' | |||
|
2396 | 2388 | selentries = set(selentries) |
|
2397 | 2389 | |
|
2398 | 2390 | matched = False |
|
2399 |
all_known = opts[ |
|
|
2400 |
show_source = ui.debugflag or opts.get( |
|
|
2391 | all_known = opts['exp_all_known'] | |
|
2392 | show_source = ui.debugflag or opts.get('source') | |
|
2401 | 2393 | entries = ui.walkconfig(untrusted=untrusted, all_known=all_known) |
|
2402 | 2394 | for section, name, value in entries: |
|
2403 | 2395 | source = ui.configsource(section, name, untrusted) |
@@ -2506,11 +2498,10 b' def copy(ui, repo, *pats, **opts):' | |||
|
2506 | 2498 | |
|
2507 | 2499 | Returns 0 on success, 1 if errors are encountered. |
|
2508 | 2500 | """ |
|
2509 | opts = pycompat.byteskwargs(opts) | |
|
2510 | 2501 | |
|
2511 | 2502 | context = lambda repo: repo.dirstate.changing_files(repo) |
|
2512 |
rev = opts.get( |
|
|
2513 | ctx = None | |
|
2503 | rev = opts.get('at_rev') | |
|
2504 | ||
|
2514 | 2505 | if rev: |
|
2515 | 2506 | ctx = logcmdutil.revsingle(repo, rev) |
|
2516 | 2507 | if ctx.rev() is not None: |
@@ -2518,9 +2509,9 b' def copy(ui, repo, *pats, **opts):' | |||
|
2518 | 2509 | def context(repo): |
|
2519 | 2510 | return util.nullcontextmanager() |
|
2520 | 2511 | |
|
2521 |
opts[ |
|
|
2512 | opts['at_rev'] = ctx.rev() | |
|
2522 | 2513 | with repo.wlock(), context(repo): |
|
2523 | return cmdutil.copy(ui, repo, pats, opts) | |
|
2514 | return cmdutil.copy(ui, repo, pats, pycompat.byteskwargs(opts)) | |
|
2524 | 2515 | |
|
2525 | 2516 | |
|
2526 | 2517 | @command( |
@@ -2984,13 +2975,12 b' def forget(ui, repo, *pats, **opts):' | |||
|
2984 | 2975 | Returns 0 on success. |
|
2985 | 2976 | """ |
|
2986 | 2977 | |
|
2987 | opts = pycompat.byteskwargs(opts) | |
|
2988 | 2978 | if not pats: |
|
2989 | 2979 | raise error.InputError(_(b'no files specified')) |
|
2990 | 2980 | |
|
2991 | 2981 | with repo.wlock(), repo.dirstate.changing_files(repo): |
|
2992 | m = scmutil.match(repo[None], pats, opts) | |
|
2993 |
dryrun, interactive = opts.get( |
|
|
2982 | m = scmutil.match(repo[None], pats, pycompat.byteskwargs(opts)) | |
|
2983 | dryrun, interactive = opts.get('dry_run'), opts.get('interactive') | |
|
2994 | 2984 | uipathfn = scmutil.getuipathfn(repo, legacyrelativevalue=True) |
|
2995 | 2985 | rejected = cmdutil.forget( |
|
2996 | 2986 | ui, |
@@ -3755,19 +3745,18 b' def heads(ui, repo, *branchrevs, **opts)' | |||
|
3755 | 3745 | Returns 0 if matching heads are found, 1 if not. |
|
3756 | 3746 | """ |
|
3757 | 3747 | |
|
3758 | opts = pycompat.byteskwargs(opts) | |
|
3759 | 3748 | start = None |
|
3760 |
rev = opts.get( |
|
|
3749 | rev = opts.get('rev') | |
|
3761 | 3750 | if rev: |
|
3762 | 3751 | repo = scmutil.unhidehashlikerevs(repo, [rev], b'nowarn') |
|
3763 | 3752 | start = logcmdutil.revsingle(repo, rev, None).node() |
|
3764 | 3753 | |
|
3765 |
if opts.get( |
|
|
3754 | if opts.get('topo'): | |
|
3766 | 3755 | heads = [repo[h] for h in repo.heads(start)] |
|
3767 | 3756 | else: |
|
3768 | 3757 | heads = [] |
|
3769 | 3758 | for branch in repo.branchmap(): |
|
3770 |
heads += repo.branchheads(branch, start, opts.get( |
|
|
3759 | heads += repo.branchheads(branch, start, opts.get('closed')) | |
|
3771 | 3760 | heads = [repo[h] for h in heads] |
|
3772 | 3761 | |
|
3773 | 3762 | if branchrevs: |
@@ -3776,7 +3765,7 b' def heads(ui, repo, *branchrevs, **opts)' | |||
|
3776 | 3765 | } |
|
3777 | 3766 | heads = [h for h in heads if h.branch() in branches] |
|
3778 | 3767 | |
|
3779 |
if opts.get( |
|
|
3768 | if opts.get('active') and branchrevs: | |
|
3780 | 3769 | dagheads = repo.heads(start) |
|
3781 | 3770 | heads = [h for h in heads if h.node() in dagheads] |
|
3782 | 3771 | |
@@ -3785,8 +3774,8 b' def heads(ui, repo, *branchrevs, **opts)' | |||
|
3785 | 3774 | if branches - haveheads: |
|
3786 | 3775 | headless = b', '.join(b for b in branches - haveheads) |
|
3787 | 3776 | msg = _(b'no open branch heads found on branches %s') |
|
3788 |
if opts.get( |
|
|
3789 |
msg += _(b' (started at %s)') % opts[ |
|
|
3777 | if opts.get('rev'): | |
|
3778 | msg += _(b' (started at %s)') % opts['rev'] | |
|
3790 | 3779 | ui.warn((msg + b'\n') % headless) |
|
3791 | 3780 | |
|
3792 | 3781 | if not heads: |
@@ -3794,7 +3783,9 b' def heads(ui, repo, *branchrevs, **opts)' | |||
|
3794 | 3783 | |
|
3795 | 3784 | ui.pager(b'heads') |
|
3796 | 3785 | heads = sorted(heads, key=lambda x: -(x.rev())) |
|
3797 |
displayer = logcmdutil.changesetdisplayer( |
|
|
3786 | displayer = logcmdutil.changesetdisplayer( | |
|
3787 | ui, repo, pycompat.byteskwargs(opts) | |
|
3788 | ) | |
|
3798 | 3789 | for ctx in heads: |
|
3799 | 3790 | displayer.show(ctx) |
|
3800 | 3791 | displayer.close() |
@@ -4221,20 +4212,20 b' def import_(ui, repo, patch1=None, *patc' | |||
|
4221 | 4212 | opts, 'no_commit', ['bypass', 'secret'] |
|
4222 | 4213 | ) |
|
4223 | 4214 | cmdutil.check_incompatible_arguments(opts, 'exact', ['edit', 'prefix']) |
|
4224 | opts = pycompat.byteskwargs(opts) | |
|
4215 | ||
|
4225 | 4216 | if not patch1: |
|
4226 | 4217 | raise error.InputError(_(b'need at least one patch to import')) |
|
4227 | 4218 | |
|
4228 | 4219 | patches = (patch1,) + patches |
|
4229 | 4220 | |
|
4230 |
date = opts.get( |
|
|
4221 | date = opts.get('date') | |
|
4231 | 4222 | if date: |
|
4232 |
opts[ |
|
|
4233 | ||
|
4234 |
exact = opts.get( |
|
|
4235 |
update = not opts.get( |
|
|
4223 | opts['date'] = dateutil.parsedate(date) | |
|
4224 | ||
|
4225 | exact = opts.get('exact') | |
|
4226 | update = not opts.get('bypass') | |
|
4236 | 4227 | try: |
|
4237 |
sim = float(opts.get( |
|
|
4228 | sim = float(opts.get('similarity') or 0) | |
|
4238 | 4229 | except ValueError: |
|
4239 | 4230 | raise error.InputError(_(b'similarity must be a number')) |
|
4240 | 4231 | if sim < 0 or sim > 100: |
@@ -4242,17 +4233,17 b' def import_(ui, repo, patch1=None, *patc' | |||
|
4242 | 4233 | if sim and not update: |
|
4243 | 4234 | raise error.InputError(_(b'cannot use --similarity with --bypass')) |
|
4244 | 4235 | |
|
4245 |
base = opts[ |
|
|
4236 | base = opts["base"] | |
|
4246 | 4237 | msgs = [] |
|
4247 | 4238 | ret = 0 |
|
4248 | 4239 | |
|
4249 | 4240 | with repo.wlock(): |
|
4250 | 4241 | if update: |
|
4251 | 4242 | cmdutil.checkunfinished(repo) |
|
4252 |
if exact or not opts.get( |
|
|
4243 | if exact or not opts.get('force'): | |
|
4253 | 4244 | cmdutil.bailifchanged(repo) |
|
4254 | 4245 | |
|
4255 |
if not opts.get( |
|
|
4246 | if not opts.get('no_commit'): | |
|
4256 | 4247 | lock = repo.lock |
|
4257 | 4248 | tr = lambda: repo.transaction(b'import') |
|
4258 | 4249 | else: |
@@ -4274,7 +4265,13 b' def import_(ui, repo, patch1=None, *patc' | |||
|
4274 | 4265 | for hunk in patch.split(patchfile): |
|
4275 | 4266 | with patch.extract(ui, hunk) as patchdata: |
|
4276 | 4267 | msg, node, rej = cmdutil.tryimportone( |
|
4277 | ui, repo, patchdata, parents, opts, msgs, hg.clean | |
|
4268 | ui, | |
|
4269 | repo, | |
|
4270 | patchdata, | |
|
4271 | parents, | |
|
4272 | pycompat.byteskwargs(opts), | |
|
4273 | msgs, | |
|
4274 | hg.clean, | |
|
4278 | 4275 | ) |
|
4279 | 4276 | if msg: |
|
4280 | 4277 | haspatch = True |
@@ -4502,16 +4499,19 b' def locate(ui, repo, *pats, **opts):' | |||
|
4502 | 4499 | |
|
4503 | 4500 | Returns 0 if a match is found, 1 otherwise. |
|
4504 | 4501 | """ |
|
4505 | opts = pycompat.byteskwargs(opts) | |
|
4506 | if opts.get(b'print0'): | |
|
4502 | if opts.get('print0'): | |
|
4507 | 4503 | end = b'\0' |
|
4508 | 4504 | else: |
|
4509 | 4505 | end = b'\n' |
|
4510 |
ctx = logcmdutil.revsingle(repo, opts.get( |
|
|
4506 | ctx = logcmdutil.revsingle(repo, opts.get('rev'), None) | |
|
4511 | 4507 | |
|
4512 | 4508 | ret = 1 |
|
4513 | 4509 | m = scmutil.match( |
|
4514 | ctx, pats, opts, default=b'relglob', badfn=lambda x, y: False | |
|
4510 | ctx, | |
|
4511 | pats, | |
|
4512 | pycompat.byteskwargs(opts), | |
|
4513 | default=b'relglob', | |
|
4514 | badfn=lambda x, y: False, | |
|
4515 | 4515 | ) |
|
4516 | 4516 | |
|
4517 | 4517 | ui.pager(b'locate') |
@@ -4523,7 +4523,7 b' def locate(ui, repo, *pats, **opts):' | |||
|
4523 | 4523 | filesgen = ctx.matches(m) |
|
4524 | 4524 | uipathfn = scmutil.getuipathfn(repo, legacyrelativevalue=bool(pats)) |
|
4525 | 4525 | for abs in filesgen: |
|
4526 |
if opts.get( |
|
|
4526 | if opts.get('fullpath'): | |
|
4527 | 4527 | ui.write(repo.wjoin(abs), end) |
|
4528 | 4528 | else: |
|
4529 | 4529 | ui.write(uipathfn(abs), end) |
@@ -4823,10 +4823,9 b' def manifest(ui, repo, node=None, rev=No' | |||
|
4823 | 4823 | |
|
4824 | 4824 | Returns 0 on success. |
|
4825 | 4825 | """ |
|
4826 |
|
|
|
4827 | fm = ui.formatter(b'manifest', opts) | |
|
4828 | ||
|
4829 | if opts.get(b'all'): | |
|
4826 | fm = ui.formatter(b'manifest', pycompat.byteskwargs(opts)) | |
|
4827 | ||
|
4828 | if opts.get('all'): | |
|
4830 | 4829 | if rev or node: |
|
4831 | 4830 | raise error.InputError(_(b"can't specify a revision with --all")) |
|
4832 | 4831 | |
@@ -4917,11 +4916,10 b' def merge(ui, repo, node=None, **opts):' | |||
|
4917 | 4916 | Returns 0 on success, 1 if there are unresolved files. |
|
4918 | 4917 | """ |
|
4919 | 4918 | |
|
4920 | opts = pycompat.byteskwargs(opts) | |
|
4921 | abort = opts.get(b'abort') | |
|
4919 | abort = opts.get('abort') | |
|
4922 | 4920 | if abort and repo.dirstate.p2() == repo.nullid: |
|
4923 | 4921 | cmdutil.wrongtooltocontinue(repo, _(b'merge')) |
|
4924 |
cmdutil.check_incompatible_arguments(opts, |
|
|
4922 | cmdutil.check_incompatible_arguments(opts, 'abort', ['rev', 'preview']) | |
|
4925 | 4923 | if abort: |
|
4926 | 4924 | state = cmdutil.getunfinishedstate(repo) |
|
4927 | 4925 | if state and state._opname != b'merge': |
@@ -4933,10 +4931,10 b' def merge(ui, repo, node=None, **opts):' | |||
|
4933 | 4931 | raise error.InputError(_(b"cannot specify a node with --abort")) |
|
4934 | 4932 | return hg.abortmerge(repo.ui, repo) |
|
4935 | 4933 | |
|
4936 |
if opts.get( |
|
|
4934 | if opts.get('rev') and node: | |
|
4937 | 4935 | raise error.InputError(_(b"please specify just one revision")) |
|
4938 | 4936 | if not node: |
|
4939 |
node = opts.get( |
|
|
4937 | node = opts.get('rev') | |
|
4940 | 4938 | |
|
4941 | 4939 | if node: |
|
4942 | 4940 | ctx = logcmdutil.revsingle(repo, node) |
@@ -4955,22 +4953,24 b' def merge(ui, repo, node=None, **opts):' | |||
|
4955 | 4953 | _(b'merging with the working copy has no effect') |
|
4956 | 4954 | ) |
|
4957 | 4955 | |
|
4958 |
if opts.get( |
|
|
4956 | if opts.get('preview'): | |
|
4959 | 4957 | # find nodes that are ancestors of p2 but not of p1 |
|
4960 | 4958 | p1 = repo[b'.'].node() |
|
4961 | 4959 | p2 = ctx.node() |
|
4962 | 4960 | nodes = repo.changelog.findmissing(common=[p1], heads=[p2]) |
|
4963 | 4961 | |
|
4964 |
displayer = logcmdutil.changesetdisplayer( |
|
|
4962 | displayer = logcmdutil.changesetdisplayer( | |
|
4963 | ui, repo, pycompat.byteskwargs(opts) | |
|
4964 | ) | |
|
4965 | 4965 | for node in nodes: |
|
4966 | 4966 | displayer.show(repo[node]) |
|
4967 | 4967 | displayer.close() |
|
4968 | 4968 | return 0 |
|
4969 | 4969 | |
|
4970 | 4970 | # ui.forcemerge is an internal variable, do not document |
|
4971 |
overrides = {(b'ui', b'forcemerge'): opts.get( |
|
|
4971 | overrides = {(b'ui', b'forcemerge'): opts.get('tool', b'')} | |
|
4972 | 4972 | with ui.configoverride(overrides, b'merge'): |
|
4973 |
force = opts.get( |
|
|
4973 | force = opts.get('force') | |
|
4974 | 4974 | labels = [b'working copy', b'merge rev', b'common ancestor'] |
|
4975 | 4975 | return hg.merge(ctx, force=force, labels=labels) |
|
4976 | 4976 | |
@@ -5198,12 +5198,10 b' def paths(ui, repo, search=None, **opts)' | |||
|
5198 | 5198 | Returns 0 on success. |
|
5199 | 5199 | """ |
|
5200 | 5200 | |
|
5201 | opts = pycompat.byteskwargs(opts) | |
|
5202 | ||
|
5203 | 5201 | pathitems = urlutil.list_paths(ui, search) |
|
5204 | 5202 | ui.pager(b'paths') |
|
5205 | 5203 | |
|
5206 | fm = ui.formatter(b'paths', opts) | |
|
5204 | fm = ui.formatter(b'paths', pycompat.byteskwargs(opts)) | |
|
5207 | 5205 | if fm.isplain(): |
|
5208 | 5206 | hidepassword = urlutil.hidepassword |
|
5209 | 5207 | else: |
@@ -5457,33 +5455,37 b' def pull(ui, repo, *sources, **opts):' | |||
|
5457 | 5455 | Returns 0 on success, 1 if an update had unresolved files. |
|
5458 | 5456 | """ |
|
5459 | 5457 | |
|
5460 | opts = pycompat.byteskwargs(opts) | |
|
5461 | if ui.configbool(b'commands', b'update.requiredest') and opts.get( | |
|
5462 | b'update' | |
|
5463 | ): | |
|
5458 | if ui.configbool(b'commands', b'update.requiredest') and opts.get('update'): | |
|
5464 | 5459 | msg = _(b'update destination required by configuration') |
|
5465 | 5460 | hint = _(b'use hg pull followed by hg update DEST') |
|
5466 | 5461 | raise error.InputError(msg, hint=hint) |
|
5467 | 5462 | |
|
5463 | update_conflict = None | |
|
5464 | ||
|
5468 | 5465 | for path in urlutil.get_pull_paths(repo, ui, sources): |
|
5469 | 5466 | ui.status(_(b'pulling from %s\n') % urlutil.hidepassword(path.loc)) |
|
5470 | 5467 | ui.flush() |
|
5471 | other = hg.peer(repo, opts, path, remotehidden=opts[b'remote_hidden']) | |
|
5468 | other = hg.peer( | |
|
5469 | repo, | |
|
5470 | pycompat.byteskwargs(opts), | |
|
5471 | path, | |
|
5472 | remotehidden=opts['remote_hidden'], | |
|
5473 | ) | |
|
5472 | 5474 | update_conflict = None |
|
5473 | 5475 | try: |
|
5474 |
branches = (path.branch, opts.get( |
|
|
5476 | branches = (path.branch, opts.get('branch', [])) | |
|
5475 | 5477 | revs, checkout = hg.addbranchrevs( |
|
5476 | 5478 | repo, |
|
5477 | 5479 | other, |
|
5478 | 5480 | branches, |
|
5479 |
opts.get( |
|
|
5480 |
remotehidden=opts[ |
|
|
5481 | opts.get('rev'), | |
|
5482 | remotehidden=opts['remote_hidden'], | |
|
5481 | 5483 | ) |
|
5482 | 5484 | |
|
5483 | 5485 | pullopargs = {} |
|
5484 | 5486 | |
|
5485 | 5487 | nodes = None |
|
5486 |
if opts.get( |
|
|
5488 | if opts.get('bookmark') or revs: | |
|
5487 | 5489 | # The list of bookmark used here is the same used to actually update |
|
5488 | 5490 | # the bookmark names, to avoid the race from issue 4689 and we do |
|
5489 | 5491 | # all lookup and bookmark queries in one go so they see the same |
@@ -5506,7 +5508,7 b' def pull(ui, repo, *sources, **opts):' | |||
|
5506 | 5508 | remotebookmarks = fremotebookmarks.result() |
|
5507 | 5509 | remotebookmarks = bookmarks.unhexlifybookmarks(remotebookmarks) |
|
5508 | 5510 | pullopargs[b'remotebookmarks'] = remotebookmarks |
|
5509 |
for b in opts.get( |
|
|
5511 | for b in opts.get('bookmark', []): | |
|
5510 | 5512 | b = repo._bookmarks.expandname(b) |
|
5511 | 5513 | if b not in remotebookmarks: |
|
5512 | 5514 | raise error.InputError( |
@@ -5520,19 +5522,19 b' def pull(ui, repo, *sources, **opts):' | |||
|
5520 | 5522 | checkout = node |
|
5521 | 5523 | |
|
5522 | 5524 | wlock = util.nullcontextmanager() |
|
5523 |
if opts.get( |
|
|
5525 | if opts.get('update'): | |
|
5524 | 5526 | wlock = repo.wlock() |
|
5525 | 5527 | with wlock: |
|
5526 |
pullopargs.update(opts.get( |
|
|
5528 | pullopargs.update(opts.get('opargs', {})) | |
|
5527 | 5529 | modheads = exchange.pull( |
|
5528 | 5530 | repo, |
|
5529 | 5531 | other, |
|
5530 | 5532 | path=path, |
|
5531 | 5533 | heads=nodes, |
|
5532 |
force=opts.get( |
|
|
5533 |
bookmarks=opts.get( |
|
|
5534 | force=opts.get('force'), | |
|
5535 | bookmarks=opts.get('bookmark', ()), | |
|
5534 | 5536 | opargs=pullopargs, |
|
5535 |
confirm=opts.get( |
|
|
5537 | confirm=opts.get('confirm'), | |
|
5536 | 5538 | ).cgresult |
|
5537 | 5539 | |
|
5538 | 5540 | # brev is a name, which might be a bookmark to be activated at |
@@ -5546,10 +5548,10 b' def pull(ui, repo, *sources, **opts):' | |||
|
5546 | 5548 | # order below depends on implementation of |
|
5547 | 5549 | # hg.addbranchrevs(). opts['bookmark'] is ignored, |
|
5548 | 5550 | # because 'checkout' is determined without it. |
|
5549 |
if opts.get( |
|
|
5550 |
brev = opts[ |
|
|
5551 |
elif opts.get( |
|
|
5552 |
brev = opts[ |
|
|
5551 | if opts.get('rev'): | |
|
5552 | brev = opts['rev'][0] | |
|
5553 | elif opts.get('branch'): | |
|
5554 | brev = opts['branch'][0] | |
|
5553 | 5555 | else: |
|
5554 | 5556 | brev = path.branch |
|
5555 | 5557 | |
@@ -5559,7 +5561,7 b' def pull(ui, repo, *sources, **opts):' | |||
|
5559 | 5561 | repo._subtoppath = path.loc |
|
5560 | 5562 | try: |
|
5561 | 5563 | update_conflict = postincoming( |
|
5562 |
ui, repo, modheads, opts.get( |
|
|
5564 | ui, repo, modheads, opts.get('update'), checkout, brev | |
|
5563 | 5565 | ) |
|
5564 | 5566 | except error.FilteredRepoLookupError as exc: |
|
5565 | 5567 | msg = _(b'cannot update to target: %s') % exc.args[0] |
@@ -5633,24 +5635,23 b' def purge(ui, repo, *dirs, **opts):' | |||
|
5633 | 5635 | list of files that this program would delete, use the --print |
|
5634 | 5636 | option. |
|
5635 | 5637 | """ |
|
5636 | opts = pycompat.byteskwargs(opts) | |
|
5637 | cmdutil.check_at_most_one_arg(opts, b'all', b'ignored') | |
|
5638 | ||
|
5639 | act = not opts.get(b'print') | |
|
5638 | cmdutil.check_at_most_one_arg(opts, 'all', 'ignored') | |
|
5639 | ||
|
5640 | act = not opts.get('print') | |
|
5640 | 5641 | eol = b'\n' |
|
5641 |
if opts.get( |
|
|
5642 | if opts.get('print0'): | |
|
5642 | 5643 | eol = b'\0' |
|
5643 | 5644 | act = False # --print0 implies --print |
|
5644 |
if opts.get( |
|
|
5645 | if opts.get('all', False): | |
|
5645 | 5646 | ignored = True |
|
5646 | 5647 | unknown = True |
|
5647 | 5648 | else: |
|
5648 |
ignored = opts.get( |
|
|
5649 | ignored = opts.get('ignored', False) | |
|
5649 | 5650 | unknown = not ignored |
|
5650 | 5651 | |
|
5651 |
removefiles = opts.get( |
|
|
5652 |
removedirs = opts.get( |
|
|
5653 |
confirm = opts.get( |
|
|
5652 | removefiles = opts.get('files') | |
|
5653 | removedirs = opts.get('dirs') | |
|
5654 | confirm = opts.get('confirm') | |
|
5654 | 5655 | if confirm is None: |
|
5655 | 5656 | try: |
|
5656 | 5657 | extensions.find(b'purge') |
@@ -5662,7 +5663,7 b' def purge(ui, repo, *dirs, **opts):' | |||
|
5662 | 5663 | removefiles = True |
|
5663 | 5664 | removedirs = True |
|
5664 | 5665 | |
|
5665 | match = scmutil.match(repo[None], dirs, opts) | |
|
5666 | match = scmutil.match(repo[None], dirs, pycompat.byteskwargs(opts)) | |
|
5666 | 5667 | |
|
5667 | 5668 | paths = mergemod.purge( |
|
5668 | 5669 | repo, |
@@ -5671,7 +5672,7 b' def purge(ui, repo, *dirs, **opts):' | |||
|
5671 | 5672 | ignored=ignored, |
|
5672 | 5673 | removeemptydirs=removedirs, |
|
5673 | 5674 | removefiles=removefiles, |
|
5674 |
abortonerror=opts.get( |
|
|
5675 | abortonerror=opts.get('abort_on_err'), | |
|
5675 | 5676 | noop=not act, |
|
5676 | 5677 | confirm=confirm, |
|
5677 | 5678 | ) |
@@ -5974,15 +5975,14 b' def remove(ui, repo, *pats, **opts):' | |||
|
5974 | 5975 | Returns 0 on success, 1 if any warnings encountered. |
|
5975 | 5976 | """ |
|
5976 | 5977 | |
|
5977 | opts = pycompat.byteskwargs(opts) | |
|
5978 | after, force = opts.get(b'after'), opts.get(b'force') | |
|
5979 | dryrun = opts.get(b'dry_run') | |
|
5978 | after, force = opts.get('after'), opts.get('force') | |
|
5979 | dryrun = opts.get('dry_run') | |
|
5980 | 5980 | if not pats and not after: |
|
5981 | 5981 | raise error.InputError(_(b'no files specified')) |
|
5982 | 5982 | |
|
5983 | 5983 | with repo.wlock(), repo.dirstate.changing_files(repo): |
|
5984 | m = scmutil.match(repo[None], pats, opts) | |
|
5985 |
subrepos = opts.get( |
|
|
5984 | m = scmutil.match(repo[None], pats, pycompat.byteskwargs(opts)) | |
|
5985 | subrepos = opts.get('subrepos') | |
|
5986 | 5986 | uipathfn = scmutil.getuipathfn(repo, legacyrelativevalue=True) |
|
5987 | 5987 | return cmdutil.remove( |
|
5988 | 5988 | ui, repo, m, b"", uipathfn, after, force, subrepos, dryrun=dryrun |
@@ -6034,10 +6034,9 b' def rename(ui, repo, *pats, **opts):' | |||
|
6034 | 6034 | |
|
6035 | 6035 | Returns 0 on success, 1 if errors are encountered. |
|
6036 | 6036 | """ |
|
6037 | opts = pycompat.byteskwargs(opts) | |
|
6038 | 6037 | context = lambda repo: repo.dirstate.changing_files(repo) |
|
6039 |
rev = opts.get( |
|
|
6040 | ctx = None | |
|
6038 | rev = opts.get('at_rev') | |
|
6039 | ||
|
6041 | 6040 | if rev: |
|
6042 | 6041 | ctx = logcmdutil.revsingle(repo, rev) |
|
6043 | 6042 | if ctx.rev() is not None: |
@@ -6045,9 +6044,11 b' def rename(ui, repo, *pats, **opts):' | |||
|
6045 | 6044 | def context(repo): |
|
6046 | 6045 | return util.nullcontextmanager() |
|
6047 | 6046 | |
|
6048 |
opts[ |
|
|
6047 | opts['at_rev'] = ctx.rev() | |
|
6049 | 6048 | with repo.wlock(), context(repo): |
|
6050 |
return cmdutil.copy( |
|
|
6049 | return cmdutil.copy( | |
|
6050 | ui, repo, pats, pycompat.byteskwargs(opts), rename=True | |
|
6051 | ) | |
|
6051 | 6052 | |
|
6052 | 6053 | |
|
6053 | 6054 | @command( |
@@ -6398,30 +6399,29 b' def revert(ui, repo, *pats, **opts):' | |||
|
6398 | 6399 | Returns 0 on success. |
|
6399 | 6400 | """ |
|
6400 | 6401 | |
|
6401 | opts = pycompat.byteskwargs(opts) | |
|
6402 | if opts.get(b"date"): | |
|
6403 | cmdutil.check_incompatible_arguments(opts, b'date', [b'rev']) | |
|
6404 | opts[b"rev"] = cmdutil.finddate(ui, repo, opts[b"date"]) | |
|
6402 | if opts.get("date"): | |
|
6403 | cmdutil.check_incompatible_arguments(opts, 'date', ['rev']) | |
|
6404 | opts["rev"] = cmdutil.finddate(ui, repo, opts["date"]) | |
|
6405 | 6405 | |
|
6406 | 6406 | parent, p2 = repo.dirstate.parents() |
|
6407 |
if not opts.get( |
|
|
6407 | if not opts.get('rev') and p2 != repo.nullid: | |
|
6408 | 6408 | # revert after merge is a trap for new users (issue2915) |
|
6409 | 6409 | raise error.InputError( |
|
6410 | 6410 | _(b'uncommitted merge with no revision specified'), |
|
6411 | 6411 | hint=_(b"use 'hg update' or see 'hg help revert'"), |
|
6412 | 6412 | ) |
|
6413 | 6413 | |
|
6414 |
rev = opts.get( |
|
|
6414 | rev = opts.get('rev') | |
|
6415 | 6415 | if rev: |
|
6416 | 6416 | repo = scmutil.unhidehashlikerevs(repo, [rev], b'nowarn') |
|
6417 | 6417 | ctx = logcmdutil.revsingle(repo, rev) |
|
6418 | 6418 | |
|
6419 | 6419 | if not ( |
|
6420 | 6420 | pats |
|
6421 |
or opts.get( |
|
|
6422 |
or opts.get( |
|
|
6423 |
or opts.get( |
|
|
6424 |
or opts.get( |
|
|
6421 | or opts.get('include') | |
|
6422 | or opts.get('exclude') | |
|
6423 | or opts.get('all') | |
|
6424 | or opts.get('interactive') | |
|
6425 | 6425 | ): |
|
6426 | 6426 | msg = _(b"no files or directories specified") |
|
6427 | 6427 | if p2 != repo.nullid: |
@@ -6455,7 +6455,7 b' def revert(ui, repo, *pats, **opts):' | |||
|
6455 | 6455 | hint = _(b"use --all to revert all files") |
|
6456 | 6456 | raise error.InputError(msg, hint=hint) |
|
6457 | 6457 | |
|
6458 |
return cmdutil.revert(ui, repo, ctx, *pats, ** |
|
|
6458 | return cmdutil.revert(ui, repo, ctx, *pats, **opts) | |
|
6459 | 6459 | |
|
6460 | 6460 | |
|
6461 | 6461 | @command( |
@@ -7117,7 +7117,6 b' def summary(ui, repo, **opts):' | |||
|
7117 | 7117 | Returns 0 on success. |
|
7118 | 7118 | """ |
|
7119 | 7119 | |
|
7120 | opts = pycompat.byteskwargs(opts) | |
|
7121 | 7120 | ui.pager(b'summary') |
|
7122 | 7121 | ctx = repo[None] |
|
7123 | 7122 | parents = ctx.parents() |
@@ -7306,11 +7305,13 b' def summary(ui, repo, **opts):' | |||
|
7306 | 7305 | |
|
7307 | 7306 | cmdutil.summaryhooks(ui, repo) |
|
7308 | 7307 | |
|
7309 |
if opts.get( |
|
|
7308 | if opts.get('remote'): | |
|
7310 | 7309 | needsincoming, needsoutgoing = True, True |
|
7311 | 7310 | else: |
|
7312 | 7311 | needsincoming, needsoutgoing = False, False |
|
7313 |
for i, o in cmdutil.summaryremotehooks( |
|
|
7312 | for i, o in cmdutil.summaryremotehooks( | |
|
7313 | ui, repo, pycompat.byteskwargs(opts), None | |
|
7314 | ): | |
|
7314 | 7315 | if i: |
|
7315 | 7316 | needsincoming = True |
|
7316 | 7317 | if o: |
@@ -7327,7 +7328,7 b' def summary(ui, repo, **opts):' | |||
|
7327 | 7328 | try: |
|
7328 | 7329 | other = hg.peer(repo, {}, path) |
|
7329 | 7330 | except error.RepoError: |
|
7330 |
if opts.get( |
|
|
7331 | if opts.get('remote'): | |
|
7331 | 7332 | raise |
|
7332 | 7333 | return path.loc, sbranch, None, None, None |
|
7333 | 7334 | branches = (path.branch, []) |
@@ -7366,7 +7367,7 b' def summary(ui, repo, **opts):' | |||
|
7366 | 7367 | try: |
|
7367 | 7368 | dother = hg.peer(repo, {}, path if path is not None else dest) |
|
7368 | 7369 | except error.RepoError: |
|
7369 |
if opts.get( |
|
|
7370 | if opts.get('remote'): | |
|
7370 | 7371 | raise |
|
7371 | 7372 | return dest, dbranch, None, None |
|
7372 | 7373 | ui.debug(b'comparing with %s\n' % urlutil.hidepassword(dest)) |
@@ -7392,7 +7393,7 b' def summary(ui, repo, **opts):' | |||
|
7392 | 7393 | else: |
|
7393 | 7394 | dest = dbranch = dother = outgoing = None |
|
7394 | 7395 | |
|
7395 |
if opts.get( |
|
|
7396 | if opts.get('remote'): | |
|
7396 | 7397 | # Help pytype. --remote sets both `needsincoming` and `needsoutgoing`. |
|
7397 | 7398 | # The former always sets `sother` (or raises an exception if it can't); |
|
7398 | 7399 | # the latter always sets `outgoing`. |
@@ -7423,7 +7424,7 b' def summary(ui, repo, **opts):' | |||
|
7423 | 7424 | cmdutil.summaryremotehooks( |
|
7424 | 7425 | ui, |
|
7425 | 7426 | repo, |
|
7426 | opts, | |
|
7427 | pycompat.byteskwargs(opts), | |
|
7427 | 7428 | ( |
|
7428 | 7429 | (source, sbranch, sother, commoninc), |
|
7429 | 7430 | (dest, dbranch, dother, outgoing), |
@@ -7479,7 +7480,7 b' def tag(ui, repo, name1, *names, **opts)' | |||
|
7479 | 7480 | Returns 0 on success. |
|
7480 | 7481 | """ |
|
7481 | 7482 | cmdutil.check_incompatible_arguments(opts, 'remove', ['rev']) |
|
7482 | opts = pycompat.byteskwargs(opts) | |
|
7483 | ||
|
7483 | 7484 | with repo.wlock(), repo.lock(): |
|
7484 | 7485 | rev_ = b"." |
|
7485 | 7486 | names = [t.strip() for t in (name1,) + names] |
@@ -7491,11 +7492,11 b' def tag(ui, repo, name1, *names, **opts)' | |||
|
7491 | 7492 | raise error.InputError( |
|
7492 | 7493 | _(b'tag names cannot consist entirely of whitespace') |
|
7493 | 7494 | ) |
|
7494 |
if opts.get( |
|
|
7495 |
rev_ = opts[ |
|
|
7496 |
message = opts.get( |
|
|
7497 |
if opts.get( |
|
|
7498 |
if opts.get( |
|
|
7495 | if opts.get('rev'): | |
|
7496 | rev_ = opts['rev'] | |
|
7497 | message = opts.get('message') | |
|
7498 | if opts.get('remove'): | |
|
7499 | if opts.get('local'): | |
|
7499 | 7500 | expectedtype = b'local' |
|
7500 | 7501 | else: |
|
7501 | 7502 | expectedtype = b'global' |
@@ -7522,18 +7523,18 b' def tag(ui, repo, name1, *names, **opts)' | |||
|
7522 | 7523 | if not message: |
|
7523 | 7524 | # we don't translate commit messages |
|
7524 | 7525 | message = b'Removed tag %s' % b', '.join(names) |
|
7525 |
elif not opts.get( |
|
|
7526 | elif not opts.get('force'): | |
|
7526 | 7527 | for n in names: |
|
7527 | 7528 | if n in repo.tags(): |
|
7528 | 7529 | raise error.InputError( |
|
7529 | 7530 | _(b"tag '%s' already exists (use -f to force)") % n |
|
7530 | 7531 | ) |
|
7531 |
if not opts.get( |
|
|
7532 | if not opts.get('local'): | |
|
7532 | 7533 | p1, p2 = repo.dirstate.parents() |
|
7533 | 7534 | if p2 != repo.nullid: |
|
7534 | 7535 | raise error.StateError(_(b'uncommitted merge')) |
|
7535 | 7536 | bheads = repo.branchheads() |
|
7536 |
if not opts.get( |
|
|
7537 | if not opts.get('force') and bheads and p1 not in bheads: | |
|
7537 | 7538 | raise error.InputError( |
|
7538 | 7539 | _( |
|
7539 | 7540 | b'working directory is not at a branch head ' |
@@ -7545,7 +7546,7 b' def tag(ui, repo, name1, *names, **opts)' | |||
|
7545 | 7546 | # don't allow tagging the null rev or the working directory |
|
7546 | 7547 | if node is None: |
|
7547 | 7548 | raise error.InputError(_(b"cannot tag working directory")) |
|
7548 |
elif not opts.get( |
|
|
7549 | elif not opts.get('remove') and node == nullid: | |
|
7549 | 7550 | raise error.InputError(_(b"cannot tag null revision")) |
|
7550 | 7551 | |
|
7551 | 7552 | if not message: |
@@ -7555,25 +7556,23 b' def tag(ui, repo, name1, *names, **opts)' | |||
|
7555 | 7556 | short(node), |
|
7556 | 7557 | ) |
|
7557 | 7558 | |
|
7558 |
date = opts.get( |
|
|
7559 | date = opts.get('date') | |
|
7559 | 7560 | if date: |
|
7560 | 7561 | date = dateutil.parsedate(date) |
|
7561 | 7562 | |
|
7562 |
if opts.get( |
|
|
7563 | if opts.get('remove'): | |
|
7563 | 7564 | editform = b'tag.remove' |
|
7564 | 7565 | else: |
|
7565 | 7566 | editform = b'tag.add' |
|
7566 | editor = cmdutil.getcommiteditor( | |
|
7567 | editform=editform, **pycompat.strkwargs(opts) | |
|
7568 | ) | |
|
7567 | editor = cmdutil.getcommiteditor(editform=editform, **opts) | |
|
7569 | 7568 | |
|
7570 | 7569 | tagsmod.tag( |
|
7571 | 7570 | repo, |
|
7572 | 7571 | names, |
|
7573 | 7572 | node, |
|
7574 | 7573 | message, |
|
7575 |
opts.get( |
|
|
7576 |
opts.get( |
|
|
7574 | opts.get('local'), | |
|
7575 | opts.get('user'), | |
|
7577 | 7576 | date, |
|
7578 | 7577 | editor=editor, |
|
7579 | 7578 | ) |
@@ -7606,9 +7605,8 b' def tags(ui, repo, **opts):' | |||
|
7606 | 7605 | Returns 0 on success. |
|
7607 | 7606 | """ |
|
7608 | 7607 | |
|
7609 | opts = pycompat.byteskwargs(opts) | |
|
7610 | 7608 | ui.pager(b'tags') |
|
7611 | fm = ui.formatter(b'tags', opts) | |
|
7609 | fm = ui.formatter(b'tags', pycompat.byteskwargs(opts)) | |
|
7612 | 7610 | hexfunc = fm.hexfunc |
|
7613 | 7611 | |
|
7614 | 7612 | for t, n in reversed(repo.tagslist()): |
@@ -7963,12 +7961,13 b' def verify(ui, repo, **opts):' | |||
|
7963 | 7961 | for more information about recovery from corruption of the |
|
7964 | 7962 | repository. |
|
7965 | 7963 | |
|
7964 | For an alternative UI with a lot more control over the verification | |
|
7965 | process and better error reporting, try `hg help admin::verify`. | |
|
7966 | ||
|
7966 | 7967 | Returns 0 on success, 1 if errors are encountered. |
|
7967 | 7968 | """ |
|
7968 | opts = pycompat.byteskwargs(opts) | |
|
7969 | ||
|
7970 | 7969 | level = None |
|
7971 |
if opts[ |
|
|
7970 | if opts['full']: | |
|
7972 | 7971 | level = verifymod.VERIFY_FULL |
|
7973 | 7972 | return hg.verify(repo, level) |
|
7974 | 7973 | |
@@ -7998,10 +7997,9 b' def version_(ui, **opts):' | |||
|
7998 | 7997 | :bundled: Boolean. True if included in the release. |
|
7999 | 7998 | :name: String. Extension name. |
|
8000 | 7999 | """ |
|
8001 | opts = pycompat.byteskwargs(opts) | |
|
8002 | 8000 | if ui.verbose: |
|
8003 | 8001 | ui.pager(b'version') |
|
8004 | fm = ui.formatter(b"version", opts) | |
|
8002 | fm = ui.formatter(b"version", pycompat.byteskwargs(opts)) | |
|
8005 | 8003 | fm.startitem() |
|
8006 | 8004 | fm.write( |
|
8007 | 8005 | b"ver", _(b"Mercurial Distributed SCM (version %s)\n"), util.version() |
@@ -16,7 +16,6 b' import struct' | |||
|
16 | 16 | import traceback |
|
17 | 17 | |
|
18 | 18 | from .i18n import _ |
|
19 | from .pycompat import getattr | |
|
20 | 19 | from . import ( |
|
21 | 20 | encoding, |
|
22 | 21 | error, |
@@ -332,7 +331,7 b' class server:' | |||
|
332 | 331 | # any kind of interaction must use server channels, but chg may |
|
333 | 332 | # replace channels by fully functional tty files. so nontty is |
|
334 | 333 | # enforced only if cin is a channel. |
|
335 |
if not |
|
|
334 | if not hasattr(self.cin, 'fileno'): | |
|
336 | 335 | ui.setconfig(b'ui', b'nontty', b'true', b'commandserver') |
|
337 | 336 | |
|
338 | 337 | req = dispatch.request( |
@@ -384,7 +383,7 b' class server:' | |||
|
384 | 383 | if self.cmsg: |
|
385 | 384 | hellomsg += b'message-encoding: %s\n' % self.cmsg.encoding |
|
386 | 385 | hellomsg += b'pid: %d' % procutil.getpid() |
|
387 |
if |
|
|
386 | if hasattr(os, 'getpgid'): | |
|
388 | 387 | hellomsg += b'\n' |
|
389 | 388 | hellomsg += b'pgid: %d' % os.getpgid(0) |
|
390 | 389 | |
@@ -559,7 +558,7 b' class unixforkingservice:' | |||
|
559 | 558 | self.ui = ui |
|
560 | 559 | self.repo = repo |
|
561 | 560 | self.address = opts[b'address'] |
|
562 |
if not |
|
|
561 | if not hasattr(socket, 'AF_UNIX'): | |
|
563 | 562 | raise error.Abort(_(b'unsupported platform')) |
|
564 | 563 | if not self.address: |
|
565 | 564 | raise error.Abort(_(b'no socket path specified with --address')) |
@@ -588,7 +587,7 b' class unixforkingservice:' | |||
|
588 | 587 | o = socket.socketpair(socket.AF_UNIX, socket.SOCK_DGRAM) |
|
589 | 588 | self._mainipc, self._workeripc = o |
|
590 | 589 | self._servicehandler.bindsocket(self._sock, self.address) |
|
591 |
if |
|
|
590 | if hasattr(procutil, 'unblocksignal'): | |
|
592 | 591 | procutil.unblocksignal(signal.SIGCHLD) |
|
593 | 592 | o = signal.signal(signal.SIGCHLD, self._sigchldhandler) |
|
594 | 593 | self._oldsigchldhandler = o |
@@ -10,7 +10,6 b' import errno' | |||
|
10 | 10 | import os |
|
11 | 11 | |
|
12 | 12 | from .i18n import _ |
|
13 | from .pycompat import getattr | |
|
14 | 13 | from . import ( |
|
15 | 14 | encoding, |
|
16 | 15 | error, |
This diff has been collapsed as it changes many lines, (2938 lines changed) Show them Hide them | |||
@@ -9,11 +9,21 b'' | |||
|
9 | 9 | import functools |
|
10 | 10 | import re |
|
11 | 11 | |
|
12 | from .utils import resourceutil | |
|
13 | ||
|
12 | 14 | from . import ( |
|
13 | 15 | encoding, |
|
14 | 16 | error, |
|
15 | 17 | ) |
|
16 | 18 | |
|
19 | try: | |
|
20 | import tomllib # pytype: disable=import-error | |
|
21 | ||
|
22 | tomllib.load # trigger lazy import | |
|
23 | except ModuleNotFoundError: | |
|
24 | # Python <3.11 compat | |
|
25 | from .thirdparty import tomli as tomllib | |
|
26 | ||
|
17 | 27 | |
|
18 | 28 | def loadconfigtable(ui, extname, configtable): |
|
19 | 29 | """update config item known to the ui with the extension ones""" |
@@ -22,7 +32,7 b' def loadconfigtable(ui, extname, configt' | |||
|
22 | 32 | knownkeys = set(knownitems) |
|
23 | 33 | newkeys = set(items) |
|
24 | 34 | for key in sorted(knownkeys & newkeys): |
|
25 | msg = b"extension '%s' overwrite config item '%s.%s'" | |
|
35 | msg = b"extension '%s' overwrites config item '%s.%s'" | |
|
26 | 36 | msg %= (extname, section, key) |
|
27 | 37 | ui.develwarn(msg, config=b'warn-config') |
|
28 | 38 | |
@@ -48,15 +58,19 b' class configitem:' | |||
|
48 | 58 | generic=False, |
|
49 | 59 | priority=0, |
|
50 | 60 | experimental=False, |
|
61 | documentation="", | |
|
62 | in_core_extension=None, | |
|
51 | 63 | ): |
|
52 | 64 | self.section = section |
|
53 | 65 | self.name = name |
|
54 | 66 | self.default = default |
|
67 | self.documentation = documentation | |
|
55 | 68 | self.alias = list(alias) |
|
56 | 69 | self.generic = generic |
|
57 | 70 | self.priority = priority |
|
58 | 71 | self.experimental = experimental |
|
59 | 72 | self._re = None |
|
73 | self.in_core_extension = in_core_extension | |
|
60 | 74 | if generic: |
|
61 | 75 | self._re = re.compile(self.name) |
|
62 | 76 | |
@@ -102,6 +116,74 b' class itemregister(dict):' | |||
|
102 | 116 | return None |
|
103 | 117 | |
|
104 | 118 | |
|
119 | def sanitize_item(item): | |
|
120 | """Apply the transformations that are encoded on top of the pure data""" | |
|
121 | ||
|
122 | # Set the special defaults | |
|
123 | default_type_key = "default-type" | |
|
124 | default_type = item.pop(default_type_key, None) | |
|
125 | if default_type == "dynamic": | |
|
126 | item["default"] = dynamicdefault | |
|
127 | elif default_type == "list_type": | |
|
128 | item["default"] = list | |
|
129 | elif default_type == "lambda": | |
|
130 | assert isinstance(item["default"], list) | |
|
131 | default = [e.encode() for e in item["default"]] | |
|
132 | item["default"] = lambda: default | |
|
133 | elif default_type == "lazy_module": | |
|
134 | item["default"] = lambda: encoding.encoding | |
|
135 | else: | |
|
136 | if default_type is not None: | |
|
137 | msg = "invalid default config type %r for '%s.%s'" | |
|
138 | msg %= (default_type, item["section"], item["name"]) | |
|
139 | raise error.ProgrammingError(msg) | |
|
140 | ||
|
141 | # config expects bytes | |
|
142 | alias = item.get("alias") | |
|
143 | if alias: | |
|
144 | item["alias"] = [(k.encode(), v.encode()) for (k, v) in alias] | |
|
145 | if isinstance(item.get("default"), str): | |
|
146 | item["default"] = item["default"].encode() | |
|
147 | item["section"] = item["section"].encode() | |
|
148 | item["name"] = item["name"].encode() | |
|
149 | ||
|
150 | ||
|
151 | def read_configitems_file(): | |
|
152 | """Returns the deserialized TOML structure from the configitems file""" | |
|
153 | with resourceutil.open_resource(b"mercurial", b"configitems.toml") as fp: | |
|
154 | return tomllib.load(fp) | |
|
155 | ||
|
156 | ||
|
157 | def configitems_from_toml(items): | |
|
158 | """Register the configitems from the *deserialized* toml file""" | |
|
159 | for item in items["items"]: | |
|
160 | sanitize_item(item) | |
|
161 | coreconfigitem(**item) | |
|
162 | ||
|
163 | templates = items["templates"] | |
|
164 | ||
|
165 | for application in items["template-applications"]: | |
|
166 | template_items = templates[application["template"]] | |
|
167 | ||
|
168 | for template_item in template_items: | |
|
169 | item = template_item.copy() | |
|
170 | prefix = application.get("prefix", "") | |
|
171 | item["section"] = application["section"] | |
|
172 | if prefix: | |
|
173 | item["name"] = f'{prefix}.{item["suffix"]}' | |
|
174 | else: | |
|
175 | item["name"] = item["suffix"] | |
|
176 | ||
|
177 | sanitize_item(item) | |
|
178 | item.pop("suffix", None) | |
|
179 | coreconfigitem(**item) | |
|
180 | ||
|
181 | ||
|
182 | def import_configitems_from_file(): | |
|
183 | as_toml = read_configitems_file() | |
|
184 | configitems_from_toml(as_toml) | |
|
185 | ||
|
186 | ||
|
105 | 187 | coreitems = {} |
|
106 | 188 | |
|
107 | 189 | |
@@ -129,2856 +211,4 b' def getitemregister(configtable):' | |||
|
129 | 211 | |
|
130 | 212 | coreconfigitem = getitemregister(coreitems) |
|
131 | 213 | |
|
132 | ||
|
133 | def _registerdiffopts(section, configprefix=b''): | |
|
134 | coreconfigitem( | |
|
135 | section, | |
|
136 | configprefix + b'nodates', | |
|
137 | default=False, | |
|
138 | ) | |
|
139 | coreconfigitem( | |
|
140 | section, | |
|
141 | configprefix + b'showfunc', | |
|
142 | default=False, | |
|
143 | ) | |
|
144 | coreconfigitem( | |
|
145 | section, | |
|
146 | configprefix + b'unified', | |
|
147 | default=None, | |
|
148 | ) | |
|
149 | coreconfigitem( | |
|
150 | section, | |
|
151 | configprefix + b'git', | |
|
152 | default=False, | |
|
153 | ) | |
|
154 | coreconfigitem( | |
|
155 | section, | |
|
156 | configprefix + b'ignorews', | |
|
157 | default=False, | |
|
158 | ) | |
|
159 | coreconfigitem( | |
|
160 | section, | |
|
161 | configprefix + b'ignorewsamount', | |
|
162 | default=False, | |
|
163 | ) | |
|
164 | coreconfigitem( | |
|
165 | section, | |
|
166 | configprefix + b'ignoreblanklines', | |
|
167 | default=False, | |
|
168 | ) | |
|
169 | coreconfigitem( | |
|
170 | section, | |
|
171 | configprefix + b'ignorewseol', | |
|
172 | default=False, | |
|
173 | ) | |
|
174 | coreconfigitem( | |
|
175 | section, | |
|
176 | configprefix + b'nobinary', | |
|
177 | default=False, | |
|
178 | ) | |
|
179 | coreconfigitem( | |
|
180 | section, | |
|
181 | configprefix + b'noprefix', | |
|
182 | default=False, | |
|
183 | ) | |
|
184 | coreconfigitem( | |
|
185 | section, | |
|
186 | configprefix + b'word-diff', | |
|
187 | default=False, | |
|
188 | ) | |
|
189 | ||
|
190 | ||
|
191 | coreconfigitem( | |
|
192 | b'alias', | |
|
193 | b'.*', | |
|
194 | default=dynamicdefault, | |
|
195 | generic=True, | |
|
196 | ) | |
|
197 | coreconfigitem( | |
|
198 | b'auth', | |
|
199 | b'cookiefile', | |
|
200 | default=None, | |
|
201 | ) | |
|
202 | _registerdiffopts(section=b'annotate') | |
|
203 | # bookmarks.pushing: internal hack for discovery | |
|
204 | coreconfigitem( | |
|
205 | b'bookmarks', | |
|
206 | b'pushing', | |
|
207 | default=list, | |
|
208 | ) | |
|
209 | # bundle.mainreporoot: internal hack for bundlerepo | |
|
210 | coreconfigitem( | |
|
211 | b'bundle', | |
|
212 | b'mainreporoot', | |
|
213 | default=b'', | |
|
214 | ) | |
|
215 | coreconfigitem( | |
|
216 | b'censor', | |
|
217 | b'policy', | |
|
218 | default=b'abort', | |
|
219 | experimental=True, | |
|
220 | ) | |
|
221 | coreconfigitem( | |
|
222 | b'chgserver', | |
|
223 | b'idletimeout', | |
|
224 | default=3600, | |
|
225 | ) | |
|
226 | coreconfigitem( | |
|
227 | b'chgserver', | |
|
228 | b'skiphash', | |
|
229 | default=False, | |
|
230 | ) | |
|
231 | coreconfigitem( | |
|
232 | b'cmdserver', | |
|
233 | b'log', | |
|
234 | default=None, | |
|
235 | ) | |
|
236 | coreconfigitem( | |
|
237 | b'cmdserver', | |
|
238 | b'max-log-files', | |
|
239 | default=7, | |
|
240 | ) | |
|
241 | coreconfigitem( | |
|
242 | b'cmdserver', | |
|
243 | b'max-log-size', | |
|
244 | default=b'1 MB', | |
|
245 | ) | |
|
246 | coreconfigitem( | |
|
247 | b'cmdserver', | |
|
248 | b'max-repo-cache', | |
|
249 | default=0, | |
|
250 | experimental=True, | |
|
251 | ) | |
|
252 | coreconfigitem( | |
|
253 | b'cmdserver', | |
|
254 | b'message-encodings', | |
|
255 | default=list, | |
|
256 | ) | |
|
257 | coreconfigitem( | |
|
258 | b'cmdserver', | |
|
259 | b'track-log', | |
|
260 | default=lambda: [b'chgserver', b'cmdserver', b'repocache'], | |
|
261 | ) | |
|
262 | coreconfigitem( | |
|
263 | b'cmdserver', | |
|
264 | b'shutdown-on-interrupt', | |
|
265 | default=True, | |
|
266 | ) | |
|
267 | coreconfigitem( | |
|
268 | b'color', | |
|
269 | b'.*', | |
|
270 | default=None, | |
|
271 | generic=True, | |
|
272 | ) | |
|
273 | coreconfigitem( | |
|
274 | b'color', | |
|
275 | b'mode', | |
|
276 | default=b'auto', | |
|
277 | ) | |
|
278 | coreconfigitem( | |
|
279 | b'color', | |
|
280 | b'pagermode', | |
|
281 | default=dynamicdefault, | |
|
282 | ) | |
|
283 | coreconfigitem( | |
|
284 | b'command-templates', | |
|
285 | b'graphnode', | |
|
286 | default=None, | |
|
287 | alias=[(b'ui', b'graphnodetemplate')], | |
|
288 | ) | |
|
289 | coreconfigitem( | |
|
290 | b'command-templates', | |
|
291 | b'log', | |
|
292 | default=None, | |
|
293 | alias=[(b'ui', b'logtemplate')], | |
|
294 | ) | |
|
295 | coreconfigitem( | |
|
296 | b'command-templates', | |
|
297 | b'mergemarker', | |
|
298 | default=( | |
|
299 | b'{node|short} ' | |
|
300 | b'{ifeq(tags, "tip", "", ' | |
|
301 | b'ifeq(tags, "", "", "{tags} "))}' | |
|
302 | b'{if(bookmarks, "{bookmarks} ")}' | |
|
303 | b'{ifeq(branch, "default", "", "{branch} ")}' | |
|
304 | b'- {author|user}: {desc|firstline}' | |
|
305 | ), | |
|
306 | alias=[(b'ui', b'mergemarkertemplate')], | |
|
307 | ) | |
|
308 | coreconfigitem( | |
|
309 | b'command-templates', | |
|
310 | b'pre-merge-tool-output', | |
|
311 | default=None, | |
|
312 | alias=[(b'ui', b'pre-merge-tool-output-template')], | |
|
313 | ) | |
|
314 | coreconfigitem( | |
|
315 | b'command-templates', | |
|
316 | b'oneline-summary', | |
|
317 | default=None, | |
|
318 | ) | |
|
319 | coreconfigitem( | |
|
320 | b'command-templates', | |
|
321 | b'oneline-summary.*', | |
|
322 | default=dynamicdefault, | |
|
323 | generic=True, | |
|
324 | ) | |
|
325 | _registerdiffopts(section=b'commands', configprefix=b'commit.interactive.') | |
|
326 | coreconfigitem( | |
|
327 | b'commands', | |
|
328 | b'commit.post-status', | |
|
329 | default=False, | |
|
330 | ) | |
|
331 | coreconfigitem( | |
|
332 | b'commands', | |
|
333 | b'grep.all-files', | |
|
334 | default=False, | |
|
335 | experimental=True, | |
|
336 | ) | |
|
337 | coreconfigitem( | |
|
338 | b'commands', | |
|
339 | b'merge.require-rev', | |
|
340 | default=False, | |
|
341 | ) | |
|
342 | coreconfigitem( | |
|
343 | b'commands', | |
|
344 | b'push.require-revs', | |
|
345 | default=False, | |
|
346 | ) | |
|
347 | coreconfigitem( | |
|
348 | b'commands', | |
|
349 | b'resolve.confirm', | |
|
350 | default=False, | |
|
351 | ) | |
|
352 | coreconfigitem( | |
|
353 | b'commands', | |
|
354 | b'resolve.explicit-re-merge', | |
|
355 | default=False, | |
|
356 | ) | |
|
357 | coreconfigitem( | |
|
358 | b'commands', | |
|
359 | b'resolve.mark-check', | |
|
360 | default=b'none', | |
|
361 | ) | |
|
362 | _registerdiffopts(section=b'commands', configprefix=b'revert.interactive.') | |
|
363 | coreconfigitem( | |
|
364 | b'commands', | |
|
365 | b'show.aliasprefix', | |
|
366 | default=list, | |
|
367 | ) | |
|
368 | coreconfigitem( | |
|
369 | b'commands', | |
|
370 | b'status.relative', | |
|
371 | default=False, | |
|
372 | ) | |
|
373 | coreconfigitem( | |
|
374 | b'commands', | |
|
375 | b'status.skipstates', | |
|
376 | default=[], | |
|
377 | experimental=True, | |
|
378 | ) | |
|
379 | coreconfigitem( | |
|
380 | b'commands', | |
|
381 | b'status.terse', | |
|
382 | default=b'', | |
|
383 | ) | |
|
384 | coreconfigitem( | |
|
385 | b'commands', | |
|
386 | b'status.verbose', | |
|
387 | default=False, | |
|
388 | ) | |
|
389 | coreconfigitem( | |
|
390 | b'commands', | |
|
391 | b'update.check', | |
|
392 | default=None, | |
|
393 | ) | |
|
394 | coreconfigitem( | |
|
395 | b'commands', | |
|
396 | b'update.requiredest', | |
|
397 | default=False, | |
|
398 | ) | |
|
399 | coreconfigitem( | |
|
400 | b'committemplate', | |
|
401 | b'.*', | |
|
402 | default=None, | |
|
403 | generic=True, | |
|
404 | ) | |
|
405 | coreconfigitem( | |
|
406 | b'convert', | |
|
407 | b'bzr.saverev', | |
|
408 | default=True, | |
|
409 | ) | |
|
410 | coreconfigitem( | |
|
411 | b'convert', | |
|
412 | b'cvsps.cache', | |
|
413 | default=True, | |
|
414 | ) | |
|
415 | coreconfigitem( | |
|
416 | b'convert', | |
|
417 | b'cvsps.fuzz', | |
|
418 | default=60, | |
|
419 | ) | |
|
420 | coreconfigitem( | |
|
421 | b'convert', | |
|
422 | b'cvsps.logencoding', | |
|
423 | default=None, | |
|
424 | ) | |
|
425 | coreconfigitem( | |
|
426 | b'convert', | |
|
427 | b'cvsps.mergefrom', | |
|
428 | default=None, | |
|
429 | ) | |
|
430 | coreconfigitem( | |
|
431 | b'convert', | |
|
432 | b'cvsps.mergeto', | |
|
433 | default=None, | |
|
434 | ) | |
|
435 | coreconfigitem( | |
|
436 | b'convert', | |
|
437 | b'git.committeractions', | |
|
438 | default=lambda: [b'messagedifferent'], | |
|
439 | ) | |
|
440 | coreconfigitem( | |
|
441 | b'convert', | |
|
442 | b'git.extrakeys', | |
|
443 | default=list, | |
|
444 | ) | |
|
445 | coreconfigitem( | |
|
446 | b'convert', | |
|
447 | b'git.findcopiesharder', | |
|
448 | default=False, | |
|
449 | ) | |
|
450 | coreconfigitem( | |
|
451 | b'convert', | |
|
452 | b'git.remoteprefix', | |
|
453 | default=b'remote', | |
|
454 | ) | |
|
455 | coreconfigitem( | |
|
456 | b'convert', | |
|
457 | b'git.renamelimit', | |
|
458 | default=400, | |
|
459 | ) | |
|
460 | coreconfigitem( | |
|
461 | b'convert', | |
|
462 | b'git.saverev', | |
|
463 | default=True, | |
|
464 | ) | |
|
465 | coreconfigitem( | |
|
466 | b'convert', | |
|
467 | b'git.similarity', | |
|
468 | default=50, | |
|
469 | ) | |
|
470 | coreconfigitem( | |
|
471 | b'convert', | |
|
472 | b'git.skipsubmodules', | |
|
473 | default=False, | |
|
474 | ) | |
|
475 | coreconfigitem( | |
|
476 | b'convert', | |
|
477 | b'hg.clonebranches', | |
|
478 | default=False, | |
|
479 | ) | |
|
480 | coreconfigitem( | |
|
481 | b'convert', | |
|
482 | b'hg.ignoreerrors', | |
|
483 | default=False, | |
|
484 | ) | |
|
485 | coreconfigitem( | |
|
486 | b'convert', | |
|
487 | b'hg.preserve-hash', | |
|
488 | default=False, | |
|
489 | ) | |
|
490 | coreconfigitem( | |
|
491 | b'convert', | |
|
492 | b'hg.revs', | |
|
493 | default=None, | |
|
494 | ) | |
|
495 | coreconfigitem( | |
|
496 | b'convert', | |
|
497 | b'hg.saverev', | |
|
498 | default=False, | |
|
499 | ) | |
|
500 | coreconfigitem( | |
|
501 | b'convert', | |
|
502 | b'hg.sourcename', | |
|
503 | default=None, | |
|
504 | ) | |
|
505 | coreconfigitem( | |
|
506 | b'convert', | |
|
507 | b'hg.startrev', | |
|
508 | default=None, | |
|
509 | ) | |
|
510 | coreconfigitem( | |
|
511 | b'convert', | |
|
512 | b'hg.tagsbranch', | |
|
513 | default=b'default', | |
|
514 | ) | |
|
515 | coreconfigitem( | |
|
516 | b'convert', | |
|
517 | b'hg.usebranchnames', | |
|
518 | default=True, | |
|
519 | ) | |
|
520 | coreconfigitem( | |
|
521 | b'convert', | |
|
522 | b'ignoreancestorcheck', | |
|
523 | default=False, | |
|
524 | experimental=True, | |
|
525 | ) | |
|
526 | coreconfigitem( | |
|
527 | b'convert', | |
|
528 | b'localtimezone', | |
|
529 | default=False, | |
|
530 | ) | |
|
531 | coreconfigitem( | |
|
532 | b'convert', | |
|
533 | b'p4.encoding', | |
|
534 | default=dynamicdefault, | |
|
535 | ) | |
|
536 | coreconfigitem( | |
|
537 | b'convert', | |
|
538 | b'p4.startrev', | |
|
539 | default=0, | |
|
540 | ) | |
|
541 | coreconfigitem( | |
|
542 | b'convert', | |
|
543 | b'skiptags', | |
|
544 | default=False, | |
|
545 | ) | |
|
546 | coreconfigitem( | |
|
547 | b'convert', | |
|
548 | b'svn.debugsvnlog', | |
|
549 | default=True, | |
|
550 | ) | |
|
551 | coreconfigitem( | |
|
552 | b'convert', | |
|
553 | b'svn.trunk', | |
|
554 | default=None, | |
|
555 | ) | |
|
556 | coreconfigitem( | |
|
557 | b'convert', | |
|
558 | b'svn.tags', | |
|
559 | default=None, | |
|
560 | ) | |
|
561 | coreconfigitem( | |
|
562 | b'convert', | |
|
563 | b'svn.branches', | |
|
564 | default=None, | |
|
565 | ) | |
|
566 | coreconfigitem( | |
|
567 | b'convert', | |
|
568 | b'svn.startrev', | |
|
569 | default=0, | |
|
570 | ) | |
|
571 | coreconfigitem( | |
|
572 | b'convert', | |
|
573 | b'svn.dangerous-set-commit-dates', | |
|
574 | default=False, | |
|
575 | ) | |
|
576 | coreconfigitem( | |
|
577 | b'debug', | |
|
578 | b'dirstate.delaywrite', | |
|
579 | default=0, | |
|
580 | ) | |
|
581 | coreconfigitem( | |
|
582 | b'debug', | |
|
583 | b'revlog.verifyposition.changelog', | |
|
584 | default=b'', | |
|
585 | ) | |
|
586 | coreconfigitem( | |
|
587 | b'debug', | |
|
588 | b'revlog.debug-delta', | |
|
589 | default=False, | |
|
590 | ) | |
|
591 | # display extra information about the bundling process | |
|
592 | coreconfigitem( | |
|
593 | b'debug', | |
|
594 | b'bundling-stats', | |
|
595 | default=False, | |
|
596 | ) | |
|
597 | # display extra information about the unbundling process | |
|
598 | coreconfigitem( | |
|
599 | b'debug', | |
|
600 | b'unbundling-stats', | |
|
601 | default=False, | |
|
602 | ) | |
|
603 | coreconfigitem( | |
|
604 | b'defaults', | |
|
605 | b'.*', | |
|
606 | default=None, | |
|
607 | generic=True, | |
|
608 | ) | |
|
609 | coreconfigitem( | |
|
610 | b'devel', | |
|
611 | b'all-warnings', | |
|
612 | default=False, | |
|
613 | ) | |
|
614 | coreconfigitem( | |
|
615 | b'devel', | |
|
616 | b'bundle2.debug', | |
|
617 | default=False, | |
|
618 | ) | |
|
619 | # which kind of delta to put in the bundled changegroup. Possible value | |
|
620 | # - '': use default behavior | |
|
621 | # - p1: force to always use delta against p1 | |
|
622 | # - full: force to always use full content | |
|
623 | coreconfigitem( | |
|
624 | b'devel', | |
|
625 | b'bundle.delta', | |
|
626 | default=b'', | |
|
627 | ) | |
|
628 | coreconfigitem( | |
|
629 | b'devel', | |
|
630 | b'cache-vfs', | |
|
631 | default=None, | |
|
632 | ) | |
|
633 | coreconfigitem( | |
|
634 | b'devel', | |
|
635 | b'check-locks', | |
|
636 | default=False, | |
|
637 | ) | |
|
638 | coreconfigitem( | |
|
639 | b'devel', | |
|
640 | b'check-relroot', | |
|
641 | default=False, | |
|
642 | ) | |
|
643 | # Track copy information for all file, not just "added" one (very slow) | |
|
644 | coreconfigitem( | |
|
645 | b'devel', | |
|
646 | b'copy-tracing.trace-all-files', | |
|
647 | default=False, | |
|
648 | ) | |
|
649 | coreconfigitem( | |
|
650 | b'devel', | |
|
651 | b'default-date', | |
|
652 | default=None, | |
|
653 | ) | |
|
654 | coreconfigitem( | |
|
655 | b'devel', | |
|
656 | b'deprec-warn', | |
|
657 | default=False, | |
|
658 | ) | |
|
659 | # possible values: | |
|
660 | # - auto (the default) | |
|
661 | # - force-append | |
|
662 | # - force-new | |
|
663 | coreconfigitem( | |
|
664 | b'devel', | |
|
665 | b'dirstate.v2.data_update_mode', | |
|
666 | default="auto", | |
|
667 | ) | |
|
668 | coreconfigitem( | |
|
669 | b'devel', | |
|
670 | b'disableloaddefaultcerts', | |
|
671 | default=False, | |
|
672 | ) | |
|
673 | coreconfigitem( | |
|
674 | b'devel', | |
|
675 | b'warn-empty-changegroup', | |
|
676 | default=False, | |
|
677 | ) | |
|
678 | coreconfigitem( | |
|
679 | b'devel', | |
|
680 | b'legacy.exchange', | |
|
681 | default=list, | |
|
682 | ) | |
|
683 | # When True, revlogs use a special reference version of the nodemap, that is not | |
|
684 | # performant but is "known" to behave properly. | |
|
685 | coreconfigitem( | |
|
686 | b'devel', | |
|
687 | b'persistent-nodemap', | |
|
688 | default=False, | |
|
689 | ) | |
|
690 | coreconfigitem( | |
|
691 | b'devel', | |
|
692 | b'servercafile', | |
|
693 | default=b'', | |
|
694 | ) | |
|
695 | # This config option is intended for use in tests only. It is a giant | |
|
696 | # footgun to kill security. Don't define it. | |
|
697 | coreconfigitem( | |
|
698 | b'devel', | |
|
699 | b'server-insecure-exact-protocol', | |
|
700 | default=b'', | |
|
701 | ) | |
|
702 | coreconfigitem( | |
|
703 | b'devel', | |
|
704 | b'serverrequirecert', | |
|
705 | default=False, | |
|
706 | ) | |
|
707 | # Makes the status algorithm wait for the existence of this file | |
|
708 | # (or until a timeout of `devel.sync.status.pre-dirstate-write-file-timeout` | |
|
709 | # seconds) before taking the lock and writing the dirstate. | |
|
710 | # Status signals that it's ready to wait by creating a file | |
|
711 | # with the same name + `.waiting`. | |
|
712 | # Useful when testing race conditions. | |
|
713 | coreconfigitem( | |
|
714 | b'devel', | |
|
715 | b'sync.status.pre-dirstate-write-file', | |
|
716 | default=None, | |
|
717 | ) | |
|
718 | coreconfigitem( | |
|
719 | b'devel', | |
|
720 | b'sync.status.pre-dirstate-write-file-timeout', | |
|
721 | default=2, | |
|
722 | ) | |
|
723 | coreconfigitem( | |
|
724 | b'devel', | |
|
725 | b'sync.dirstate.post-docket-read-file', | |
|
726 | default=None, | |
|
727 | ) | |
|
728 | coreconfigitem( | |
|
729 | b'devel', | |
|
730 | b'sync.dirstate.post-docket-read-file-timeout', | |
|
731 | default=2, | |
|
732 | ) | |
|
733 | coreconfigitem( | |
|
734 | b'devel', | |
|
735 | b'sync.dirstate.pre-read-file', | |
|
736 | default=None, | |
|
737 | ) | |
|
738 | coreconfigitem( | |
|
739 | b'devel', | |
|
740 | b'sync.dirstate.pre-read-file-timeout', | |
|
741 | default=2, | |
|
742 | ) | |
|
743 | coreconfigitem( | |
|
744 | b'devel', | |
|
745 | b'strip-obsmarkers', | |
|
746 | default=True, | |
|
747 | ) | |
|
748 | coreconfigitem( | |
|
749 | b'devel', | |
|
750 | b'warn-config', | |
|
751 | default=None, | |
|
752 | ) | |
|
753 | coreconfigitem( | |
|
754 | b'devel', | |
|
755 | b'warn-config-default', | |
|
756 | default=None, | |
|
757 | ) | |
|
758 | coreconfigitem( | |
|
759 | b'devel', | |
|
760 | b'user.obsmarker', | |
|
761 | default=None, | |
|
762 | ) | |
|
763 | coreconfigitem( | |
|
764 | b'devel', | |
|
765 | b'warn-config-unknown', | |
|
766 | default=None, | |
|
767 | ) | |
|
768 | coreconfigitem( | |
|
769 | b'devel', | |
|
770 | b'debug.copies', | |
|
771 | default=False, | |
|
772 | ) | |
|
773 | coreconfigitem( | |
|
774 | b'devel', | |
|
775 | b'copy-tracing.multi-thread', | |
|
776 | default=True, | |
|
777 | ) | |
|
778 | coreconfigitem( | |
|
779 | b'devel', | |
|
780 | b'debug.extensions', | |
|
781 | default=False, | |
|
782 | ) | |
|
783 | coreconfigitem( | |
|
784 | b'devel', | |
|
785 | b'debug.repo-filters', | |
|
786 | default=False, | |
|
787 | ) | |
|
788 | coreconfigitem( | |
|
789 | b'devel', | |
|
790 | b'debug.peer-request', | |
|
791 | default=False, | |
|
792 | ) | |
|
793 | # If discovery.exchange-heads is False, the discovery will not start with | |
|
794 | # remote head fetching and local head querying. | |
|
795 | coreconfigitem( | |
|
796 | b'devel', | |
|
797 | b'discovery.exchange-heads', | |
|
798 | default=True, | |
|
799 | ) | |
|
800 | # If devel.debug.abort-update is True, then any merge with the working copy, | |
|
801 | # e.g. [hg update], will be aborted after figuring out what needs to be done, | |
|
802 | # but before spawning the parallel worker | |
|
803 | coreconfigitem( | |
|
804 | b'devel', | |
|
805 | b'debug.abort-update', | |
|
806 | default=False, | |
|
807 | ) | |
|
808 | # If discovery.grow-sample is False, the sample size used in set discovery will | |
|
809 | # not be increased through the process | |
|
810 | coreconfigitem( | |
|
811 | b'devel', | |
|
812 | b'discovery.grow-sample', | |
|
813 | default=True, | |
|
814 | ) | |
|
815 | # When discovery.grow-sample.dynamic is True, the default, the sample size is | |
|
816 | # adapted to the shape of the undecided set (it is set to the max of: | |
|
817 | # <target-size>, len(roots(undecided)), len(heads(undecided) | |
|
818 | coreconfigitem( | |
|
819 | b'devel', | |
|
820 | b'discovery.grow-sample.dynamic', | |
|
821 | default=True, | |
|
822 | ) | |
|
823 | # discovery.grow-sample.rate control the rate at which the sample grow | |
|
824 | coreconfigitem( | |
|
825 | b'devel', | |
|
826 | b'discovery.grow-sample.rate', | |
|
827 | default=1.05, | |
|
828 | ) | |
|
829 | # If discovery.randomize is False, random sampling during discovery are | |
|
830 | # deterministic. It is meant for integration tests. | |
|
831 | coreconfigitem( | |
|
832 | b'devel', | |
|
833 | b'discovery.randomize', | |
|
834 | default=True, | |
|
835 | ) | |
|
836 | # Control the initial size of the discovery sample | |
|
837 | coreconfigitem( | |
|
838 | b'devel', | |
|
839 | b'discovery.sample-size', | |
|
840 | default=200, | |
|
841 | ) | |
|
842 | # Control the initial size of the discovery for initial change | |
|
843 | coreconfigitem( | |
|
844 | b'devel', | |
|
845 | b'discovery.sample-size.initial', | |
|
846 | default=100, | |
|
847 | ) | |
|
848 | _registerdiffopts(section=b'diff') | |
|
849 | coreconfigitem( | |
|
850 | b'diff', | |
|
851 | b'merge', | |
|
852 | default=False, | |
|
853 | experimental=True, | |
|
854 | ) | |
|
855 | coreconfigitem( | |
|
856 | b'email', | |
|
857 | b'bcc', | |
|
858 | default=None, | |
|
859 | ) | |
|
860 | coreconfigitem( | |
|
861 | b'email', | |
|
862 | b'cc', | |
|
863 | default=None, | |
|
864 | ) | |
|
865 | coreconfigitem( | |
|
866 | b'email', | |
|
867 | b'charsets', | |
|
868 | default=list, | |
|
869 | ) | |
|
870 | coreconfigitem( | |
|
871 | b'email', | |
|
872 | b'from', | |
|
873 | default=None, | |
|
874 | ) | |
|
875 | coreconfigitem( | |
|
876 | b'email', | |
|
877 | b'method', | |
|
878 | default=b'smtp', | |
|
879 | ) | |
|
880 | coreconfigitem( | |
|
881 | b'email', | |
|
882 | b'reply-to', | |
|
883 | default=None, | |
|
884 | ) | |
|
885 | coreconfigitem( | |
|
886 | b'email', | |
|
887 | b'to', | |
|
888 | default=None, | |
|
889 | ) | |
|
890 | coreconfigitem( | |
|
891 | b'experimental', | |
|
892 | b'archivemetatemplate', | |
|
893 | default=dynamicdefault, | |
|
894 | ) | |
|
895 | coreconfigitem( | |
|
896 | b'experimental', | |
|
897 | b'auto-publish', | |
|
898 | default=b'publish', | |
|
899 | ) | |
|
900 | coreconfigitem( | |
|
901 | b'experimental', | |
|
902 | b'bundle-phases', | |
|
903 | default=False, | |
|
904 | ) | |
|
905 | coreconfigitem( | |
|
906 | b'experimental', | |
|
907 | b'bundle2-advertise', | |
|
908 | default=True, | |
|
909 | ) | |
|
910 | coreconfigitem( | |
|
911 | b'experimental', | |
|
912 | b'bundle2-output-capture', | |
|
913 | default=False, | |
|
914 | ) | |
|
915 | coreconfigitem( | |
|
916 | b'experimental', | |
|
917 | b'bundle2.pushback', | |
|
918 | default=False, | |
|
919 | ) | |
|
920 | coreconfigitem( | |
|
921 | b'experimental', | |
|
922 | b'bundle2lazylocking', | |
|
923 | default=False, | |
|
924 | ) | |
|
925 | coreconfigitem( | |
|
926 | b'experimental', | |
|
927 | b'bundlecomplevel', | |
|
928 | default=None, | |
|
929 | ) | |
|
930 | coreconfigitem( | |
|
931 | b'experimental', | |
|
932 | b'bundlecomplevel.bzip2', | |
|
933 | default=None, | |
|
934 | ) | |
|
935 | coreconfigitem( | |
|
936 | b'experimental', | |
|
937 | b'bundlecomplevel.gzip', | |
|
938 | default=None, | |
|
939 | ) | |
|
940 | coreconfigitem( | |
|
941 | b'experimental', | |
|
942 | b'bundlecomplevel.none', | |
|
943 | default=None, | |
|
944 | ) | |
|
945 | coreconfigitem( | |
|
946 | b'experimental', | |
|
947 | b'bundlecomplevel.zstd', | |
|
948 | default=None, | |
|
949 | ) | |
|
950 | coreconfigitem( | |
|
951 | b'experimental', | |
|
952 | b'bundlecompthreads', | |
|
953 | default=None, | |
|
954 | ) | |
|
955 | coreconfigitem( | |
|
956 | b'experimental', | |
|
957 | b'bundlecompthreads.bzip2', | |
|
958 | default=None, | |
|
959 | ) | |
|
960 | coreconfigitem( | |
|
961 | b'experimental', | |
|
962 | b'bundlecompthreads.gzip', | |
|
963 | default=None, | |
|
964 | ) | |
|
965 | coreconfigitem( | |
|
966 | b'experimental', | |
|
967 | b'bundlecompthreads.none', | |
|
968 | default=None, | |
|
969 | ) | |
|
970 | coreconfigitem( | |
|
971 | b'experimental', | |
|
972 | b'bundlecompthreads.zstd', | |
|
973 | default=None, | |
|
974 | ) | |
|
975 | coreconfigitem( | |
|
976 | b'experimental', | |
|
977 | b'changegroup3', | |
|
978 | default=True, | |
|
979 | ) | |
|
980 | coreconfigitem( | |
|
981 | b'experimental', | |
|
982 | b'changegroup4', | |
|
983 | default=False, | |
|
984 | ) | |
|
985 | ||
|
986 | # might remove rank configuration once the computation has no impact | |
|
987 | coreconfigitem( | |
|
988 | b'experimental', | |
|
989 | b'changelog-v2.compute-rank', | |
|
990 | default=True, | |
|
991 | ) | |
|
992 | coreconfigitem( | |
|
993 | b'experimental', | |
|
994 | b'cleanup-as-archived', | |
|
995 | default=False, | |
|
996 | ) | |
|
997 | coreconfigitem( | |
|
998 | b'experimental', | |
|
999 | b'clientcompressionengines', | |
|
1000 | default=list, | |
|
1001 | ) | |
|
1002 | coreconfigitem( | |
|
1003 | b'experimental', | |
|
1004 | b'copytrace', | |
|
1005 | default=b'on', | |
|
1006 | ) | |
|
1007 | coreconfigitem( | |
|
1008 | b'experimental', | |
|
1009 | b'copytrace.movecandidateslimit', | |
|
1010 | default=100, | |
|
1011 | ) | |
|
1012 | coreconfigitem( | |
|
1013 | b'experimental', | |
|
1014 | b'copytrace.sourcecommitlimit', | |
|
1015 | default=100, | |
|
1016 | ) | |
|
1017 | coreconfigitem( | |
|
1018 | b'experimental', | |
|
1019 | b'copies.read-from', | |
|
1020 | default=b"filelog-only", | |
|
1021 | ) | |
|
1022 | coreconfigitem( | |
|
1023 | b'experimental', | |
|
1024 | b'copies.write-to', | |
|
1025 | default=b'filelog-only', | |
|
1026 | ) | |
|
1027 | coreconfigitem( | |
|
1028 | b'experimental', | |
|
1029 | b'crecordtest', | |
|
1030 | default=None, | |
|
1031 | ) | |
|
1032 | coreconfigitem( | |
|
1033 | b'experimental', | |
|
1034 | b'directaccess', | |
|
1035 | default=False, | |
|
1036 | ) | |
|
1037 | coreconfigitem( | |
|
1038 | b'experimental', | |
|
1039 | b'directaccess.revnums', | |
|
1040 | default=False, | |
|
1041 | ) | |
|
1042 | coreconfigitem( | |
|
1043 | b'experimental', | |
|
1044 | b'editortmpinhg', | |
|
1045 | default=False, | |
|
1046 | ) | |
|
1047 | coreconfigitem( | |
|
1048 | b'experimental', | |
|
1049 | b'evolution', | |
|
1050 | default=list, | |
|
1051 | ) | |
|
1052 | coreconfigitem( | |
|
1053 | b'experimental', | |
|
1054 | b'evolution.allowdivergence', | |
|
1055 | default=False, | |
|
1056 | alias=[(b'experimental', b'allowdivergence')], | |
|
1057 | ) | |
|
1058 | coreconfigitem( | |
|
1059 | b'experimental', | |
|
1060 | b'evolution.allowunstable', | |
|
1061 | default=None, | |
|
1062 | ) | |
|
1063 | coreconfigitem( | |
|
1064 | b'experimental', | |
|
1065 | b'evolution.createmarkers', | |
|
1066 | default=None, | |
|
1067 | ) | |
|
1068 | coreconfigitem( | |
|
1069 | b'experimental', | |
|
1070 | b'evolution.effect-flags', | |
|
1071 | default=True, | |
|
1072 | alias=[(b'experimental', b'effect-flags')], | |
|
1073 | ) | |
|
1074 | coreconfigitem( | |
|
1075 | b'experimental', | |
|
1076 | b'evolution.exchange', | |
|
1077 | default=None, | |
|
1078 | ) | |
|
1079 | coreconfigitem( | |
|
1080 | b'experimental', | |
|
1081 | b'evolution.bundle-obsmarker', | |
|
1082 | default=False, | |
|
1083 | ) | |
|
1084 | coreconfigitem( | |
|
1085 | b'experimental', | |
|
1086 | b'evolution.bundle-obsmarker:mandatory', | |
|
1087 | default=True, | |
|
1088 | ) | |
|
1089 | coreconfigitem( | |
|
1090 | b'experimental', | |
|
1091 | b'log.topo', | |
|
1092 | default=False, | |
|
1093 | ) | |
|
1094 | coreconfigitem( | |
|
1095 | b'experimental', | |
|
1096 | b'evolution.report-instabilities', | |
|
1097 | default=True, | |
|
1098 | ) | |
|
1099 | coreconfigitem( | |
|
1100 | b'experimental', | |
|
1101 | b'evolution.track-operation', | |
|
1102 | default=True, | |
|
1103 | ) | |
|
1104 | # repo-level config to exclude a revset visibility | |
|
1105 | # | |
|
1106 | # The target use case is to use `share` to expose different subset of the same | |
|
1107 | # repository, especially server side. See also `server.view`. | |
|
1108 | coreconfigitem( | |
|
1109 | b'experimental', | |
|
1110 | b'extra-filter-revs', | |
|
1111 | default=None, | |
|
1112 | ) | |
|
1113 | coreconfigitem( | |
|
1114 | b'experimental', | |
|
1115 | b'maxdeltachainspan', | |
|
1116 | default=-1, | |
|
1117 | ) | |
|
1118 | # tracks files which were undeleted (merge might delete them but we explicitly | |
|
1119 | # kept/undeleted them) and creates new filenodes for them | |
|
1120 | coreconfigitem( | |
|
1121 | b'experimental', | |
|
1122 | b'merge-track-salvaged', | |
|
1123 | default=False, | |
|
1124 | ) | |
|
1125 | coreconfigitem( | |
|
1126 | b'experimental', | |
|
1127 | b'mmapindexthreshold', | |
|
1128 | default=None, | |
|
1129 | ) | |
|
1130 | coreconfigitem( | |
|
1131 | b'experimental', | |
|
1132 | b'narrow', | |
|
1133 | default=False, | |
|
1134 | ) | |
|
1135 | coreconfigitem( | |
|
1136 | b'experimental', | |
|
1137 | b'nonnormalparanoidcheck', | |
|
1138 | default=False, | |
|
1139 | ) | |
|
1140 | coreconfigitem( | |
|
1141 | b'experimental', | |
|
1142 | b'exportableenviron', | |
|
1143 | default=list, | |
|
1144 | ) | |
|
1145 | coreconfigitem( | |
|
1146 | b'experimental', | |
|
1147 | b'extendedheader.index', | |
|
1148 | default=None, | |
|
1149 | ) | |
|
1150 | coreconfigitem( | |
|
1151 | b'experimental', | |
|
1152 | b'extendedheader.similarity', | |
|
1153 | default=False, | |
|
1154 | ) | |
|
1155 | coreconfigitem( | |
|
1156 | b'experimental', | |
|
1157 | b'graphshorten', | |
|
1158 | default=False, | |
|
1159 | ) | |
|
1160 | coreconfigitem( | |
|
1161 | b'experimental', | |
|
1162 | b'graphstyle.parent', | |
|
1163 | default=dynamicdefault, | |
|
1164 | ) | |
|
1165 | coreconfigitem( | |
|
1166 | b'experimental', | |
|
1167 | b'graphstyle.missing', | |
|
1168 | default=dynamicdefault, | |
|
1169 | ) | |
|
1170 | coreconfigitem( | |
|
1171 | b'experimental', | |
|
1172 | b'graphstyle.grandparent', | |
|
1173 | default=dynamicdefault, | |
|
1174 | ) | |
|
1175 | coreconfigitem( | |
|
1176 | b'experimental', | |
|
1177 | b'hook-track-tags', | |
|
1178 | default=False, | |
|
1179 | ) | |
|
1180 | coreconfigitem( | |
|
1181 | b'experimental', | |
|
1182 | b'httppostargs', | |
|
1183 | default=False, | |
|
1184 | ) | |
|
1185 | coreconfigitem(b'experimental', b'nointerrupt', default=False) | |
|
1186 | coreconfigitem(b'experimental', b'nointerrupt-interactiveonly', default=True) | |
|
1187 | ||
|
1188 | coreconfigitem( | |
|
1189 | b'experimental', | |
|
1190 | b'obsmarkers-exchange-debug', | |
|
1191 | default=False, | |
|
1192 | ) | |
|
1193 | coreconfigitem( | |
|
1194 | b'experimental', | |
|
1195 | b'remotenames', | |
|
1196 | default=False, | |
|
1197 | ) | |
|
1198 | coreconfigitem( | |
|
1199 | b'experimental', | |
|
1200 | b'removeemptydirs', | |
|
1201 | default=True, | |
|
1202 | ) | |
|
1203 | coreconfigitem( | |
|
1204 | b'experimental', | |
|
1205 | b'revert.interactive.select-to-keep', | |
|
1206 | default=False, | |
|
1207 | ) | |
|
1208 | coreconfigitem( | |
|
1209 | b'experimental', | |
|
1210 | b'revisions.prefixhexnode', | |
|
1211 | default=False, | |
|
1212 | ) | |
|
1213 | # "out of experimental" todo list. | |
|
1214 | # | |
|
1215 | # * include management of a persistent nodemap in the main docket | |
|
1216 | # * enforce a "no-truncate" policy for mmap safety | |
|
1217 | # - for censoring operation | |
|
1218 | # - for stripping operation | |
|
1219 | # - for rollback operation | |
|
1220 | # * proper streaming (race free) of the docket file | |
|
1221 | # * track garbage data to evemtually allow rewriting -existing- sidedata. | |
|
1222 | # * Exchange-wise, we will also need to do something more efficient than | |
|
1223 | # keeping references to the affected revlogs, especially memory-wise when | |
|
1224 | # rewriting sidedata. | |
|
1225 | # * introduce a proper solution to reduce the number of filelog related files. | |
|
1226 | # * use caching for reading sidedata (similar to what we do for data). | |
|
1227 | # * no longer set offset=0 if sidedata_size=0 (simplify cutoff computation). | |
|
1228 | # * Improvement to consider | |
|
1229 | # - avoid compression header in chunk using the default compression? | |
|
1230 | # - forbid "inline" compression mode entirely? | |
|
1231 | # - split the data offset and flag field (the 2 bytes save are mostly trouble) | |
|
1232 | # - keep track of uncompressed -chunk- size (to preallocate memory better) | |
|
1233 | # - keep track of chain base or size (probably not that useful anymore) | |
|
1234 | coreconfigitem( | |
|
1235 | b'experimental', | |
|
1236 | b'revlogv2', | |
|
1237 | default=None, | |
|
1238 | ) | |
|
1239 | coreconfigitem( | |
|
1240 | b'experimental', | |
|
1241 | b'revisions.disambiguatewithin', | |
|
1242 | default=None, | |
|
1243 | ) | |
|
1244 | coreconfigitem( | |
|
1245 | b'experimental', | |
|
1246 | b'rust.index', | |
|
1247 | default=False, | |
|
1248 | ) | |
|
1249 | coreconfigitem( | |
|
1250 | b'experimental', | |
|
1251 | b'server.allow-hidden-access', | |
|
1252 | default=list, | |
|
1253 | ) | |
|
1254 | coreconfigitem( | |
|
1255 | b'experimental', | |
|
1256 | b'server.filesdata.recommended-batch-size', | |
|
1257 | default=50000, | |
|
1258 | ) | |
|
1259 | coreconfigitem( | |
|
1260 | b'experimental', | |
|
1261 | b'server.manifestdata.recommended-batch-size', | |
|
1262 | default=100000, | |
|
1263 | ) | |
|
1264 | coreconfigitem( | |
|
1265 | b'experimental', | |
|
1266 | b'server.stream-narrow-clones', | |
|
1267 | default=False, | |
|
1268 | ) | |
|
1269 | coreconfigitem( | |
|
1270 | b'experimental', | |
|
1271 | b'single-head-per-branch', | |
|
1272 | default=False, | |
|
1273 | ) | |
|
1274 | coreconfigitem( | |
|
1275 | b'experimental', | |
|
1276 | b'single-head-per-branch:account-closed-heads', | |
|
1277 | default=False, | |
|
1278 | ) | |
|
1279 | coreconfigitem( | |
|
1280 | b'experimental', | |
|
1281 | b'single-head-per-branch:public-changes-only', | |
|
1282 | default=False, | |
|
1283 | ) | |
|
1284 | coreconfigitem( | |
|
1285 | b'experimental', | |
|
1286 | b'sparse-read', | |
|
1287 | default=False, | |
|
1288 | ) | |
|
1289 | coreconfigitem( | |
|
1290 | b'experimental', | |
|
1291 | b'sparse-read.density-threshold', | |
|
1292 | default=0.50, | |
|
1293 | ) | |
|
1294 | coreconfigitem( | |
|
1295 | b'experimental', | |
|
1296 | b'sparse-read.min-gap-size', | |
|
1297 | default=b'65K', | |
|
1298 | ) | |
|
1299 | coreconfigitem( | |
|
1300 | b'experimental', | |
|
1301 | b'stream-v3', | |
|
1302 | default=False, | |
|
1303 | ) | |
|
1304 | coreconfigitem( | |
|
1305 | b'experimental', | |
|
1306 | b'treemanifest', | |
|
1307 | default=False, | |
|
1308 | ) | |
|
1309 | coreconfigitem( | |
|
1310 | b'experimental', | |
|
1311 | b'update.atomic-file', | |
|
1312 | default=False, | |
|
1313 | ) | |
|
1314 | coreconfigitem( | |
|
1315 | b'experimental', | |
|
1316 | b'web.full-garbage-collection-rate', | |
|
1317 | default=1, # still forcing a full collection on each request | |
|
1318 | ) | |
|
1319 | coreconfigitem( | |
|
1320 | b'experimental', | |
|
1321 | b'worker.wdir-get-thread-safe', | |
|
1322 | default=False, | |
|
1323 | ) | |
|
1324 | coreconfigitem( | |
|
1325 | b'experimental', | |
|
1326 | b'worker.repository-upgrade', | |
|
1327 | default=False, | |
|
1328 | ) | |
|
1329 | coreconfigitem( | |
|
1330 | b'experimental', | |
|
1331 | b'xdiff', | |
|
1332 | default=False, | |
|
1333 | ) | |
|
1334 | coreconfigitem( | |
|
1335 | b'extensions', | |
|
1336 | b'[^:]*', | |
|
1337 | default=None, | |
|
1338 | generic=True, | |
|
1339 | ) | |
|
1340 | coreconfigitem( | |
|
1341 | b'extensions', | |
|
1342 | b'[^:]*:required', | |
|
1343 | default=False, | |
|
1344 | generic=True, | |
|
1345 | ) | |
|
1346 | coreconfigitem( | |
|
1347 | b'extdata', | |
|
1348 | b'.*', | |
|
1349 | default=None, | |
|
1350 | generic=True, | |
|
1351 | ) | |
|
1352 | coreconfigitem( | |
|
1353 | b'format', | |
|
1354 | b'bookmarks-in-store', | |
|
1355 | default=False, | |
|
1356 | ) | |
|
1357 | coreconfigitem( | |
|
1358 | b'format', | |
|
1359 | b'chunkcachesize', | |
|
1360 | default=None, | |
|
1361 | experimental=True, | |
|
1362 | ) | |
|
1363 | coreconfigitem( | |
|
1364 | # Enable this dirstate format *when creating a new repository*. | |
|
1365 | # Which format to use for existing repos is controlled by .hg/requires | |
|
1366 | b'format', | |
|
1367 | b'use-dirstate-v2', | |
|
1368 | default=False, | |
|
1369 | experimental=True, | |
|
1370 | alias=[(b'format', b'exp-rc-dirstate-v2')], | |
|
1371 | ) | |
|
1372 | coreconfigitem( | |
|
1373 | b'format', | |
|
1374 | b'use-dirstate-v2.automatic-upgrade-of-mismatching-repositories', | |
|
1375 | default=False, | |
|
1376 | experimental=True, | |
|
1377 | ) | |
|
1378 | coreconfigitem( | |
|
1379 | b'format', | |
|
1380 | b'use-dirstate-v2.automatic-upgrade-of-mismatching-repositories:quiet', | |
|
1381 | default=False, | |
|
1382 | experimental=True, | |
|
1383 | ) | |
|
1384 | coreconfigitem( | |
|
1385 | b'format', | |
|
1386 | b'use-dirstate-tracked-hint', | |
|
1387 | default=False, | |
|
1388 | experimental=True, | |
|
1389 | ) | |
|
1390 | coreconfigitem( | |
|
1391 | b'format', | |
|
1392 | b'use-dirstate-tracked-hint.version', | |
|
1393 | default=1, | |
|
1394 | experimental=True, | |
|
1395 | ) | |
|
1396 | coreconfigitem( | |
|
1397 | b'format', | |
|
1398 | b'use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories', | |
|
1399 | default=False, | |
|
1400 | experimental=True, | |
|
1401 | ) | |
|
1402 | coreconfigitem( | |
|
1403 | b'format', | |
|
1404 | b'use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories:quiet', | |
|
1405 | default=False, | |
|
1406 | experimental=True, | |
|
1407 | ) | |
|
1408 | coreconfigitem( | |
|
1409 | b'format', | |
|
1410 | b'dotencode', | |
|
1411 | default=True, | |
|
1412 | ) | |
|
1413 | coreconfigitem( | |
|
1414 | b'format', | |
|
1415 | b'generaldelta', | |
|
1416 | default=False, | |
|
1417 | experimental=True, | |
|
1418 | ) | |
|
1419 | coreconfigitem( | |
|
1420 | b'format', | |
|
1421 | b'manifestcachesize', | |
|
1422 | default=None, | |
|
1423 | experimental=True, | |
|
1424 | ) | |
|
1425 | coreconfigitem( | |
|
1426 | b'format', | |
|
1427 | b'maxchainlen', | |
|
1428 | default=dynamicdefault, | |
|
1429 | experimental=True, | |
|
1430 | ) | |
|
1431 | coreconfigitem( | |
|
1432 | b'format', | |
|
1433 | b'obsstore-version', | |
|
1434 | default=None, | |
|
1435 | ) | |
|
1436 | coreconfigitem( | |
|
1437 | b'format', | |
|
1438 | b'sparse-revlog', | |
|
1439 | default=True, | |
|
1440 | ) | |
|
1441 | coreconfigitem( | |
|
1442 | b'format', | |
|
1443 | b'revlog-compression', | |
|
1444 | default=lambda: [b'zstd', b'zlib'], | |
|
1445 | alias=[(b'experimental', b'format.compression')], | |
|
1446 | ) | |
|
1447 | # Experimental TODOs: | |
|
1448 | # | |
|
1449 | # * Same as for revlogv2 (but for the reduction of the number of files) | |
|
1450 | # * Actually computing the rank of changesets | |
|
1451 | # * Improvement to investigate | |
|
1452 | # - storing .hgtags fnode | |
|
1453 | # - storing branch related identifier | |
|
1454 | ||
|
1455 | coreconfigitem( | |
|
1456 | b'format', | |
|
1457 | b'exp-use-changelog-v2', | |
|
1458 | default=None, | |
|
1459 | experimental=True, | |
|
1460 | ) | |
|
1461 | coreconfigitem( | |
|
1462 | b'format', | |
|
1463 | b'usefncache', | |
|
1464 | default=True, | |
|
1465 | ) | |
|
1466 | coreconfigitem( | |
|
1467 | b'format', | |
|
1468 | b'usegeneraldelta', | |
|
1469 | default=True, | |
|
1470 | ) | |
|
1471 | coreconfigitem( | |
|
1472 | b'format', | |
|
1473 | b'usestore', | |
|
1474 | default=True, | |
|
1475 | ) | |
|
1476 | ||
|
1477 | ||
|
1478 | def _persistent_nodemap_default(): | |
|
1479 | """compute `use-persistent-nodemap` default value | |
|
1480 | ||
|
1481 | The feature is disabled unless a fast implementation is available. | |
|
1482 | """ | |
|
1483 | from . import policy | |
|
1484 | ||
|
1485 | return policy.importrust('revlog') is not None | |
|
1486 | ||
|
1487 | ||
|
1488 | coreconfigitem( | |
|
1489 | b'format', | |
|
1490 | b'use-persistent-nodemap', | |
|
1491 | default=_persistent_nodemap_default, | |
|
1492 | ) | |
|
1493 | coreconfigitem( | |
|
1494 | b'format', | |
|
1495 | b'exp-use-copies-side-data-changeset', | |
|
1496 | default=False, | |
|
1497 | experimental=True, | |
|
1498 | ) | |
|
1499 | coreconfigitem( | |
|
1500 | b'format', | |
|
1501 | b'use-share-safe', | |
|
1502 | default=True, | |
|
1503 | ) | |
|
1504 | coreconfigitem( | |
|
1505 | b'format', | |
|
1506 | b'use-share-safe.automatic-upgrade-of-mismatching-repositories', | |
|
1507 | default=False, | |
|
1508 | experimental=True, | |
|
1509 | ) | |
|
1510 | coreconfigitem( | |
|
1511 | b'format', | |
|
1512 | b'use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet', | |
|
1513 | default=False, | |
|
1514 | experimental=True, | |
|
1515 | ) | |
|
1516 | ||
|
1517 | # Moving this on by default means we are confident about the scaling of phases. | |
|
1518 | # This is not garanteed to be the case at the time this message is written. | |
|
1519 | coreconfigitem( | |
|
1520 | b'format', | |
|
1521 | b'use-internal-phase', | |
|
1522 | default=False, | |
|
1523 | experimental=True, | |
|
1524 | ) | |
|
1525 | # The interaction between the archived phase and obsolescence markers needs to | |
|
1526 | # be sorted out before wider usage of this are to be considered. | |
|
1527 | # | |
|
1528 | # At the time this message is written, behavior when archiving obsolete | |
|
1529 | # changeset differ significantly from stripping. As part of stripping, we also | |
|
1530 | # remove the obsolescence marker associated to the stripped changesets, | |
|
1531 | # revealing the precedecessors changesets when applicable. When archiving, we | |
|
1532 | # don't touch the obsolescence markers, keeping everything hidden. This can | |
|
1533 | # result in quite confusing situation for people combining exchanging draft | |
|
1534 | # with the archived phases. As some markers needed by others may be skipped | |
|
1535 | # during exchange. | |
|
1536 | coreconfigitem( | |
|
1537 | b'format', | |
|
1538 | b'exp-archived-phase', | |
|
1539 | default=False, | |
|
1540 | experimental=True, | |
|
1541 | ) | |
|
1542 | coreconfigitem( | |
|
1543 | b'shelve', | |
|
1544 | b'store', | |
|
1545 | default=b'internal', | |
|
1546 | experimental=True, | |
|
1547 | ) | |
|
1548 | coreconfigitem( | |
|
1549 | b'fsmonitor', | |
|
1550 | b'warn_when_unused', | |
|
1551 | default=True, | |
|
1552 | ) | |
|
1553 | coreconfigitem( | |
|
1554 | b'fsmonitor', | |
|
1555 | b'warn_update_file_count', | |
|
1556 | default=50000, | |
|
1557 | ) | |
|
1558 | coreconfigitem( | |
|
1559 | b'fsmonitor', | |
|
1560 | b'warn_update_file_count_rust', | |
|
1561 | default=400000, | |
|
1562 | ) | |
|
1563 | coreconfigitem( | |
|
1564 | b'help', | |
|
1565 | br'hidden-command\..*', | |
|
1566 | default=False, | |
|
1567 | generic=True, | |
|
1568 | ) | |
|
1569 | coreconfigitem( | |
|
1570 | b'help', | |
|
1571 | br'hidden-topic\..*', | |
|
1572 | default=False, | |
|
1573 | generic=True, | |
|
1574 | ) | |
|
1575 | coreconfigitem( | |
|
1576 | b'hooks', | |
|
1577 | b'[^:]*', | |
|
1578 | default=dynamicdefault, | |
|
1579 | generic=True, | |
|
1580 | ) | |
|
1581 | coreconfigitem( | |
|
1582 | b'hooks', | |
|
1583 | b'.*:run-with-plain', | |
|
1584 | default=True, | |
|
1585 | generic=True, | |
|
1586 | ) | |
|
1587 | coreconfigitem( | |
|
1588 | b'hgweb-paths', | |
|
1589 | b'.*', | |
|
1590 | default=list, | |
|
1591 | generic=True, | |
|
1592 | ) | |
|
1593 | coreconfigitem( | |
|
1594 | b'hostfingerprints', | |
|
1595 | b'.*', | |
|
1596 | default=list, | |
|
1597 | generic=True, | |
|
1598 | ) | |
|
1599 | coreconfigitem( | |
|
1600 | b'hostsecurity', | |
|
1601 | b'ciphers', | |
|
1602 | default=None, | |
|
1603 | ) | |
|
1604 | coreconfigitem( | |
|
1605 | b'hostsecurity', | |
|
1606 | b'minimumprotocol', | |
|
1607 | default=dynamicdefault, | |
|
1608 | ) | |
|
1609 | coreconfigitem( | |
|
1610 | b'hostsecurity', | |
|
1611 | b'.*:minimumprotocol$', | |
|
1612 | default=dynamicdefault, | |
|
1613 | generic=True, | |
|
1614 | ) | |
|
1615 | coreconfigitem( | |
|
1616 | b'hostsecurity', | |
|
1617 | b'.*:ciphers$', | |
|
1618 | default=dynamicdefault, | |
|
1619 | generic=True, | |
|
1620 | ) | |
|
1621 | coreconfigitem( | |
|
1622 | b'hostsecurity', | |
|
1623 | b'.*:fingerprints$', | |
|
1624 | default=list, | |
|
1625 | generic=True, | |
|
1626 | ) | |
|
1627 | coreconfigitem( | |
|
1628 | b'hostsecurity', | |
|
1629 | b'.*:verifycertsfile$', | |
|
1630 | default=None, | |
|
1631 | generic=True, | |
|
1632 | ) | |
|
1633 | ||
|
1634 | coreconfigitem( | |
|
1635 | b'http_proxy', | |
|
1636 | b'always', | |
|
1637 | default=False, | |
|
1638 | ) | |
|
1639 | coreconfigitem( | |
|
1640 | b'http_proxy', | |
|
1641 | b'host', | |
|
1642 | default=None, | |
|
1643 | ) | |
|
1644 | coreconfigitem( | |
|
1645 | b'http_proxy', | |
|
1646 | b'no', | |
|
1647 | default=list, | |
|
1648 | ) | |
|
1649 | coreconfigitem( | |
|
1650 | b'http_proxy', | |
|
1651 | b'passwd', | |
|
1652 | default=None, | |
|
1653 | ) | |
|
1654 | coreconfigitem( | |
|
1655 | b'http_proxy', | |
|
1656 | b'user', | |
|
1657 | default=None, | |
|
1658 | ) | |
|
1659 | ||
|
1660 | coreconfigitem( | |
|
1661 | b'http', | |
|
1662 | b'timeout', | |
|
1663 | default=None, | |
|
1664 | ) | |
|
1665 | ||
|
1666 | coreconfigitem( | |
|
1667 | b'logtoprocess', | |
|
1668 | b'commandexception', | |
|
1669 | default=None, | |
|
1670 | ) | |
|
1671 | coreconfigitem( | |
|
1672 | b'logtoprocess', | |
|
1673 | b'commandfinish', | |
|
1674 | default=None, | |
|
1675 | ) | |
|
1676 | coreconfigitem( | |
|
1677 | b'logtoprocess', | |
|
1678 | b'command', | |
|
1679 | default=None, | |
|
1680 | ) | |
|
1681 | coreconfigitem( | |
|
1682 | b'logtoprocess', | |
|
1683 | b'develwarn', | |
|
1684 | default=None, | |
|
1685 | ) | |
|
1686 | coreconfigitem( | |
|
1687 | b'logtoprocess', | |
|
1688 | b'uiblocked', | |
|
1689 | default=None, | |
|
1690 | ) | |
|
1691 | coreconfigitem( | |
|
1692 | b'merge', | |
|
1693 | b'checkunknown', | |
|
1694 | default=b'abort', | |
|
1695 | ) | |
|
1696 | coreconfigitem( | |
|
1697 | b'merge', | |
|
1698 | b'checkignored', | |
|
1699 | default=b'abort', | |
|
1700 | ) | |
|
1701 | coreconfigitem( | |
|
1702 | b'experimental', | |
|
1703 | b'merge.checkpathconflicts', | |
|
1704 | default=False, | |
|
1705 | ) | |
|
1706 | coreconfigitem( | |
|
1707 | b'merge', | |
|
1708 | b'followcopies', | |
|
1709 | default=True, | |
|
1710 | ) | |
|
1711 | coreconfigitem( | |
|
1712 | b'merge', | |
|
1713 | b'on-failure', | |
|
1714 | default=b'continue', | |
|
1715 | ) | |
|
1716 | coreconfigitem( | |
|
1717 | b'merge', | |
|
1718 | b'preferancestor', | |
|
1719 | default=lambda: [b'*'], | |
|
1720 | experimental=True, | |
|
1721 | ) | |
|
1722 | coreconfigitem( | |
|
1723 | b'merge', | |
|
1724 | b'strict-capability-check', | |
|
1725 | default=False, | |
|
1726 | ) | |
|
1727 | coreconfigitem( | |
|
1728 | b'merge', | |
|
1729 | b'disable-partial-tools', | |
|
1730 | default=False, | |
|
1731 | experimental=True, | |
|
1732 | ) | |
|
1733 | coreconfigitem( | |
|
1734 | b'partial-merge-tools', | |
|
1735 | b'.*', | |
|
1736 | default=None, | |
|
1737 | generic=True, | |
|
1738 | experimental=True, | |
|
1739 | ) | |
|
1740 | coreconfigitem( | |
|
1741 | b'partial-merge-tools', | |
|
1742 | br'.*\.patterns', | |
|
1743 | default=dynamicdefault, | |
|
1744 | generic=True, | |
|
1745 | priority=-1, | |
|
1746 | experimental=True, | |
|
1747 | ) | |
|
1748 | coreconfigitem( | |
|
1749 | b'partial-merge-tools', | |
|
1750 | br'.*\.executable$', | |
|
1751 | default=dynamicdefault, | |
|
1752 | generic=True, | |
|
1753 | priority=-1, | |
|
1754 | experimental=True, | |
|
1755 | ) | |
|
1756 | coreconfigitem( | |
|
1757 | b'partial-merge-tools', | |
|
1758 | br'.*\.order', | |
|
1759 | default=0, | |
|
1760 | generic=True, | |
|
1761 | priority=-1, | |
|
1762 | experimental=True, | |
|
1763 | ) | |
|
1764 | coreconfigitem( | |
|
1765 | b'partial-merge-tools', | |
|
1766 | br'.*\.args', | |
|
1767 | default=b"$local $base $other", | |
|
1768 | generic=True, | |
|
1769 | priority=-1, | |
|
1770 | experimental=True, | |
|
1771 | ) | |
|
1772 | coreconfigitem( | |
|
1773 | b'partial-merge-tools', | |
|
1774 | br'.*\.disable', | |
|
1775 | default=False, | |
|
1776 | generic=True, | |
|
1777 | priority=-1, | |
|
1778 | experimental=True, | |
|
1779 | ) | |
|
1780 | coreconfigitem( | |
|
1781 | b'merge-tools', | |
|
1782 | b'.*', | |
|
1783 | default=None, | |
|
1784 | generic=True, | |
|
1785 | ) | |
|
1786 | coreconfigitem( | |
|
1787 | b'merge-tools', | |
|
1788 | br'.*\.args$', | |
|
1789 | default=b"$local $base $other", | |
|
1790 | generic=True, | |
|
1791 | priority=-1, | |
|
1792 | ) | |
|
1793 | coreconfigitem( | |
|
1794 | b'merge-tools', | |
|
1795 | br'.*\.binary$', | |
|
1796 | default=False, | |
|
1797 | generic=True, | |
|
1798 | priority=-1, | |
|
1799 | ) | |
|
1800 | coreconfigitem( | |
|
1801 | b'merge-tools', | |
|
1802 | br'.*\.check$', | |
|
1803 | default=list, | |
|
1804 | generic=True, | |
|
1805 | priority=-1, | |
|
1806 | ) | |
|
1807 | coreconfigitem( | |
|
1808 | b'merge-tools', | |
|
1809 | br'.*\.checkchanged$', | |
|
1810 | default=False, | |
|
1811 | generic=True, | |
|
1812 | priority=-1, | |
|
1813 | ) | |
|
1814 | coreconfigitem( | |
|
1815 | b'merge-tools', | |
|
1816 | br'.*\.executable$', | |
|
1817 | default=dynamicdefault, | |
|
1818 | generic=True, | |
|
1819 | priority=-1, | |
|
1820 | ) | |
|
1821 | coreconfigitem( | |
|
1822 | b'merge-tools', | |
|
1823 | br'.*\.fixeol$', | |
|
1824 | default=False, | |
|
1825 | generic=True, | |
|
1826 | priority=-1, | |
|
1827 | ) | |
|
1828 | coreconfigitem( | |
|
1829 | b'merge-tools', | |
|
1830 | br'.*\.gui$', | |
|
1831 | default=False, | |
|
1832 | generic=True, | |
|
1833 | priority=-1, | |
|
1834 | ) | |
|
1835 | coreconfigitem( | |
|
1836 | b'merge-tools', | |
|
1837 | br'.*\.mergemarkers$', | |
|
1838 | default=b'basic', | |
|
1839 | generic=True, | |
|
1840 | priority=-1, | |
|
1841 | ) | |
|
1842 | coreconfigitem( | |
|
1843 | b'merge-tools', | |
|
1844 | br'.*\.mergemarkertemplate$', | |
|
1845 | default=dynamicdefault, # take from command-templates.mergemarker | |
|
1846 | generic=True, | |
|
1847 | priority=-1, | |
|
1848 | ) | |
|
1849 | coreconfigitem( | |
|
1850 | b'merge-tools', | |
|
1851 | br'.*\.priority$', | |
|
1852 | default=0, | |
|
1853 | generic=True, | |
|
1854 | priority=-1, | |
|
1855 | ) | |
|
1856 | coreconfigitem( | |
|
1857 | b'merge-tools', | |
|
1858 | br'.*\.premerge$', | |
|
1859 | default=dynamicdefault, | |
|
1860 | generic=True, | |
|
1861 | priority=-1, | |
|
1862 | ) | |
|
1863 | coreconfigitem( | |
|
1864 | b'merge-tools', | |
|
1865 | br'.*\.regappend$', | |
|
1866 | default=b"", | |
|
1867 | generic=True, | |
|
1868 | priority=-1, | |
|
1869 | ) | |
|
1870 | coreconfigitem( | |
|
1871 | b'merge-tools', | |
|
1872 | br'.*\.symlink$', | |
|
1873 | default=False, | |
|
1874 | generic=True, | |
|
1875 | priority=-1, | |
|
1876 | ) | |
|
1877 | coreconfigitem( | |
|
1878 | b'pager', | |
|
1879 | b'attend-.*', | |
|
1880 | default=dynamicdefault, | |
|
1881 | generic=True, | |
|
1882 | ) | |
|
1883 | coreconfigitem( | |
|
1884 | b'pager', | |
|
1885 | b'ignore', | |
|
1886 | default=list, | |
|
1887 | ) | |
|
1888 | coreconfigitem( | |
|
1889 | b'pager', | |
|
1890 | b'pager', | |
|
1891 | default=dynamicdefault, | |
|
1892 | ) | |
|
1893 | coreconfigitem( | |
|
1894 | b'patch', | |
|
1895 | b'eol', | |
|
1896 | default=b'strict', | |
|
1897 | ) | |
|
1898 | coreconfigitem( | |
|
1899 | b'patch', | |
|
1900 | b'fuzz', | |
|
1901 | default=2, | |
|
1902 | ) | |
|
1903 | coreconfigitem( | |
|
1904 | b'paths', | |
|
1905 | b'default', | |
|
1906 | default=None, | |
|
1907 | ) | |
|
1908 | coreconfigitem( | |
|
1909 | b'paths', | |
|
1910 | b'default-push', | |
|
1911 | default=None, | |
|
1912 | ) | |
|
1913 | coreconfigitem( | |
|
1914 | b'paths', | |
|
1915 | b'[^:]*', | |
|
1916 | default=None, | |
|
1917 | generic=True, | |
|
1918 | ) | |
|
1919 | coreconfigitem( | |
|
1920 | b'paths', | |
|
1921 | b'.*:bookmarks.mode', | |
|
1922 | default='default', | |
|
1923 | generic=True, | |
|
1924 | ) | |
|
1925 | coreconfigitem( | |
|
1926 | b'paths', | |
|
1927 | b'.*:multi-urls', | |
|
1928 | default=False, | |
|
1929 | generic=True, | |
|
1930 | ) | |
|
1931 | coreconfigitem( | |
|
1932 | b'paths', | |
|
1933 | b'.*:pushrev', | |
|
1934 | default=None, | |
|
1935 | generic=True, | |
|
1936 | ) | |
|
1937 | coreconfigitem( | |
|
1938 | b'paths', | |
|
1939 | b'.*:pushurl', | |
|
1940 | default=None, | |
|
1941 | generic=True, | |
|
1942 | ) | |
|
1943 | coreconfigitem( | |
|
1944 | b'paths', | |
|
1945 | b'.*:pulled-delta-reuse-policy', | |
|
1946 | default=None, | |
|
1947 | generic=True, | |
|
1948 | ) | |
|
1949 | coreconfigitem( | |
|
1950 | b'phases', | |
|
1951 | b'checksubrepos', | |
|
1952 | default=b'follow', | |
|
1953 | ) | |
|
1954 | coreconfigitem( | |
|
1955 | b'phases', | |
|
1956 | b'new-commit', | |
|
1957 | default=b'draft', | |
|
1958 | ) | |
|
1959 | coreconfigitem( | |
|
1960 | b'phases', | |
|
1961 | b'publish', | |
|
1962 | default=True, | |
|
1963 | ) | |
|
1964 | coreconfigitem( | |
|
1965 | b'profiling', | |
|
1966 | b'enabled', | |
|
1967 | default=False, | |
|
1968 | ) | |
|
1969 | coreconfigitem( | |
|
1970 | b'profiling', | |
|
1971 | b'format', | |
|
1972 | default=b'text', | |
|
1973 | ) | |
|
1974 | coreconfigitem( | |
|
1975 | b'profiling', | |
|
1976 | b'freq', | |
|
1977 | default=1000, | |
|
1978 | ) | |
|
1979 | coreconfigitem( | |
|
1980 | b'profiling', | |
|
1981 | b'limit', | |
|
1982 | default=30, | |
|
1983 | ) | |
|
1984 | coreconfigitem( | |
|
1985 | b'profiling', | |
|
1986 | b'nested', | |
|
1987 | default=0, | |
|
1988 | ) | |
|
1989 | coreconfigitem( | |
|
1990 | b'profiling', | |
|
1991 | b'output', | |
|
1992 | default=None, | |
|
1993 | ) | |
|
1994 | coreconfigitem( | |
|
1995 | b'profiling', | |
|
1996 | b'showmax', | |
|
1997 | default=0.999, | |
|
1998 | ) | |
|
1999 | coreconfigitem( | |
|
2000 | b'profiling', | |
|
2001 | b'showmin', | |
|
2002 | default=dynamicdefault, | |
|
2003 | ) | |
|
2004 | coreconfigitem( | |
|
2005 | b'profiling', | |
|
2006 | b'showtime', | |
|
2007 | default=True, | |
|
2008 | ) | |
|
2009 | coreconfigitem( | |
|
2010 | b'profiling', | |
|
2011 | b'sort', | |
|
2012 | default=b'inlinetime', | |
|
2013 | ) | |
|
2014 | coreconfigitem( | |
|
2015 | b'profiling', | |
|
2016 | b'statformat', | |
|
2017 | default=b'hotpath', | |
|
2018 | ) | |
|
2019 | coreconfigitem( | |
|
2020 | b'profiling', | |
|
2021 | b'time-track', | |
|
2022 | default=dynamicdefault, | |
|
2023 | ) | |
|
2024 | coreconfigitem( | |
|
2025 | b'profiling', | |
|
2026 | b'type', | |
|
2027 | default=b'stat', | |
|
2028 | ) | |
|
2029 | coreconfigitem( | |
|
2030 | b'progress', | |
|
2031 | b'assume-tty', | |
|
2032 | default=False, | |
|
2033 | ) | |
|
2034 | coreconfigitem( | |
|
2035 | b'progress', | |
|
2036 | b'changedelay', | |
|
2037 | default=1, | |
|
2038 | ) | |
|
2039 | coreconfigitem( | |
|
2040 | b'progress', | |
|
2041 | b'clear-complete', | |
|
2042 | default=True, | |
|
2043 | ) | |
|
2044 | coreconfigitem( | |
|
2045 | b'progress', | |
|
2046 | b'debug', | |
|
2047 | default=False, | |
|
2048 | ) | |
|
2049 | coreconfigitem( | |
|
2050 | b'progress', | |
|
2051 | b'delay', | |
|
2052 | default=3, | |
|
2053 | ) | |
|
2054 | coreconfigitem( | |
|
2055 | b'progress', | |
|
2056 | b'disable', | |
|
2057 | default=False, | |
|
2058 | ) | |
|
2059 | coreconfigitem( | |
|
2060 | b'progress', | |
|
2061 | b'estimateinterval', | |
|
2062 | default=60.0, | |
|
2063 | ) | |
|
2064 | coreconfigitem( | |
|
2065 | b'progress', | |
|
2066 | b'format', | |
|
2067 | default=lambda: [b'topic', b'bar', b'number', b'estimate'], | |
|
2068 | ) | |
|
2069 | coreconfigitem( | |
|
2070 | b'progress', | |
|
2071 | b'refresh', | |
|
2072 | default=0.1, | |
|
2073 | ) | |
|
2074 | coreconfigitem( | |
|
2075 | b'progress', | |
|
2076 | b'width', | |
|
2077 | default=dynamicdefault, | |
|
2078 | ) | |
|
2079 | coreconfigitem( | |
|
2080 | b'pull', | |
|
2081 | b'confirm', | |
|
2082 | default=False, | |
|
2083 | ) | |
|
2084 | coreconfigitem( | |
|
2085 | b'push', | |
|
2086 | b'pushvars.server', | |
|
2087 | default=False, | |
|
2088 | ) | |
|
2089 | coreconfigitem( | |
|
2090 | b'rewrite', | |
|
2091 | b'backup-bundle', | |
|
2092 | default=True, | |
|
2093 | alias=[(b'ui', b'history-editing-backup')], | |
|
2094 | ) | |
|
2095 | coreconfigitem( | |
|
2096 | b'rewrite', | |
|
2097 | b'update-timestamp', | |
|
2098 | default=False, | |
|
2099 | ) | |
|
2100 | coreconfigitem( | |
|
2101 | b'rewrite', | |
|
2102 | b'empty-successor', | |
|
2103 | default=b'skip', | |
|
2104 | experimental=True, | |
|
2105 | ) | |
|
2106 | # experimental as long as format.use-dirstate-v2 is. | |
|
2107 | coreconfigitem( | |
|
2108 | b'storage', | |
|
2109 | b'dirstate-v2.slow-path', | |
|
2110 | default=b"abort", | |
|
2111 | experimental=True, | |
|
2112 | ) | |
|
2113 | coreconfigitem( | |
|
2114 | b'storage', | |
|
2115 | b'new-repo-backend', | |
|
2116 | default=b'revlogv1', | |
|
2117 | experimental=True, | |
|
2118 | ) | |
|
2119 | coreconfigitem( | |
|
2120 | b'storage', | |
|
2121 | b'revlog.optimize-delta-parent-choice', | |
|
2122 | default=True, | |
|
2123 | alias=[(b'format', b'aggressivemergedeltas')], | |
|
2124 | ) | |
|
2125 | coreconfigitem( | |
|
2126 | b'storage', | |
|
2127 | b'revlog.delta-parent-search.candidate-group-chunk-size', | |
|
2128 | default=20, | |
|
2129 | ) | |
|
2130 | coreconfigitem( | |
|
2131 | b'storage', | |
|
2132 | b'revlog.issue6528.fix-incoming', | |
|
2133 | default=True, | |
|
2134 | ) | |
|
2135 | # experimental as long as rust is experimental (or a C version is implemented) | |
|
2136 | coreconfigitem( | |
|
2137 | b'storage', | |
|
2138 | b'revlog.persistent-nodemap.mmap', | |
|
2139 | default=True, | |
|
2140 | ) | |
|
2141 | # experimental as long as format.use-persistent-nodemap is. | |
|
2142 | coreconfigitem( | |
|
2143 | b'storage', | |
|
2144 | b'revlog.persistent-nodemap.slow-path', | |
|
2145 | default=b"abort", | |
|
2146 | ) | |
|
2147 | ||
|
2148 | coreconfigitem( | |
|
2149 | b'storage', | |
|
2150 | b'revlog.reuse-external-delta', | |
|
2151 | default=True, | |
|
2152 | ) | |
|
2153 | # This option is True unless `format.generaldelta` is set. | |
|
2154 | coreconfigitem( | |
|
2155 | b'storage', | |
|
2156 | b'revlog.reuse-external-delta-parent', | |
|
2157 | default=None, | |
|
2158 | ) | |
|
2159 | coreconfigitem( | |
|
2160 | b'storage', | |
|
2161 | b'revlog.zlib.level', | |
|
2162 | default=None, | |
|
2163 | ) | |
|
2164 | coreconfigitem( | |
|
2165 | b'storage', | |
|
2166 | b'revlog.zstd.level', | |
|
2167 | default=None, | |
|
2168 | ) | |
|
2169 | coreconfigitem( | |
|
2170 | b'server', | |
|
2171 | b'bookmarks-pushkey-compat', | |
|
2172 | default=True, | |
|
2173 | ) | |
|
2174 | coreconfigitem( | |
|
2175 | b'server', | |
|
2176 | b'bundle1', | |
|
2177 | default=True, | |
|
2178 | ) | |
|
2179 | coreconfigitem( | |
|
2180 | b'server', | |
|
2181 | b'bundle1gd', | |
|
2182 | default=None, | |
|
2183 | ) | |
|
2184 | coreconfigitem( | |
|
2185 | b'server', | |
|
2186 | b'bundle1.pull', | |
|
2187 | default=None, | |
|
2188 | ) | |
|
2189 | coreconfigitem( | |
|
2190 | b'server', | |
|
2191 | b'bundle1gd.pull', | |
|
2192 | default=None, | |
|
2193 | ) | |
|
2194 | coreconfigitem( | |
|
2195 | b'server', | |
|
2196 | b'bundle1.push', | |
|
2197 | default=None, | |
|
2198 | ) | |
|
2199 | coreconfigitem( | |
|
2200 | b'server', | |
|
2201 | b'bundle1gd.push', | |
|
2202 | default=None, | |
|
2203 | ) | |
|
2204 | coreconfigitem( | |
|
2205 | b'server', | |
|
2206 | b'bundle2.stream', | |
|
2207 | default=True, | |
|
2208 | alias=[(b'experimental', b'bundle2.stream')], | |
|
2209 | ) | |
|
2210 | coreconfigitem( | |
|
2211 | b'server', | |
|
2212 | b'compressionengines', | |
|
2213 | default=list, | |
|
2214 | ) | |
|
2215 | coreconfigitem( | |
|
2216 | b'server', | |
|
2217 | b'concurrent-push-mode', | |
|
2218 | default=b'check-related', | |
|
2219 | ) | |
|
2220 | coreconfigitem( | |
|
2221 | b'server', | |
|
2222 | b'disablefullbundle', | |
|
2223 | default=False, | |
|
2224 | ) | |
|
2225 | coreconfigitem( | |
|
2226 | b'server', | |
|
2227 | b'maxhttpheaderlen', | |
|
2228 | default=1024, | |
|
2229 | ) | |
|
2230 | coreconfigitem( | |
|
2231 | b'server', | |
|
2232 | b'pullbundle', | |
|
2233 | default=True, | |
|
2234 | ) | |
|
2235 | coreconfigitem( | |
|
2236 | b'server', | |
|
2237 | b'preferuncompressed', | |
|
2238 | default=False, | |
|
2239 | ) | |
|
2240 | coreconfigitem( | |
|
2241 | b'server', | |
|
2242 | b'streamunbundle', | |
|
2243 | default=False, | |
|
2244 | ) | |
|
2245 | coreconfigitem( | |
|
2246 | b'server', | |
|
2247 | b'uncompressed', | |
|
2248 | default=True, | |
|
2249 | ) | |
|
2250 | coreconfigitem( | |
|
2251 | b'server', | |
|
2252 | b'uncompressedallowsecret', | |
|
2253 | default=False, | |
|
2254 | ) | |
|
2255 | coreconfigitem( | |
|
2256 | b'server', | |
|
2257 | b'view', | |
|
2258 | default=b'served', | |
|
2259 | ) | |
|
2260 | coreconfigitem( | |
|
2261 | b'server', | |
|
2262 | b'validate', | |
|
2263 | default=False, | |
|
2264 | ) | |
|
2265 | coreconfigitem( | |
|
2266 | b'server', | |
|
2267 | b'zliblevel', | |
|
2268 | default=-1, | |
|
2269 | ) | |
|
2270 | coreconfigitem( | |
|
2271 | b'server', | |
|
2272 | b'zstdlevel', | |
|
2273 | default=3, | |
|
2274 | ) | |
|
2275 | coreconfigitem( | |
|
2276 | b'share', | |
|
2277 | b'pool', | |
|
2278 | default=None, | |
|
2279 | ) | |
|
2280 | coreconfigitem( | |
|
2281 | b'share', | |
|
2282 | b'poolnaming', | |
|
2283 | default=b'identity', | |
|
2284 | ) | |
|
2285 | coreconfigitem( | |
|
2286 | b'share', | |
|
2287 | b'safe-mismatch.source-not-safe', | |
|
2288 | default=b'abort', | |
|
2289 | ) | |
|
2290 | coreconfigitem( | |
|
2291 | b'share', | |
|
2292 | b'safe-mismatch.source-safe', | |
|
2293 | default=b'abort', | |
|
2294 | ) | |
|
2295 | coreconfigitem( | |
|
2296 | b'share', | |
|
2297 | b'safe-mismatch.source-not-safe.warn', | |
|
2298 | default=True, | |
|
2299 | ) | |
|
2300 | coreconfigitem( | |
|
2301 | b'share', | |
|
2302 | b'safe-mismatch.source-safe.warn', | |
|
2303 | default=True, | |
|
2304 | ) | |
|
2305 | coreconfigitem( | |
|
2306 | b'share', | |
|
2307 | b'safe-mismatch.source-not-safe:verbose-upgrade', | |
|
2308 | default=True, | |
|
2309 | ) | |
|
2310 | coreconfigitem( | |
|
2311 | b'share', | |
|
2312 | b'safe-mismatch.source-safe:verbose-upgrade', | |
|
2313 | default=True, | |
|
2314 | ) | |
|
2315 | coreconfigitem( | |
|
2316 | b'shelve', | |
|
2317 | b'maxbackups', | |
|
2318 | default=10, | |
|
2319 | ) | |
|
2320 | coreconfigitem( | |
|
2321 | b'smtp', | |
|
2322 | b'host', | |
|
2323 | default=None, | |
|
2324 | ) | |
|
2325 | coreconfigitem( | |
|
2326 | b'smtp', | |
|
2327 | b'local_hostname', | |
|
2328 | default=None, | |
|
2329 | ) | |
|
2330 | coreconfigitem( | |
|
2331 | b'smtp', | |
|
2332 | b'password', | |
|
2333 | default=None, | |
|
2334 | ) | |
|
2335 | coreconfigitem( | |
|
2336 | b'smtp', | |
|
2337 | b'port', | |
|
2338 | default=dynamicdefault, | |
|
2339 | ) | |
|
2340 | coreconfigitem( | |
|
2341 | b'smtp', | |
|
2342 | b'tls', | |
|
2343 | default=b'none', | |
|
2344 | ) | |
|
2345 | coreconfigitem( | |
|
2346 | b'smtp', | |
|
2347 | b'username', | |
|
2348 | default=None, | |
|
2349 | ) | |
|
2350 | coreconfigitem( | |
|
2351 | b'sparse', | |
|
2352 | b'missingwarning', | |
|
2353 | default=True, | |
|
2354 | experimental=True, | |
|
2355 | ) | |
|
2356 | coreconfigitem( | |
|
2357 | b'subrepos', | |
|
2358 | b'allowed', | |
|
2359 | default=dynamicdefault, # to make backporting simpler | |
|
2360 | ) | |
|
2361 | coreconfigitem( | |
|
2362 | b'subrepos', | |
|
2363 | b'hg:allowed', | |
|
2364 | default=dynamicdefault, | |
|
2365 | ) | |
|
2366 | coreconfigitem( | |
|
2367 | b'subrepos', | |
|
2368 | b'git:allowed', | |
|
2369 | default=dynamicdefault, | |
|
2370 | ) | |
|
2371 | coreconfigitem( | |
|
2372 | b'subrepos', | |
|
2373 | b'svn:allowed', | |
|
2374 | default=dynamicdefault, | |
|
2375 | ) | |
|
2376 | coreconfigitem( | |
|
2377 | b'templates', | |
|
2378 | b'.*', | |
|
2379 | default=None, | |
|
2380 | generic=True, | |
|
2381 | ) | |
|
2382 | coreconfigitem( | |
|
2383 | b'templateconfig', | |
|
2384 | b'.*', | |
|
2385 | default=dynamicdefault, | |
|
2386 | generic=True, | |
|
2387 | ) | |
|
2388 | coreconfigitem( | |
|
2389 | b'trusted', | |
|
2390 | b'groups', | |
|
2391 | default=list, | |
|
2392 | ) | |
|
2393 | coreconfigitem( | |
|
2394 | b'trusted', | |
|
2395 | b'users', | |
|
2396 | default=list, | |
|
2397 | ) | |
|
2398 | coreconfigitem( | |
|
2399 | b'ui', | |
|
2400 | b'_usedassubrepo', | |
|
2401 | default=False, | |
|
2402 | ) | |
|
2403 | coreconfigitem( | |
|
2404 | b'ui', | |
|
2405 | b'allowemptycommit', | |
|
2406 | default=False, | |
|
2407 | ) | |
|
2408 | coreconfigitem( | |
|
2409 | b'ui', | |
|
2410 | b'archivemeta', | |
|
2411 | default=True, | |
|
2412 | ) | |
|
2413 | coreconfigitem( | |
|
2414 | b'ui', | |
|
2415 | b'askusername', | |
|
2416 | default=False, | |
|
2417 | ) | |
|
2418 | coreconfigitem( | |
|
2419 | b'ui', | |
|
2420 | b'available-memory', | |
|
2421 | default=None, | |
|
2422 | ) | |
|
2423 | ||
|
2424 | coreconfigitem( | |
|
2425 | b'ui', | |
|
2426 | b'clonebundlefallback', | |
|
2427 | default=False, | |
|
2428 | ) | |
|
2429 | coreconfigitem( | |
|
2430 | b'ui', | |
|
2431 | b'clonebundleprefers', | |
|
2432 | default=list, | |
|
2433 | ) | |
|
2434 | coreconfigitem( | |
|
2435 | b'ui', | |
|
2436 | b'clonebundles', | |
|
2437 | default=True, | |
|
2438 | ) | |
|
2439 | coreconfigitem( | |
|
2440 | b'ui', | |
|
2441 | b'color', | |
|
2442 | default=b'auto', | |
|
2443 | ) | |
|
2444 | coreconfigitem( | |
|
2445 | b'ui', | |
|
2446 | b'commitsubrepos', | |
|
2447 | default=False, | |
|
2448 | ) | |
|
2449 | coreconfigitem( | |
|
2450 | b'ui', | |
|
2451 | b'debug', | |
|
2452 | default=False, | |
|
2453 | ) | |
|
2454 | coreconfigitem( | |
|
2455 | b'ui', | |
|
2456 | b'debugger', | |
|
2457 | default=None, | |
|
2458 | ) | |
|
2459 | coreconfigitem( | |
|
2460 | b'ui', | |
|
2461 | b'editor', | |
|
2462 | default=dynamicdefault, | |
|
2463 | ) | |
|
2464 | coreconfigitem( | |
|
2465 | b'ui', | |
|
2466 | b'detailed-exit-code', | |
|
2467 | default=False, | |
|
2468 | experimental=True, | |
|
2469 | ) | |
|
2470 | coreconfigitem( | |
|
2471 | b'ui', | |
|
2472 | b'fallbackencoding', | |
|
2473 | default=None, | |
|
2474 | ) | |
|
2475 | coreconfigitem( | |
|
2476 | b'ui', | |
|
2477 | b'forcecwd', | |
|
2478 | default=None, | |
|
2479 | ) | |
|
2480 | coreconfigitem( | |
|
2481 | b'ui', | |
|
2482 | b'forcemerge', | |
|
2483 | default=None, | |
|
2484 | ) | |
|
2485 | coreconfigitem( | |
|
2486 | b'ui', | |
|
2487 | b'formatdebug', | |
|
2488 | default=False, | |
|
2489 | ) | |
|
2490 | coreconfigitem( | |
|
2491 | b'ui', | |
|
2492 | b'formatjson', | |
|
2493 | default=False, | |
|
2494 | ) | |
|
2495 | coreconfigitem( | |
|
2496 | b'ui', | |
|
2497 | b'formatted', | |
|
2498 | default=None, | |
|
2499 | ) | |
|
2500 | coreconfigitem( | |
|
2501 | b'ui', | |
|
2502 | b'interactive', | |
|
2503 | default=None, | |
|
2504 | ) | |
|
2505 | coreconfigitem( | |
|
2506 | b'ui', | |
|
2507 | b'interface', | |
|
2508 | default=None, | |
|
2509 | ) | |
|
2510 | coreconfigitem( | |
|
2511 | b'ui', | |
|
2512 | b'interface.chunkselector', | |
|
2513 | default=None, | |
|
2514 | ) | |
|
2515 | coreconfigitem( | |
|
2516 | b'ui', | |
|
2517 | b'large-file-limit', | |
|
2518 | default=10 * (2 ** 20), | |
|
2519 | ) | |
|
2520 | coreconfigitem( | |
|
2521 | b'ui', | |
|
2522 | b'logblockedtimes', | |
|
2523 | default=False, | |
|
2524 | ) | |
|
2525 | coreconfigitem( | |
|
2526 | b'ui', | |
|
2527 | b'merge', | |
|
2528 | default=None, | |
|
2529 | ) | |
|
2530 | coreconfigitem( | |
|
2531 | b'ui', | |
|
2532 | b'mergemarkers', | |
|
2533 | default=b'basic', | |
|
2534 | ) | |
|
2535 | coreconfigitem( | |
|
2536 | b'ui', | |
|
2537 | b'message-output', | |
|
2538 | default=b'stdio', | |
|
2539 | ) | |
|
2540 | coreconfigitem( | |
|
2541 | b'ui', | |
|
2542 | b'nontty', | |
|
2543 | default=False, | |
|
2544 | ) | |
|
2545 | coreconfigitem( | |
|
2546 | b'ui', | |
|
2547 | b'origbackuppath', | |
|
2548 | default=None, | |
|
2549 | ) | |
|
2550 | coreconfigitem( | |
|
2551 | b'ui', | |
|
2552 | b'paginate', | |
|
2553 | default=True, | |
|
2554 | ) | |
|
2555 | coreconfigitem( | |
|
2556 | b'ui', | |
|
2557 | b'patch', | |
|
2558 | default=None, | |
|
2559 | ) | |
|
2560 | coreconfigitem( | |
|
2561 | b'ui', | |
|
2562 | b'portablefilenames', | |
|
2563 | default=b'warn', | |
|
2564 | ) | |
|
2565 | coreconfigitem( | |
|
2566 | b'ui', | |
|
2567 | b'promptecho', | |
|
2568 | default=False, | |
|
2569 | ) | |
|
2570 | coreconfigitem( | |
|
2571 | b'ui', | |
|
2572 | b'quiet', | |
|
2573 | default=False, | |
|
2574 | ) | |
|
2575 | coreconfigitem( | |
|
2576 | b'ui', | |
|
2577 | b'quietbookmarkmove', | |
|
2578 | default=False, | |
|
2579 | ) | |
|
2580 | coreconfigitem( | |
|
2581 | b'ui', | |
|
2582 | b'relative-paths', | |
|
2583 | default=b'legacy', | |
|
2584 | ) | |
|
2585 | coreconfigitem( | |
|
2586 | b'ui', | |
|
2587 | b'remotecmd', | |
|
2588 | default=b'hg', | |
|
2589 | ) | |
|
2590 | coreconfigitem( | |
|
2591 | b'ui', | |
|
2592 | b'report_untrusted', | |
|
2593 | default=True, | |
|
2594 | ) | |
|
2595 | coreconfigitem( | |
|
2596 | b'ui', | |
|
2597 | b'rollback', | |
|
2598 | default=True, | |
|
2599 | ) | |
|
2600 | coreconfigitem( | |
|
2601 | b'ui', | |
|
2602 | b'signal-safe-lock', | |
|
2603 | default=True, | |
|
2604 | ) | |
|
2605 | coreconfigitem( | |
|
2606 | b'ui', | |
|
2607 | b'slash', | |
|
2608 | default=False, | |
|
2609 | ) | |
|
2610 | coreconfigitem( | |
|
2611 | b'ui', | |
|
2612 | b'ssh', | |
|
2613 | default=b'ssh', | |
|
2614 | ) | |
|
2615 | coreconfigitem( | |
|
2616 | b'ui', | |
|
2617 | b'ssherrorhint', | |
|
2618 | default=None, | |
|
2619 | ) | |
|
2620 | coreconfigitem( | |
|
2621 | b'ui', | |
|
2622 | b'statuscopies', | |
|
2623 | default=False, | |
|
2624 | ) | |
|
2625 | coreconfigitem( | |
|
2626 | b'ui', | |
|
2627 | b'strict', | |
|
2628 | default=False, | |
|
2629 | ) | |
|
2630 | coreconfigitem( | |
|
2631 | b'ui', | |
|
2632 | b'style', | |
|
2633 | default=b'', | |
|
2634 | ) | |
|
2635 | coreconfigitem( | |
|
2636 | b'ui', | |
|
2637 | b'supportcontact', | |
|
2638 | default=None, | |
|
2639 | ) | |
|
2640 | coreconfigitem( | |
|
2641 | b'ui', | |
|
2642 | b'textwidth', | |
|
2643 | default=78, | |
|
2644 | ) | |
|
2645 | coreconfigitem( | |
|
2646 | b'ui', | |
|
2647 | b'timeout', | |
|
2648 | default=b'600', | |
|
2649 | ) | |
|
2650 | coreconfigitem( | |
|
2651 | b'ui', | |
|
2652 | b'timeout.warn', | |
|
2653 | default=0, | |
|
2654 | ) | |
|
2655 | coreconfigitem( | |
|
2656 | b'ui', | |
|
2657 | b'timestamp-output', | |
|
2658 | default=False, | |
|
2659 | ) | |
|
2660 | coreconfigitem( | |
|
2661 | b'ui', | |
|
2662 | b'traceback', | |
|
2663 | default=False, | |
|
2664 | ) | |
|
2665 | coreconfigitem( | |
|
2666 | b'ui', | |
|
2667 | b'tweakdefaults', | |
|
2668 | default=False, | |
|
2669 | ) | |
|
2670 | coreconfigitem(b'ui', b'username', alias=[(b'ui', b'user')]) | |
|
2671 | coreconfigitem( | |
|
2672 | b'ui', | |
|
2673 | b'verbose', | |
|
2674 | default=False, | |
|
2675 | ) | |
|
2676 | coreconfigitem( | |
|
2677 | b'verify', | |
|
2678 | b'skipflags', | |
|
2679 | default=0, | |
|
2680 | ) | |
|
2681 | coreconfigitem( | |
|
2682 | b'web', | |
|
2683 | b'allowbz2', | |
|
2684 | default=False, | |
|
2685 | ) | |
|
2686 | coreconfigitem( | |
|
2687 | b'web', | |
|
2688 | b'allowgz', | |
|
2689 | default=False, | |
|
2690 | ) | |
|
2691 | coreconfigitem( | |
|
2692 | b'web', | |
|
2693 | b'allow-pull', | |
|
2694 | alias=[(b'web', b'allowpull')], | |
|
2695 | default=True, | |
|
2696 | ) | |
|
2697 | coreconfigitem( | |
|
2698 | b'web', | |
|
2699 | b'allow-push', | |
|
2700 | alias=[(b'web', b'allow_push')], | |
|
2701 | default=list, | |
|
2702 | ) | |
|
2703 | coreconfigitem( | |
|
2704 | b'web', | |
|
2705 | b'allowzip', | |
|
2706 | default=False, | |
|
2707 | ) | |
|
2708 | coreconfigitem( | |
|
2709 | b'web', | |
|
2710 | b'archivesubrepos', | |
|
2711 | default=False, | |
|
2712 | ) | |
|
2713 | coreconfigitem( | |
|
2714 | b'web', | |
|
2715 | b'cache', | |
|
2716 | default=True, | |
|
2717 | ) | |
|
2718 | coreconfigitem( | |
|
2719 | b'web', | |
|
2720 | b'comparisoncontext', | |
|
2721 | default=5, | |
|
2722 | ) | |
|
2723 | coreconfigitem( | |
|
2724 | b'web', | |
|
2725 | b'contact', | |
|
2726 | default=None, | |
|
2727 | ) | |
|
2728 | coreconfigitem( | |
|
2729 | b'web', | |
|
2730 | b'deny_push', | |
|
2731 | default=list, | |
|
2732 | ) | |
|
2733 | coreconfigitem( | |
|
2734 | b'web', | |
|
2735 | b'guessmime', | |
|
2736 | default=False, | |
|
2737 | ) | |
|
2738 | coreconfigitem( | |
|
2739 | b'web', | |
|
2740 | b'hidden', | |
|
2741 | default=False, | |
|
2742 | ) | |
|
2743 | coreconfigitem( | |
|
2744 | b'web', | |
|
2745 | b'labels', | |
|
2746 | default=list, | |
|
2747 | ) | |
|
2748 | coreconfigitem( | |
|
2749 | b'web', | |
|
2750 | b'logoimg', | |
|
2751 | default=b'hglogo.png', | |
|
2752 | ) | |
|
2753 | coreconfigitem( | |
|
2754 | b'web', | |
|
2755 | b'logourl', | |
|
2756 | default=b'https://mercurial-scm.org/', | |
|
2757 | ) | |
|
2758 | coreconfigitem( | |
|
2759 | b'web', | |
|
2760 | b'accesslog', | |
|
2761 | default=b'-', | |
|
2762 | ) | |
|
2763 | coreconfigitem( | |
|
2764 | b'web', | |
|
2765 | b'address', | |
|
2766 | default=b'', | |
|
2767 | ) | |
|
2768 | coreconfigitem( | |
|
2769 | b'web', | |
|
2770 | b'allow-archive', | |
|
2771 | alias=[(b'web', b'allow_archive')], | |
|
2772 | default=list, | |
|
2773 | ) | |
|
2774 | coreconfigitem( | |
|
2775 | b'web', | |
|
2776 | b'allow_read', | |
|
2777 | default=list, | |
|
2778 | ) | |
|
2779 | coreconfigitem( | |
|
2780 | b'web', | |
|
2781 | b'baseurl', | |
|
2782 | default=None, | |
|
2783 | ) | |
|
2784 | coreconfigitem( | |
|
2785 | b'web', | |
|
2786 | b'cacerts', | |
|
2787 | default=None, | |
|
2788 | ) | |
|
2789 | coreconfigitem( | |
|
2790 | b'web', | |
|
2791 | b'certificate', | |
|
2792 | default=None, | |
|
2793 | ) | |
|
2794 | coreconfigitem( | |
|
2795 | b'web', | |
|
2796 | b'collapse', | |
|
2797 | default=False, | |
|
2798 | ) | |
|
2799 | coreconfigitem( | |
|
2800 | b'web', | |
|
2801 | b'csp', | |
|
2802 | default=None, | |
|
2803 | ) | |
|
2804 | coreconfigitem( | |
|
2805 | b'web', | |
|
2806 | b'deny_read', | |
|
2807 | default=list, | |
|
2808 | ) | |
|
2809 | coreconfigitem( | |
|
2810 | b'web', | |
|
2811 | b'descend', | |
|
2812 | default=True, | |
|
2813 | ) | |
|
2814 | coreconfigitem( | |
|
2815 | b'web', | |
|
2816 | b'description', | |
|
2817 | default=b"", | |
|
2818 | ) | |
|
2819 | coreconfigitem( | |
|
2820 | b'web', | |
|
2821 | b'encoding', | |
|
2822 | default=lambda: encoding.encoding, | |
|
2823 | ) | |
|
2824 | coreconfigitem( | |
|
2825 | b'web', | |
|
2826 | b'errorlog', | |
|
2827 | default=b'-', | |
|
2828 | ) | |
|
2829 | coreconfigitem( | |
|
2830 | b'web', | |
|
2831 | b'ipv6', | |
|
2832 | default=False, | |
|
2833 | ) | |
|
2834 | coreconfigitem( | |
|
2835 | b'web', | |
|
2836 | b'maxchanges', | |
|
2837 | default=10, | |
|
2838 | ) | |
|
2839 | coreconfigitem( | |
|
2840 | b'web', | |
|
2841 | b'maxfiles', | |
|
2842 | default=10, | |
|
2843 | ) | |
|
2844 | coreconfigitem( | |
|
2845 | b'web', | |
|
2846 | b'maxshortchanges', | |
|
2847 | default=60, | |
|
2848 | ) | |
|
2849 | coreconfigitem( | |
|
2850 | b'web', | |
|
2851 | b'motd', | |
|
2852 | default=b'', | |
|
2853 | ) | |
|
2854 | coreconfigitem( | |
|
2855 | b'web', | |
|
2856 | b'name', | |
|
2857 | default=dynamicdefault, | |
|
2858 | ) | |
|
2859 | coreconfigitem( | |
|
2860 | b'web', | |
|
2861 | b'port', | |
|
2862 | default=8000, | |
|
2863 | ) | |
|
2864 | coreconfigitem( | |
|
2865 | b'web', | |
|
2866 | b'prefix', | |
|
2867 | default=b'', | |
|
2868 | ) | |
|
2869 | coreconfigitem( | |
|
2870 | b'web', | |
|
2871 | b'push_ssl', | |
|
2872 | default=True, | |
|
2873 | ) | |
|
2874 | coreconfigitem( | |
|
2875 | b'web', | |
|
2876 | b'refreshinterval', | |
|
2877 | default=20, | |
|
2878 | ) | |
|
2879 | coreconfigitem( | |
|
2880 | b'web', | |
|
2881 | b'server-header', | |
|
2882 | default=None, | |
|
2883 | ) | |
|
2884 | coreconfigitem( | |
|
2885 | b'web', | |
|
2886 | b'static', | |
|
2887 | default=None, | |
|
2888 | ) | |
|
2889 | coreconfigitem( | |
|
2890 | b'web', | |
|
2891 | b'staticurl', | |
|
2892 | default=None, | |
|
2893 | ) | |
|
2894 | coreconfigitem( | |
|
2895 | b'web', | |
|
2896 | b'stripes', | |
|
2897 | default=1, | |
|
2898 | ) | |
|
2899 | coreconfigitem( | |
|
2900 | b'web', | |
|
2901 | b'style', | |
|
2902 | default=b'paper', | |
|
2903 | ) | |
|
2904 | coreconfigitem( | |
|
2905 | b'web', | |
|
2906 | b'templates', | |
|
2907 | default=None, | |
|
2908 | ) | |
|
2909 | coreconfigitem( | |
|
2910 | b'web', | |
|
2911 | b'view', | |
|
2912 | default=b'served', | |
|
2913 | experimental=True, | |
|
2914 | ) | |
|
2915 | coreconfigitem( | |
|
2916 | b'worker', | |
|
2917 | b'backgroundclose', | |
|
2918 | default=dynamicdefault, | |
|
2919 | ) | |
|
2920 | # Windows defaults to a limit of 512 open files. A buffer of 128 | |
|
2921 | # should give us enough headway. | |
|
2922 | coreconfigitem( | |
|
2923 | b'worker', | |
|
2924 | b'backgroundclosemaxqueue', | |
|
2925 | default=384, | |
|
2926 | ) | |
|
2927 | coreconfigitem( | |
|
2928 | b'worker', | |
|
2929 | b'backgroundcloseminfilecount', | |
|
2930 | default=2048, | |
|
2931 | ) | |
|
2932 | coreconfigitem( | |
|
2933 | b'worker', | |
|
2934 | b'backgroundclosethreadcount', | |
|
2935 | default=4, | |
|
2936 | ) | |
|
2937 | coreconfigitem( | |
|
2938 | b'worker', | |
|
2939 | b'enabled', | |
|
2940 | default=True, | |
|
2941 | ) | |
|
2942 | coreconfigitem( | |
|
2943 | b'worker', | |
|
2944 | b'numcpus', | |
|
2945 | default=None, | |
|
2946 | ) | |
|
2947 | ||
|
2948 | # Rebase related configuration moved to core because other extension are doing | |
|
2949 | # strange things. For example, shelve import the extensions to reuse some bit | |
|
2950 | # without formally loading it. | |
|
2951 | coreconfigitem( | |
|
2952 | b'commands', | |
|
2953 | b'rebase.requiredest', | |
|
2954 | default=False, | |
|
2955 | ) | |
|
2956 | coreconfigitem( | |
|
2957 | b'experimental', | |
|
2958 | b'rebaseskipobsolete', | |
|
2959 | default=True, | |
|
2960 | ) | |
|
2961 | coreconfigitem( | |
|
2962 | b'rebase', | |
|
2963 | b'singletransaction', | |
|
2964 | default=False, | |
|
2965 | ) | |
|
2966 | coreconfigitem( | |
|
2967 | b'rebase', | |
|
2968 | b'experimental.inmemory', | |
|
2969 | default=False, | |
|
2970 | ) | |
|
2971 | ||
|
2972 | # This setting controls creation of a rebase_source extra field | |
|
2973 | # during rebase. When False, no such field is created. This is | |
|
2974 | # useful eg for incrementally converting changesets and then | |
|
2975 | # rebasing them onto an existing repo. | |
|
2976 | # WARNING: this is an advanced setting reserved for people who know | |
|
2977 | # exactly what they are doing. Misuse of this setting can easily | |
|
2978 | # result in obsmarker cycles and a vivid headache. | |
|
2979 | coreconfigitem( | |
|
2980 | b'rebase', | |
|
2981 | b'store-source', | |
|
2982 | default=True, | |
|
2983 | experimental=True, | |
|
2984 | ) | |
|
214 | import_configitems_from_file() |
This diff has been collapsed as it changes many lines, (5763 lines changed) Show them Hide them | |||
@@ -1,1215 +1,1034 b'' | |||
|
1 |
# configitems. |
|
|
1 | # configitems.toml - centralized declaration of configuration options | |
|
2 | # | |
|
3 | # This file contains declarations of the core Mercurial configuration options. | |
|
4 | # | |
|
5 | # # Structure | |
|
6 | # | |
|
7 | # items: array of config items | |
|
8 | # templates: mapping of template name to template declaration | |
|
9 | # template-applications: array of template applications | |
|
10 | # | |
|
11 | # # Elements | |
|
12 | # | |
|
13 | # ## Item | |
|
2 | 14 | # |
|
3 | # Copyright 2017 Pierre-Yves David <pierre-yves.david@octobus.net> | |
|
15 | # Declares a core Mercurial option. | |
|
16 | # | |
|
17 | # - section: string (required) | |
|
18 | # - name: string (required) | |
|
19 | # - default-type: boolean, changes how `default` is read | |
|
20 | # - default: any | |
|
21 | # - generic: boolean | |
|
22 | # - priority: integer, only if `generic` is true | |
|
23 | # - alias: list of 2-tuples of strings | |
|
24 | # - experimental: boolean | |
|
25 | # - documentation: string | |
|
26 | # - in_core_extension: string | |
|
27 | # | |
|
28 | # ## Template | |
|
4 | 29 | # |
|
5 | # This software may be used and distributed according to the terms of the | |
|
6 | # GNU General Public License version 2 or any later version. | |
|
7 | ||
|
8 | ||
|
9 | import functools | |
|
10 | import re | |
|
11 | ||
|
12 | from . import ( | |
|
13 | encoding, | |
|
14 | error, | |
|
15 | ) | |
|
16 | ||
|
17 | ||
|
18 | def loadconfigtable(ui, extname, configtable): | |
|
19 | """update config item known to the ui with the extension ones""" | |
|
20 | for section, items in sorted(configtable.items()): | |
|
21 | knownitems = ui._knownconfig.setdefault(section, itemregister()) | |
|
22 | knownkeys = set(knownitems) | |
|
23 | newkeys = set(items) | |
|
24 | for key in sorted(knownkeys & newkeys): | |
|
25 | msg = b"extension '%s' overwrite config item '%s.%s'" | |
|
26 | msg %= (extname, section, key) | |
|
27 | ui.develwarn(msg, config=b'warn-config') | |
|
28 | ||
|
29 | knownitems.update(items) | |
|
30 | ||
|
31 | ||
|
32 | class configitem: | |
|
33 | """represent a known config item | |
|
34 | ||
|
35 | :section: the official config section where to find this item, | |
|
36 | :name: the official name within the section, | |
|
37 | :default: default value for this item, | |
|
38 | :alias: optional list of tuples as alternatives, | |
|
39 | :generic: this is a generic definition, match name using regular expression. | |
|
40 | """ | |
|
41 | ||
|
42 | def __init__( | |
|
43 | self, | |
|
44 | section, | |
|
45 | name, | |
|
46 | default=None, | |
|
47 | alias=(), | |
|
48 | generic=False, | |
|
49 | priority=0, | |
|
50 | experimental=False, | |
|
51 | ): | |
|
52 | self.section = section | |
|
53 | self.name = name | |
|
54 | self.default = default | |
|
55 | self.alias = list(alias) | |
|
56 | self.generic = generic | |
|
57 | self.priority = priority | |
|
58 | self.experimental = experimental | |
|
59 | self._re = None | |
|
60 | if generic: | |
|
61 | self._re = re.compile(self.name) | |
|
62 | ||
|
63 | ||
|
64 | class itemregister(dict): | |
|
65 | """A specialized dictionary that can handle wild-card selection""" | |
|
66 | ||
|
67 | def __init__(self): | |
|
68 | super(itemregister, self).__init__() | |
|
69 | self._generics = set() | |
|
70 | ||
|
71 | def update(self, other): | |
|
72 | super(itemregister, self).update(other) | |
|
73 | self._generics.update(other._generics) | |
|
74 | ||
|
75 | def __setitem__(self, key, item): | |
|
76 | super(itemregister, self).__setitem__(key, item) | |
|
77 | if item.generic: | |
|
78 | self._generics.add(item) | |
|
79 | ||
|
80 | def get(self, key): | |
|
81 | baseitem = super(itemregister, self).get(key) | |
|
82 | if baseitem is not None and not baseitem.generic: | |
|
83 | return baseitem | |
|
84 | ||
|
85 | # search for a matching generic item | |
|
86 | generics = sorted(self._generics, key=(lambda x: (x.priority, x.name))) | |
|
87 | for item in generics: | |
|
88 | # we use 'match' instead of 'search' to make the matching simpler | |
|
89 | # for people unfamiliar with regular expression. Having the match | |
|
90 | # rooted to the start of the string will produce less surprising | |
|
91 | # result for user writing simple regex for sub-attribute. | |
|
92 | # | |
|
93 | # For example using "color\..*" match produces an unsurprising | |
|
94 | # result, while using search could suddenly match apparently | |
|
95 | # unrelated configuration that happens to contains "color." | |
|
96 | # anywhere. This is a tradeoff where we favor requiring ".*" on | |
|
97 | # some match to avoid the need to prefix most pattern with "^". | |
|
98 | # The "^" seems more error prone. | |
|
99 | if item._re.match(key): | |
|
100 | return item | |
|
101 | ||
|
102 | return None | |
|
103 | ||
|
104 | ||
|
105 | coreitems = {} | |
|
106 | ||
|
107 | ||
|
108 | def _register(configtable, *args, **kwargs): | |
|
109 | item = configitem(*args, **kwargs) | |
|
110 | section = configtable.setdefault(item.section, itemregister()) | |
|
111 | if item.name in section: | |
|
112 | msg = b"duplicated config item registration for '%s.%s'" | |
|
113 | raise error.ProgrammingError(msg % (item.section, item.name)) | |
|
114 | section[item.name] = item | |
|
115 | ||
|
116 | ||
|
117 | # special value for case where the default is derived from other values | |
|
118 | dynamicdefault = object() | |
|
119 | ||
|
120 | # Registering actual config items | |
|
121 | ||
|
122 | ||
|
123 | def getitemregister(configtable): | |
|
124 | f = functools.partial(_register, configtable) | |
|
125 | # export pseudo enum as configitem.* | |
|
126 | f.dynamicdefault = dynamicdefault | |
|
127 | return f | |
|
128 | ||
|
129 | ||
|
130 | coreconfigitem = getitemregister(coreitems) | |
|
131 | ||
|
132 | ||
|
133 | def _registerdiffopts(section, configprefix=b''): | |
|
134 | coreconfigitem( | |
|
135 | section, | |
|
136 | configprefix + b'nodates', | |
|
137 | default=False, | |
|
138 | ) | |
|
139 | coreconfigitem( | |
|
140 | section, | |
|
141 | configprefix + b'showfunc', | |
|
142 | default=False, | |
|
143 | ) | |
|
144 | coreconfigitem( | |
|
145 | section, | |
|
146 | configprefix + b'unified', | |
|
147 | default=None, | |
|
148 | ) | |
|
149 | coreconfigitem( | |
|
150 | section, | |
|
151 | configprefix + b'git', | |
|
152 | default=False, | |
|
153 | ) | |
|
154 | coreconfigitem( | |
|
155 | section, | |
|
156 | configprefix + b'ignorews', | |
|
157 | default=False, | |
|
158 | ) | |
|
159 | coreconfigitem( | |
|
160 | section, | |
|
161 | configprefix + b'ignorewsamount', | |
|
162 | default=False, | |
|
163 | ) | |
|
164 | coreconfigitem( | |
|
165 | section, | |
|
166 | configprefix + b'ignoreblanklines', | |
|
167 | default=False, | |
|
168 | ) | |
|
169 | coreconfigitem( | |
|
170 | section, | |
|
171 | configprefix + b'ignorewseol', | |
|
172 | default=False, | |
|
173 | ) | |
|
174 | coreconfigitem( | |
|
175 | section, | |
|
176 | configprefix + b'nobinary', | |
|
177 | default=False, | |
|
178 | ) | |
|
179 | coreconfigitem( | |
|
180 | section, | |
|
181 | configprefix + b'noprefix', | |
|
182 | default=False, | |
|
183 | ) | |
|
184 | coreconfigitem( | |
|
185 | section, | |
|
186 | configprefix + b'word-diff', | |
|
187 | default=False, | |
|
188 | ) | |
|
189 | ||
|
190 | ||
|
191 | coreconfigitem( | |
|
192 | b'alias', | |
|
193 | b'.*', | |
|
194 | default=dynamicdefault, | |
|
195 | generic=True, | |
|
196 | ) | |
|
197 | coreconfigitem( | |
|
198 | b'auth', | |
|
199 | b'cookiefile', | |
|
200 | default=None, | |
|
201 | ) | |
|
202 | _registerdiffopts(section=b'annotate') | |
|
30 | # Declares a group of options to be re-used for multiple sections. | |
|
31 | # | |
|
32 | # - all the same fields as `Item`, except `section` and `name` | |
|
33 | # - `suffix` (string, required) | |
|
34 | # | |
|
35 | # ## Template applications | |
|
36 | # | |
|
37 | # Uses a `Template` to instanciate its options in a given section. | |
|
38 | # | |
|
39 | # - template: string (required, must match a `Template` name) | |
|
40 | # - section: string (required) | |
|
41 | ||
|
42 | [[items]] | |
|
43 | section = "alias" | |
|
44 | name = ".*" | |
|
45 | default-type = "dynamic" | |
|
46 | generic = true | |
|
47 | ||
|
48 | [[items]] | |
|
49 | section = "auth" | |
|
50 | name = "cookiefile" | |
|
51 | ||
|
203 | 52 | # bookmarks.pushing: internal hack for discovery |
|
204 | coreconfigitem( | |
|
205 | b'bookmarks', | |
|
206 | b'pushing', | |
|
207 | default=list, | |
|
208 | ) | |
|
53 | [[items]] | |
|
54 | section = "bookmarks" | |
|
55 | name = "pushing" | |
|
56 | default-type = "list_type" | |
|
57 | ||
|
209 | 58 | # bundle.mainreporoot: internal hack for bundlerepo |
|
210 | coreconfigitem( | |
|
211 | b'bundle', | |
|
212 |
|
|
|
213 | default=b'', | |
|
214 | ) | |
|
215 | coreconfigitem( | |
|
216 | b'censor', | |
|
217 | b'policy', | |
|
218 |
|
|
|
219 |
|
|
|
220 | ) | |
|
221 | coreconfigitem( | |
|
222 | b'chgserver', | |
|
223 |
|
|
|
224 |
|
|
|
225 | ) | |
|
226 | coreconfigitem( | |
|
227 | b'chgserver', | |
|
228 |
|
|
|
229 |
|
|
|
230 | ) | |
|
231 | coreconfigitem( | |
|
232 | b'cmdserver', | |
|
233 | b'log', | |
|
234 | default=None, | |
|
235 | ) | |
|
236 | coreconfigitem( | |
|
237 | b'cmdserver', | |
|
238 | b'max-log-files', | |
|
239 | default=7, | |
|
240 | ) | |
|
241 | coreconfigitem( | |
|
242 | b'cmdserver', | |
|
243 | b'max-log-size', | |
|
244 | default=b'1 MB', | |
|
245 | ) | |
|
246 | coreconfigitem( | |
|
247 | b'cmdserver', | |
|
248 | b'max-repo-cache', | |
|
249 | default=0, | |
|
250 | experimental=True, | |
|
251 | ) | |
|
252 | coreconfigitem( | |
|
253 | b'cmdserver', | |
|
254 | b'message-encodings', | |
|
255 | default=list, | |
|
256 | ) | |
|
257 | coreconfigitem( | |
|
258 | b'cmdserver', | |
|
259 | b'track-log', | |
|
260 | default=lambda: [b'chgserver', b'cmdserver', b'repocache'], | |
|
261 | ) | |
|
262 | coreconfigitem( | |
|
263 | b'cmdserver', | |
|
264 | b'shutdown-on-interrupt', | |
|
265 | default=True, | |
|
266 | ) | |
|
267 | coreconfigitem( | |
|
268 | b'color', | |
|
269 | b'.*', | |
|
270 | default=None, | |
|
271 | generic=True, | |
|
272 | ) | |
|
273 | coreconfigitem( | |
|
274 | b'color', | |
|
275 | b'mode', | |
|
276 | default=b'auto', | |
|
277 | ) | |
|
278 | coreconfigitem( | |
|
279 | b'color', | |
|
280 | b'pagermode', | |
|
281 | default=dynamicdefault, | |
|
282 | ) | |
|
283 | coreconfigitem( | |
|
284 | b'command-templates', | |
|
285 | b'graphnode', | |
|
286 | default=None, | |
|
287 | alias=[(b'ui', b'graphnodetemplate')], | |
|
288 | ) | |
|
289 | coreconfigitem( | |
|
290 | b'command-templates', | |
|
291 | b'log', | |
|
292 | default=None, | |
|
293 | alias=[(b'ui', b'logtemplate')], | |
|
294 | ) | |
|
295 | coreconfigitem( | |
|
296 | b'command-templates', | |
|
297 | b'mergemarker', | |
|
298 | default=( | |
|
299 | b'{node|short} ' | |
|
300 | b'{ifeq(tags, "tip", "", ' | |
|
301 | b'ifeq(tags, "", "", "{tags} "))}' | |
|
302 | b'{if(bookmarks, "{bookmarks} ")}' | |
|
303 | b'{ifeq(branch, "default", "", "{branch} ")}' | |
|
304 | b'- {author|user}: {desc|firstline}' | |
|
305 | ), | |
|
306 | alias=[(b'ui', b'mergemarkertemplate')], | |
|
307 | ) | |
|
308 | coreconfigitem( | |
|
309 |
|
|
|
310 |
|
|
|
311 | default=None, | |
|
312 | alias=[(b'ui', b'pre-merge-tool-output-template')], | |
|
313 | ) | |
|
314 | coreconfigitem( | |
|
315 | b'command-templates', | |
|
316 | b'oneline-summary', | |
|
317 | default=None, | |
|
318 | ) | |
|
319 | coreconfigitem( | |
|
320 | b'command-templates', | |
|
321 | b'oneline-summary.*', | |
|
322 | default=dynamicdefault, | |
|
323 | generic=True, | |
|
324 | ) | |
|
325 | _registerdiffopts(section=b'commands', configprefix=b'commit.interactive.') | |
|
326 | coreconfigitem( | |
|
327 | b'commands', | |
|
328 | b'commit.post-status', | |
|
329 | default=False, | |
|
330 | ) | |
|
331 | coreconfigitem( | |
|
332 | b'commands', | |
|
333 | b'grep.all-files', | |
|
334 | default=False, | |
|
335 | experimental=True, | |
|
336 | ) | |
|
337 | coreconfigitem( | |
|
338 | b'commands', | |
|
339 | b'merge.require-rev', | |
|
340 |
|
|
|
341 | ) | |
|
342 | coreconfigitem( | |
|
343 | b'commands', | |
|
344 | b'push.require-revs', | |
|
345 |
|
|
|
346 | ) | |
|
347 | coreconfigitem( | |
|
348 | b'commands', | |
|
349 | b'resolve.confirm', | |
|
350 |
|
|
|
351 | ) | |
|
352 | coreconfigitem( | |
|
353 | b'commands', | |
|
354 | b'resolve.explicit-re-merge', | |
|
355 | default=False, | |
|
356 | ) | |
|
357 | coreconfigitem( | |
|
358 | b'commands', | |
|
359 | b'resolve.mark-check', | |
|
360 | default=b'none', | |
|
361 | ) | |
|
362 | _registerdiffopts(section=b'commands', configprefix=b'revert.interactive.') | |
|
363 | coreconfigitem( | |
|
364 | b'commands', | |
|
365 | b'show.aliasprefix', | |
|
366 | default=list, | |
|
367 | ) | |
|
368 | coreconfigitem( | |
|
369 | b'commands', | |
|
370 | b'status.relative', | |
|
371 | default=False, | |
|
372 | ) | |
|
373 | coreconfigitem( | |
|
374 | b'commands', | |
|
375 | b'status.skipstates', | |
|
376 | default=[], | |
|
377 | experimental=True, | |
|
378 | ) | |
|
379 | coreconfigitem( | |
|
380 | b'commands', | |
|
381 | b'status.terse', | |
|
382 | default=b'', | |
|
383 | ) | |
|
384 | coreconfigitem( | |
|
385 | b'commands', | |
|
386 | b'status.verbose', | |
|
387 | default=False, | |
|
388 | ) | |
|
389 | coreconfigitem( | |
|
390 | b'commands', | |
|
391 | b'update.check', | |
|
392 | default=None, | |
|
393 | ) | |
|
394 | coreconfigitem( | |
|
395 | b'commands', | |
|
396 | b'update.requiredest', | |
|
397 | default=False, | |
|
398 | ) | |
|
399 | coreconfigitem( | |
|
400 | b'committemplate', | |
|
401 | b'.*', | |
|
402 | default=None, | |
|
403 | generic=True, | |
|
404 | ) | |
|
405 | coreconfigitem( | |
|
406 | b'convert', | |
|
407 | b'bzr.saverev', | |
|
408 | default=True, | |
|
409 | ) | |
|
410 | coreconfigitem( | |
|
411 | b'convert', | |
|
412 | b'cvsps.cache', | |
|
413 | default=True, | |
|
414 | ) | |
|
415 | coreconfigitem( | |
|
416 | b'convert', | |
|
417 | b'cvsps.fuzz', | |
|
418 | default=60, | |
|
419 | ) | |
|
420 | coreconfigitem( | |
|
421 | b'convert', | |
|
422 | b'cvsps.logencoding', | |
|
423 | default=None, | |
|
424 | ) | |
|
425 | coreconfigitem( | |
|
426 | b'convert', | |
|
427 | b'cvsps.mergefrom', | |
|
428 | default=None, | |
|
429 | ) | |
|
430 | coreconfigitem( | |
|
431 | b'convert', | |
|
432 | b'cvsps.mergeto', | |
|
433 | default=None, | |
|
434 | ) | |
|
435 | coreconfigitem( | |
|
436 | b'convert', | |
|
437 | b'git.committeractions', | |
|
438 | default=lambda: [b'messagedifferent'], | |
|
439 | ) | |
|
440 | coreconfigitem( | |
|
441 | b'convert', | |
|
442 | b'git.extrakeys', | |
|
443 | default=list, | |
|
444 | ) | |
|
445 | coreconfigitem( | |
|
446 | b'convert', | |
|
447 | b'git.findcopiesharder', | |
|
448 | default=False, | |
|
449 | ) | |
|
450 | coreconfigitem( | |
|
451 | b'convert', | |
|
452 | b'git.remoteprefix', | |
|
453 | default=b'remote', | |
|
454 | ) | |
|
455 | coreconfigitem( | |
|
456 | b'convert', | |
|
457 | b'git.renamelimit', | |
|
458 |
|
|
|
459 | ) | |
|
460 | coreconfigitem( | |
|
461 | b'convert', | |
|
462 | b'git.saverev', | |
|
463 | default=True, | |
|
464 | ) | |
|
465 | coreconfigitem( | |
|
466 | b'convert', | |
|
467 | b'git.similarity', | |
|
468 | default=50, | |
|
469 | ) | |
|
470 | coreconfigitem( | |
|
471 | b'convert', | |
|
472 | b'git.skipsubmodules', | |
|
473 |
|
|
|
474 | ) | |
|
475 | coreconfigitem( | |
|
476 | b'convert', | |
|
477 | b'hg.clonebranches', | |
|
478 |
|
|
|
479 | ) | |
|
480 | coreconfigitem( | |
|
481 | b'convert', | |
|
482 | b'hg.ignoreerrors', | |
|
483 | default=False, | |
|
484 | ) | |
|
485 | coreconfigitem( | |
|
486 | b'convert', | |
|
487 | b'hg.preserve-hash', | |
|
488 | default=False, | |
|
489 | ) | |
|
490 | coreconfigitem( | |
|
491 | b'convert', | |
|
492 | b'hg.revs', | |
|
493 | default=None, | |
|
494 | ) | |
|
495 | coreconfigitem( | |
|
496 | b'convert', | |
|
497 | b'hg.saverev', | |
|
498 | default=False, | |
|
499 | ) | |
|
500 | coreconfigitem( | |
|
501 | b'convert', | |
|
502 | b'hg.sourcename', | |
|
503 | default=None, | |
|
504 | ) | |
|
505 | coreconfigitem( | |
|
506 | b'convert', | |
|
507 | b'hg.startrev', | |
|
508 | default=None, | |
|
509 | ) | |
|
510 | coreconfigitem( | |
|
511 | b'convert', | |
|
512 | b'hg.tagsbranch', | |
|
513 | default=b'default', | |
|
514 | ) | |
|
515 | coreconfigitem( | |
|
516 | b'convert', | |
|
517 | b'hg.usebranchnames', | |
|
518 | default=True, | |
|
519 | ) | |
|
520 | coreconfigitem( | |
|
521 | b'convert', | |
|
522 | b'ignoreancestorcheck', | |
|
523 | default=False, | |
|
524 | experimental=True, | |
|
525 | ) | |
|
526 | coreconfigitem( | |
|
527 | b'convert', | |
|
528 | b'localtimezone', | |
|
529 | default=False, | |
|
530 | ) | |
|
531 | coreconfigitem( | |
|
532 | b'convert', | |
|
533 | b'p4.encoding', | |
|
534 | default=dynamicdefault, | |
|
535 | ) | |
|
536 | coreconfigitem( | |
|
537 | b'convert', | |
|
538 | b'p4.startrev', | |
|
539 | default=0, | |
|
540 | ) | |
|
541 | coreconfigitem( | |
|
542 | b'convert', | |
|
543 | b'skiptags', | |
|
544 | default=False, | |
|
545 | ) | |
|
546 | coreconfigitem( | |
|
547 | b'convert', | |
|
548 | b'svn.debugsvnlog', | |
|
549 | default=True, | |
|
550 | ) | |
|
551 | coreconfigitem( | |
|
552 | b'convert', | |
|
553 | b'svn.trunk', | |
|
554 | default=None, | |
|
555 | ) | |
|
556 | coreconfigitem( | |
|
557 | b'convert', | |
|
558 | b'svn.tags', | |
|
559 | default=None, | |
|
560 | ) | |
|
561 | coreconfigitem( | |
|
562 | b'convert', | |
|
563 | b'svn.branches', | |
|
564 | default=None, | |
|
565 | ) | |
|
566 | coreconfigitem( | |
|
567 | b'convert', | |
|
568 | b'svn.startrev', | |
|
569 |
|
|
|
570 | ) | |
|
571 | coreconfigitem( | |
|
572 | b'convert', | |
|
573 | b'svn.dangerous-set-commit-dates', | |
|
574 |
|
|
|
575 | ) | |
|
576 | coreconfigitem( | |
|
577 | b'debug', | |
|
578 | b'dirstate.delaywrite', | |
|
579 |
|
|
|
580 | ) | |
|
581 | coreconfigitem( | |
|
582 | b'debug', | |
|
583 | b'revlog.verifyposition.changelog', | |
|
584 | default=b'', | |
|
585 | ) | |
|
586 | coreconfigitem( | |
|
587 | b'debug', | |
|
588 | b'revlog.debug-delta', | |
|
589 | default=False, | |
|
590 | ) | |
|
591 | # display extra information about the bundling process | |
|
592 | coreconfigitem( | |
|
593 | b'debug', | |
|
594 | b'bundling-stats', | |
|
595 |
|
|
|
596 | ) | |
|
597 | # display extra information about the unbundling process | |
|
598 | coreconfigitem( | |
|
599 | b'debug', | |
|
600 | b'unbundling-stats', | |
|
601 | default=False, | |
|
602 | ) | |
|
603 | coreconfigitem( | |
|
604 | b'defaults', | |
|
605 | b'.*', | |
|
606 | default=None, | |
|
607 | generic=True, | |
|
608 | ) | |
|
609 | coreconfigitem( | |
|
610 | b'devel', | |
|
611 | b'all-warnings', | |
|
612 | default=False, | |
|
613 | ) | |
|
614 | coreconfigitem( | |
|
615 | b'devel', | |
|
616 | b'bundle2.debug', | |
|
617 | default=False, | |
|
618 | ) | |
|
619 | # which kind of delta to put in the bundled changegroup. Possible value | |
|
620 | # - '': use default behavior | |
|
621 | # - p1: force to always use delta against p1 | |
|
622 | # - full: force to always use full content | |
|
623 | coreconfigitem( | |
|
624 | b'devel', | |
|
625 | b'bundle.delta', | |
|
626 | default=b'', | |
|
627 | ) | |
|
628 | coreconfigitem( | |
|
629 | b'devel', | |
|
630 | b'cache-vfs', | |
|
631 | default=None, | |
|
632 | ) | |
|
633 | coreconfigitem( | |
|
634 | b'devel', | |
|
635 | b'check-locks', | |
|
636 | default=False, | |
|
637 | ) | |
|
638 | coreconfigitem( | |
|
639 | b'devel', | |
|
640 | b'check-relroot', | |
|
641 | default=False, | |
|
642 | ) | |
|
643 | # Track copy information for all file, not just "added" one (very slow) | |
|
644 | coreconfigitem( | |
|
645 | b'devel', | |
|
646 | b'copy-tracing.trace-all-files', | |
|
647 | default=False, | |
|
648 | ) | |
|
649 | coreconfigitem( | |
|
650 | b'devel', | |
|
651 | b'default-date', | |
|
652 | default=None, | |
|
653 | ) | |
|
654 | coreconfigitem( | |
|
655 | b'devel', | |
|
656 | b'deprec-warn', | |
|
657 | default=False, | |
|
658 | ) | |
|
59 | [[items]] | |
|
60 | section = "bundle" | |
|
61 | name = "mainreporoot" | |
|
62 | default = "" | |
|
63 | ||
|
64 | [[items]] | |
|
65 | section = "censor" | |
|
66 | name = "policy" | |
|
67 | default = "abort" | |
|
68 | experimental = true | |
|
69 | ||
|
70 | [[items]] | |
|
71 | section = "chgserver" | |
|
72 | name = "idletimeout" | |
|
73 | default = 3600 | |
|
74 | ||
|
75 | [[items]] | |
|
76 | section = "chgserver" | |
|
77 | name = "skiphash" | |
|
78 | default = false | |
|
79 | ||
|
80 | [[items]] | |
|
81 | section = "cmdserver" | |
|
82 | name = "log" | |
|
83 | ||
|
84 | [[items]] | |
|
85 | section = "cmdserver" | |
|
86 | name = "max-log-files" | |
|
87 | default = 7 | |
|
88 | ||
|
89 | [[items]] | |
|
90 | section = "cmdserver" | |
|
91 | name = "max-log-size" | |
|
92 | default = "1 MB" | |
|
93 | ||
|
94 | [[items]] | |
|
95 | section = "cmdserver" | |
|
96 | name = "max-repo-cache" | |
|
97 | default = 0 | |
|
98 | experimental = true | |
|
99 | ||
|
100 | [[items]] | |
|
101 | section = "cmdserver" | |
|
102 | name = "message-encodings" | |
|
103 | default-type = "list_type" | |
|
104 | ||
|
105 | [[items]] | |
|
106 | section = "cmdserver" | |
|
107 | name = "shutdown-on-interrupt" | |
|
108 | default = true | |
|
109 | ||
|
110 | [[items]] | |
|
111 | section = "cmdserver" | |
|
112 | name = "track-log" | |
|
113 | default-type = "lambda" | |
|
114 | default = [ "chgserver", "cmdserver", "repocache",] | |
|
115 | ||
|
116 | [[items]] | |
|
117 | section = "color" | |
|
118 | name = ".*" | |
|
119 | generic = true | |
|
120 | ||
|
121 | [[items]] | |
|
122 | section = "color" | |
|
123 | name = "mode" | |
|
124 | default = "auto" | |
|
125 | ||
|
126 | [[items]] | |
|
127 | section = "color" | |
|
128 | name = "pagermode" | |
|
129 | default-type = "dynamic" | |
|
130 | ||
|
131 | [[items]] | |
|
132 | section = "command-templates" | |
|
133 | name = "graphnode" | |
|
134 | alias = [["ui", "graphnodetemplate"]] | |
|
135 | ||
|
136 | [[items]] | |
|
137 | section = "command-templates" | |
|
138 | name = "log" | |
|
139 | alias = [["ui", "logtemplate"]] | |
|
140 | ||
|
141 | [[items]] | |
|
142 | section = "command-templates" | |
|
143 | name = "mergemarker" | |
|
144 | default = '{node|short} {ifeq(tags, "tip", "", ifeq(tags, "", "", "{tags} "))}{if(bookmarks, "{bookmarks} ")}{ifeq(branch, "default", "", "{branch} ")}- {author|user}: {desc|firstline}' | |
|
145 | alias = [["ui", "mergemarkertemplate"]] | |
|
146 | ||
|
147 | [[items]] | |
|
148 | section = "command-templates" | |
|
149 | name = "oneline-summary" | |
|
150 | ||
|
151 | [[items]] | |
|
152 | section = "command-templates" | |
|
153 | name = "oneline-summary.*" | |
|
154 | default-type = "dynamic" | |
|
155 | generic = true | |
|
156 | ||
|
157 | [[items]] | |
|
158 | section = "command-templates" | |
|
159 | name = "pre-merge-tool-output" | |
|
160 | alias = [["ui", "pre-merge-tool-output-template"]] | |
|
161 | ||
|
162 | [[items]] | |
|
163 | section = "commands" | |
|
164 | name = "commit.post-status" | |
|
165 | default = false | |
|
166 | ||
|
167 | [[items]] | |
|
168 | section = "commands" | |
|
169 | name = "grep.all-files" | |
|
170 | default = false | |
|
171 | experimental = true | |
|
172 | ||
|
173 | [[items]] | |
|
174 | section = "commands" | |
|
175 | name = "merge.require-rev" | |
|
176 | default = false | |
|
177 | ||
|
178 | [[items]] | |
|
179 | section = "commands" | |
|
180 | name = "push.require-revs" | |
|
181 | default = false | |
|
182 | ||
|
183 | # Rebase related configuration moved to core because other extension are doing | |
|
184 | # strange things. For example, shelve import the extensions to reuse some bit | |
|
185 | # without formally loading it. | |
|
186 | [[items]] | |
|
187 | section = "commands" | |
|
188 | name = "rebase.requiredest" | |
|
189 | default = false | |
|
190 | ||
|
191 | [[items]] | |
|
192 | section = "commands" | |
|
193 | name = "resolve.confirm" | |
|
194 | default = false | |
|
195 | ||
|
196 | [[items]] | |
|
197 | section = "commands" | |
|
198 | name = "resolve.explicit-re-merge" | |
|
199 | default = false | |
|
200 | ||
|
201 | [[items]] | |
|
202 | section = "commands" | |
|
203 | name = "resolve.mark-check" | |
|
204 | default = "none" | |
|
205 | ||
|
206 | [[items]] | |
|
207 | section = "commands" | |
|
208 | name = "show.aliasprefix" | |
|
209 | default-type = "list_type" | |
|
210 | ||
|
211 | [[items]] | |
|
212 | section = "commands" | |
|
213 | name = "status.relative" | |
|
214 | default = false | |
|
215 | ||
|
216 | [[items]] | |
|
217 | section = "commands" | |
|
218 | name = "status.skipstates" | |
|
219 | default = [] | |
|
220 | experimental = true | |
|
221 | ||
|
222 | [[items]] | |
|
223 | section = "commands" | |
|
224 | name = "status.terse" | |
|
225 | default = "" | |
|
226 | ||
|
227 | [[items]] | |
|
228 | section = "commands" | |
|
229 | name = "status.verbose" | |
|
230 | default = false | |
|
231 | ||
|
232 | [[items]] | |
|
233 | section = "commands" | |
|
234 | name = "update.check" | |
|
235 | ||
|
236 | [[items]] | |
|
237 | section = "commands" | |
|
238 | name = "update.requiredest" | |
|
239 | default = false | |
|
240 | ||
|
241 | [[items]] | |
|
242 | section = "committemplate" | |
|
243 | name = ".*" | |
|
244 | generic = true | |
|
245 | ||
|
246 | [[items]] | |
|
247 | section = "convert" | |
|
248 | name = "bzr.saverev" | |
|
249 | default = true | |
|
250 | ||
|
251 | [[items]] | |
|
252 | section = "convert" | |
|
253 | name = "cvsps.cache" | |
|
254 | default = true | |
|
255 | ||
|
256 | [[items]] | |
|
257 | section = "convert" | |
|
258 | name = "cvsps.fuzz" | |
|
259 | default = 60 | |
|
260 | ||
|
261 | [[items]] | |
|
262 | section = "convert" | |
|
263 | name = "cvsps.logencoding" | |
|
264 | ||
|
265 | [[items]] | |
|
266 | section = "convert" | |
|
267 | name = "cvsps.mergefrom" | |
|
268 | ||
|
269 | [[items]] | |
|
270 | section = "convert" | |
|
271 | name = "cvsps.mergeto" | |
|
272 | ||
|
273 | [[items]] | |
|
274 | section = "convert" | |
|
275 | name = "git.committeractions" | |
|
276 | default-type = "lambda" | |
|
277 | default = [ "messagedifferent",] | |
|
278 | ||
|
279 | [[items]] | |
|
280 | section = "convert" | |
|
281 | name = "git.extrakeys" | |
|
282 | default-type = "list_type" | |
|
283 | ||
|
284 | [[items]] | |
|
285 | section = "convert" | |
|
286 | name = "git.findcopiesharder" | |
|
287 | default = false | |
|
288 | ||
|
289 | [[items]] | |
|
290 | section = "convert" | |
|
291 | name = "git.remoteprefix" | |
|
292 | default = "remote" | |
|
293 | ||
|
294 | [[items]] | |
|
295 | section = "convert" | |
|
296 | name = "git.renamelimit" | |
|
297 | default = 400 | |
|
298 | ||
|
299 | [[items]] | |
|
300 | section = "convert" | |
|
301 | name = "git.saverev" | |
|
302 | default = true | |
|
303 | ||
|
304 | [[items]] | |
|
305 | section = "convert" | |
|
306 | name = "git.similarity" | |
|
307 | default = 50 | |
|
308 | ||
|
309 | [[items]] | |
|
310 | section = "convert" | |
|
311 | name = "git.skipsubmodules" | |
|
312 | default = false | |
|
313 | ||
|
314 | [[items]] | |
|
315 | section = "convert" | |
|
316 | name = "hg.clonebranches" | |
|
317 | default = false | |
|
318 | ||
|
319 | [[items]] | |
|
320 | section = "convert" | |
|
321 | name = "hg.ignoreerrors" | |
|
322 | default = false | |
|
323 | ||
|
324 | [[items]] | |
|
325 | section = "convert" | |
|
326 | name = "hg.preserve-hash" | |
|
327 | default = false | |
|
328 | ||
|
329 | [[items]] | |
|
330 | section = "convert" | |
|
331 | name = "hg.revs" | |
|
332 | ||
|
333 | [[items]] | |
|
334 | section = "convert" | |
|
335 | name = "hg.saverev" | |
|
336 | default = false | |
|
337 | ||
|
338 | [[items]] | |
|
339 | section = "convert" | |
|
340 | name = "hg.sourcename" | |
|
341 | ||
|
342 | [[items]] | |
|
343 | section = "convert" | |
|
344 | name = "hg.startrev" | |
|
345 | ||
|
346 | [[items]] | |
|
347 | section = "convert" | |
|
348 | name = "hg.tagsbranch" | |
|
349 | default = "default" | |
|
350 | ||
|
351 | [[items]] | |
|
352 | section = "convert" | |
|
353 | name = "hg.usebranchnames" | |
|
354 | default = true | |
|
355 | ||
|
356 | [[items]] | |
|
357 | section = "convert" | |
|
358 | name = "ignoreancestorcheck" | |
|
359 | default = false | |
|
360 | experimental = true | |
|
361 | ||
|
362 | [[items]] | |
|
363 | section = "convert" | |
|
364 | name = "localtimezone" | |
|
365 | default = false | |
|
366 | ||
|
367 | [[items]] | |
|
368 | section = "convert" | |
|
369 | name = "p4.encoding" | |
|
370 | default-type = "dynamic" | |
|
371 | ||
|
372 | [[items]] | |
|
373 | section = "convert" | |
|
374 | name = "p4.startrev" | |
|
375 | default = 0 | |
|
376 | ||
|
377 | [[items]] | |
|
378 | section = "convert" | |
|
379 | name = "skiptags" | |
|
380 | default = false | |
|
381 | ||
|
382 | [[items]] | |
|
383 | section = "convert" | |
|
384 | name = "svn.branches" | |
|
385 | ||
|
386 | [[items]] | |
|
387 | section = "convert" | |
|
388 | name = "svn.dangerous-set-commit-dates" | |
|
389 | default = false | |
|
390 | ||
|
391 | [[items]] | |
|
392 | section = "convert" | |
|
393 | name = "svn.debugsvnlog" | |
|
394 | default = true | |
|
395 | ||
|
396 | [[items]] | |
|
397 | section = "convert" | |
|
398 | name = "svn.startrev" | |
|
399 | default = 0 | |
|
400 | ||
|
401 | [[items]] | |
|
402 | section = "convert" | |
|
403 | name = "svn.tags" | |
|
404 | ||
|
405 | [[items]] | |
|
406 | section = "convert" | |
|
407 | name = "svn.trunk" | |
|
408 | ||
|
409 | [[items]] | |
|
410 | section = "debug" | |
|
411 | name = "bundling-stats" | |
|
412 | default = false | |
|
413 | documentation = "Display extra information about the bundling process." | |
|
414 | ||
|
415 | [[items]] | |
|
416 | section = "debug" | |
|
417 | name = "dirstate.delaywrite" | |
|
418 | default = 0 | |
|
419 | ||
|
420 | [[items]] | |
|
421 | section = "debug" | |
|
422 | name = "revlog.debug-delta" | |
|
423 | default = false | |
|
424 | ||
|
425 | [[items]] | |
|
426 | section = "debug" | |
|
427 | name = "revlog.verifyposition.changelog" | |
|
428 | default = "" | |
|
429 | ||
|
430 | [[items]] | |
|
431 | section = "debug" | |
|
432 | name = "unbundling-stats" | |
|
433 | default = false | |
|
434 | documentation = "Display extra information about the unbundling process." | |
|
435 | ||
|
436 | [[items]] | |
|
437 | section = "defaults" | |
|
438 | name = ".*" | |
|
439 | generic = true | |
|
440 | ||
|
441 | [[items]] | |
|
442 | section = "devel" | |
|
443 | name = "all-warnings" | |
|
444 | default = false | |
|
445 | ||
|
446 | [[items]] | |
|
447 | section = "devel" | |
|
448 | name = "bundle.delta" | |
|
449 | default = "" | |
|
450 | ||
|
451 | [[items]] | |
|
452 | section = "devel" | |
|
453 | name = "bundle2.debug" | |
|
454 | default = false | |
|
455 | ||
|
456 | [[items]] | |
|
457 | section = "devel" | |
|
458 | name = "cache-vfs" | |
|
459 | ||
|
460 | [[items]] | |
|
461 | section = "devel" | |
|
462 | name = "check-locks" | |
|
463 | default = false | |
|
464 | ||
|
465 | [[items]] | |
|
466 | section = "devel" | |
|
467 | name = "check-relroot" | |
|
468 | default = false | |
|
469 | ||
|
470 | [[items]] | |
|
471 | section = "devel" | |
|
472 | name = "copy-tracing.multi-thread" | |
|
473 | default = true | |
|
474 | ||
|
475 | # Track copy information for all files, not just "added" ones (very slow) | |
|
476 | [[items]] | |
|
477 | section = "devel" | |
|
478 | name = "copy-tracing.trace-all-files" | |
|
479 | default = false | |
|
480 | ||
|
481 | [[items]] | |
|
482 | section = "devel" | |
|
483 | name = "debug.abort-update" | |
|
484 | default = false | |
|
485 | documentation = """If true, then any merge with the working copy, \ | |
|
486 | e.g. [hg update], will be aborted after figuring out what needs to be done, \ | |
|
487 | but before spawning the parallel worker.""" | |
|
488 | ||
|
489 | [[items]] | |
|
490 | section = "devel" | |
|
491 | name = "debug.copies" | |
|
492 | default = false | |
|
493 | ||
|
494 | [[items]] | |
|
495 | section = "devel" | |
|
496 | name = "debug.extensions" | |
|
497 | default = false | |
|
498 | ||
|
499 | [[items]] | |
|
500 | section = "devel" | |
|
501 | name = "debug.peer-request" | |
|
502 | default = false | |
|
503 | ||
|
504 | [[items]] | |
|
505 | section = "devel" | |
|
506 | name = "debug.repo-filters" | |
|
507 | default = false | |
|
508 | ||
|
509 | [[items]] | |
|
510 | section = "devel" | |
|
511 | name = "default-date" | |
|
512 | ||
|
513 | [[items]] | |
|
514 | section = "devel" | |
|
515 | name = "deprec-warn" | |
|
516 | default = false | |
|
517 | ||
|
659 | 518 | # possible values: |
|
660 | 519 | # - auto (the default) |
|
661 | 520 | # - force-append |
|
662 | 521 | # - force-new |
|
663 | coreconfigitem( | |
|
664 | b'devel', | |
|
665 |
|
|
|
666 |
|
|
|
667 | ) | |
|
668 | coreconfigitem( | |
|
669 | b'devel', | |
|
670 |
|
|
|
671 |
|
|
|
672 | ) | |
|
673 | coreconfigitem( | |
|
674 | b'devel', | |
|
675 | b'warn-empty-changegroup', | |
|
676 | default=False, | |
|
677 | ) | |
|
678 | coreconfigitem( | |
|
679 | b'devel', | |
|
680 | b'legacy.exchange', | |
|
681 | default=list, | |
|
682 | ) | |
|
683 | # When True, revlogs use a special reference version of the nodemap, that is not | |
|
684 | # performant but is "known" to behave properly. | |
|
685 | coreconfigitem( | |
|
686 | b'devel', | |
|
687 | b'persistent-nodemap', | |
|
688 | default=False, | |
|
689 | ) | |
|
690 | coreconfigitem( | |
|
691 | b'devel', | |
|
692 | b'servercafile', | |
|
693 | default=b'', | |
|
694 | ) | |
|
695 | # This config option is intended for use in tests only. It is a giant | |
|
696 | # footgun to kill security. Don't define it. | |
|
697 | coreconfigitem( | |
|
698 | b'devel', | |
|
699 | b'server-insecure-exact-protocol', | |
|
700 | default=b'', | |
|
701 | ) | |
|
702 | coreconfigitem( | |
|
703 | b'devel', | |
|
704 | b'serverrequirecert', | |
|
705 | default=False, | |
|
706 | ) | |
|
707 | # Makes the status algorithm wait for the existence of this file | |
|
708 | # (or until a timeout of `devel.sync.status.pre-dirstate-write-file-timeout` | |
|
709 | # seconds) before taking the lock and writing the dirstate. | |
|
710 | # Status signals that it's ready to wait by creating a file | |
|
711 | # with the same name + `.waiting`. | |
|
712 | # Useful when testing race conditions. | |
|
713 | coreconfigitem( | |
|
714 | b'devel', | |
|
715 | b'sync.status.pre-dirstate-write-file', | |
|
716 | default=None, | |
|
717 | ) | |
|
718 | coreconfigitem( | |
|
719 | b'devel', | |
|
720 | b'sync.status.pre-dirstate-write-file-timeout', | |
|
721 | default=2, | |
|
722 | ) | |
|
723 | coreconfigitem( | |
|
724 | b'devel', | |
|
725 | b'sync.dirstate.post-docket-read-file', | |
|
726 | default=None, | |
|
727 | ) | |
|
728 | coreconfigitem( | |
|
729 | b'devel', | |
|
730 | b'sync.dirstate.post-docket-read-file-timeout', | |
|
731 | default=2, | |
|
732 | ) | |
|
733 | coreconfigitem( | |
|
734 | b'devel', | |
|
735 | b'sync.dirstate.pre-read-file', | |
|
736 | default=None, | |
|
737 | ) | |
|
738 | coreconfigitem( | |
|
739 | b'devel', | |
|
740 | b'sync.dirstate.pre-read-file-timeout', | |
|
741 | default=2, | |
|
742 | ) | |
|
743 | coreconfigitem( | |
|
744 | b'devel', | |
|
745 | b'strip-obsmarkers', | |
|
746 | default=True, | |
|
747 | ) | |
|
748 | coreconfigitem( | |
|
749 | b'devel', | |
|
750 | b'warn-config', | |
|
751 | default=None, | |
|
752 | ) | |
|
753 | coreconfigitem( | |
|
754 | b'devel', | |
|
755 | b'warn-config-default', | |
|
756 | default=None, | |
|
757 | ) | |
|
758 | coreconfigitem( | |
|
759 | b'devel', | |
|
760 | b'user.obsmarker', | |
|
761 | default=None, | |
|
762 | ) | |
|
763 | coreconfigitem( | |
|
764 | b'devel', | |
|
765 | b'warn-config-unknown', | |
|
766 | default=None, | |
|
767 | ) | |
|
768 | coreconfigitem( | |
|
769 |
|
|
|
770 | b'debug.copies', | |
|
771 | default=False, | |
|
772 | ) | |
|
773 | coreconfigitem( | |
|
774 |
|
|
|
775 | b'copy-tracing.multi-thread', | |
|
776 | default=True, | |
|
777 | ) | |
|
778 | coreconfigitem( | |
|
779 | b'devel', | |
|
780 | b'debug.extensions', | |
|
781 | default=False, | |
|
782 | ) | |
|
783 | coreconfigitem( | |
|
784 | b'devel', | |
|
785 | b'debug.repo-filters', | |
|
786 | default=False, | |
|
787 | ) | |
|
788 | coreconfigitem( | |
|
789 | b'devel', | |
|
790 | b'debug.peer-request', | |
|
791 | default=False, | |
|
792 | ) | |
|
793 | # If discovery.exchange-heads is False, the discovery will not start with | |
|
794 | # remote head fetching and local head querying. | |
|
795 | coreconfigitem( | |
|
796 | b'devel', | |
|
797 | b'discovery.exchange-heads', | |
|
798 | default=True, | |
|
799 | ) | |
|
800 | # If devel.debug.abort-update is True, then any merge with the working copy, | |
|
801 | # e.g. [hg update], will be aborted after figuring out what needs to be done, | |
|
802 | # but before spawning the parallel worker | |
|
803 | coreconfigitem( | |
|
804 | b'devel', | |
|
805 | b'debug.abort-update', | |
|
806 | default=False, | |
|
807 | ) | |
|
808 | # If discovery.grow-sample is False, the sample size used in set discovery will | |
|
809 | # not be increased through the process | |
|
810 | coreconfigitem( | |
|
811 | b'devel', | |
|
812 | b'discovery.grow-sample', | |
|
813 | default=True, | |
|
814 | ) | |
|
815 | # When discovery.grow-sample.dynamic is True, the default, the sample size is | |
|
816 | # adapted to the shape of the undecided set (it is set to the max of: | |
|
817 | # <target-size>, len(roots(undecided)), len(heads(undecided) | |
|
818 | coreconfigitem( | |
|
819 | b'devel', | |
|
820 | b'discovery.grow-sample.dynamic', | |
|
821 | default=True, | |
|
822 | ) | |
|
823 | # discovery.grow-sample.rate control the rate at which the sample grow | |
|
824 | coreconfigitem( | |
|
825 | b'devel', | |
|
826 | b'discovery.grow-sample.rate', | |
|
827 | default=1.05, | |
|
828 | ) | |
|
829 | # If discovery.randomize is False, random sampling during discovery are | |
|
830 | # deterministic. It is meant for integration tests. | |
|
831 | coreconfigitem( | |
|
832 | b'devel', | |
|
833 | b'discovery.randomize', | |
|
834 | default=True, | |
|
835 | ) | |
|
836 | # Control the initial size of the discovery sample | |
|
837 | coreconfigitem( | |
|
838 | b'devel', | |
|
839 | b'discovery.sample-size', | |
|
840 | default=200, | |
|
841 | ) | |
|
842 | # Control the initial size of the discovery for initial change | |
|
843 | coreconfigitem( | |
|
844 | b'devel', | |
|
845 | b'discovery.sample-size.initial', | |
|
846 | default=100, | |
|
847 | ) | |
|
848 | _registerdiffopts(section=b'diff') | |
|
849 | coreconfigitem( | |
|
850 | b'diff', | |
|
851 | b'merge', | |
|
852 | default=False, | |
|
853 | experimental=True, | |
|
854 | ) | |
|
855 | coreconfigitem( | |
|
856 | b'email', | |
|
857 | b'bcc', | |
|
858 | default=None, | |
|
859 | ) | |
|
860 | coreconfigitem( | |
|
861 | b'email', | |
|
862 | b'cc', | |
|
863 | default=None, | |
|
864 | ) | |
|
865 | coreconfigitem( | |
|
866 | b'email', | |
|
867 | b'charsets', | |
|
868 | default=list, | |
|
869 | ) | |
|
870 | coreconfigitem( | |
|
871 | b'email', | |
|
872 | b'from', | |
|
873 | default=None, | |
|
874 | ) | |
|
875 | coreconfigitem( | |
|
876 | b'email', | |
|
877 | b'method', | |
|
878 | default=b'smtp', | |
|
879 | ) | |
|
880 | coreconfigitem( | |
|
881 | b'email', | |
|
882 | b'reply-to', | |
|
883 | default=None, | |
|
884 | ) | |
|
885 | coreconfigitem( | |
|
886 | b'email', | |
|
887 | b'to', | |
|
888 | default=None, | |
|
889 | ) | |
|
890 | coreconfigitem( | |
|
891 | b'experimental', | |
|
892 | b'archivemetatemplate', | |
|
893 | default=dynamicdefault, | |
|
894 | ) | |
|
895 | coreconfigitem( | |
|
896 |
|
|
|
897 | b'auto-publish', | |
|
898 | default=b'publish', | |
|
899 | ) | |
|
900 | coreconfigitem( | |
|
901 | b'experimental', | |
|
902 | b'bundle-phases', | |
|
903 | default=False, | |
|
904 | ) | |
|
905 | coreconfigitem( | |
|
906 | b'experimental', | |
|
907 | b'bundle2-advertise', | |
|
908 | default=True, | |
|
909 | ) | |
|
910 | coreconfigitem( | |
|
911 | b'experimental', | |
|
912 | b'bundle2-output-capture', | |
|
913 | default=False, | |
|
914 | ) | |
|
915 | coreconfigitem( | |
|
916 |
|
|
|
917 | b'bundle2.pushback', | |
|
918 | default=False, | |
|
919 | ) | |
|
920 | coreconfigitem( | |
|
921 | b'experimental', | |
|
922 | b'bundle2lazylocking', | |
|
923 | default=False, | |
|
924 | ) | |
|
925 | coreconfigitem( | |
|
926 | b'experimental', | |
|
927 | b'bundlecomplevel', | |
|
928 | default=None, | |
|
929 | ) | |
|
930 | coreconfigitem( | |
|
931 | b'experimental', | |
|
932 | b'bundlecomplevel.bzip2', | |
|
933 | default=None, | |
|
934 | ) | |
|
935 | coreconfigitem( | |
|
936 | b'experimental', | |
|
937 | b'bundlecomplevel.gzip', | |
|
938 | default=None, | |
|
939 | ) | |
|
940 | coreconfigitem( | |
|
941 | b'experimental', | |
|
942 | b'bundlecomplevel.none', | |
|
943 | default=None, | |
|
944 | ) | |
|
945 | coreconfigitem( | |
|
946 | b'experimental', | |
|
947 | b'bundlecomplevel.zstd', | |
|
948 | default=None, | |
|
949 | ) | |
|
950 | coreconfigitem( | |
|
951 | b'experimental', | |
|
952 | b'bundlecompthreads', | |
|
953 | default=None, | |
|
954 | ) | |
|
955 | coreconfigitem( | |
|
956 | b'experimental', | |
|
957 | b'bundlecompthreads.bzip2', | |
|
958 | default=None, | |
|
959 | ) | |
|
960 | coreconfigitem( | |
|
961 | b'experimental', | |
|
962 | b'bundlecompthreads.gzip', | |
|
963 | default=None, | |
|
964 | ) | |
|
965 | coreconfigitem( | |
|
966 | b'experimental', | |
|
967 | b'bundlecompthreads.none', | |
|
968 | default=None, | |
|
969 | ) | |
|
970 | coreconfigitem( | |
|
971 | b'experimental', | |
|
972 | b'bundlecompthreads.zstd', | |
|
973 | default=None, | |
|
974 | ) | |
|
975 | coreconfigitem( | |
|
976 | b'experimental', | |
|
977 | b'changegroup3', | |
|
978 | default=True, | |
|
979 | ) | |
|
980 | coreconfigitem( | |
|
981 | b'experimental', | |
|
982 | b'changegroup4', | |
|
983 | default=False, | |
|
984 | ) | |
|
522 | [[items]] | |
|
523 | section = "devel" | |
|
524 | name = "dirstate.v2.data_update_mode" | |
|
525 | default = "auto" | |
|
526 | ||
|
527 | [[items]] | |
|
528 | section = "devel" | |
|
529 | name = "disableloaddefaultcerts" | |
|
530 | default = false | |
|
531 | ||
|
532 | [[items]] | |
|
533 | section = "devel" | |
|
534 | name = "discovery.exchange-heads" | |
|
535 | default = true | |
|
536 | documentation = """If false, the discovery will not start with remote \ | |
|
537 | head fetching and local head querying.""" | |
|
538 | ||
|
539 | [[items]] | |
|
540 | section = "devel" | |
|
541 | name = "discovery.grow-sample" | |
|
542 | default = true | |
|
543 | documentation = """If false, the sample size used in set discovery \ | |
|
544 | will not be increased through the process.""" | |
|
545 | ||
|
546 | [[items]] | |
|
547 | section = "devel" | |
|
548 | name = "discovery.grow-sample.dynamic" | |
|
549 | default = true | |
|
550 | documentation = """If true, the default, the sample size is adapted to the shape \ | |
|
551 | of the undecided set. It is set to the max of: | |
|
552 | `<target-size>, len(roots(undecided)), len(heads(undecided))`""" | |
|
553 | ||
|
554 | [[items]] | |
|
555 | section = "devel" | |
|
556 | name = "discovery.grow-sample.rate" | |
|
557 | default = 1.05 | |
|
558 | documentation = "Controls the rate at which the sample grows." | |
|
559 | ||
|
560 | [[items]] | |
|
561 | section = "devel" | |
|
562 | name = "discovery.randomize" | |
|
563 | default = true | |
|
564 | documentation = """If false, random samplings during discovery are deterministic. \ | |
|
565 | It is meant for integration tests.""" | |
|
566 | ||
|
567 | [[items]] | |
|
568 | section = "devel" | |
|
569 | name = "discovery.sample-size" | |
|
570 | default = 200 | |
|
571 | documentation = "Controls the initial size of the discovery sample." | |
|
572 | ||
|
573 | [[items]] | |
|
574 | section = "devel" | |
|
575 | name = "discovery.sample-size.initial" | |
|
576 | default = 100 | |
|
577 | documentation = "Controls the initial size of the discovery for initial change." | |
|
578 | ||
|
579 | [[items]] | |
|
580 | section = "devel" | |
|
581 | name = "legacy.exchange" | |
|
582 | default-type = "list_type" | |
|
583 | ||
|
584 | [[items]] | |
|
585 | section = "devel" | |
|
586 | name = "persistent-nodemap" | |
|
587 | default = false | |
|
588 | documentation = """When true, revlogs use a special reference version of the \ | |
|
589 | nodemap, that is not performant but is "known" to behave properly.""" | |
|
590 | ||
|
591 | [[items]] | |
|
592 | section = "devel" | |
|
593 | name = "server-insecure-exact-protocol" | |
|
594 | default = "" | |
|
595 | ||
|
596 | [[items]] | |
|
597 | section = "devel" | |
|
598 | name = "servercafile" | |
|
599 | default = "" | |
|
600 | ||
|
601 | [[items]] | |
|
602 | section = "devel" | |
|
603 | name = "serverexactprotocol" | |
|
604 | default = "" | |
|
605 | ||
|
606 | [[items]] | |
|
607 | section = "devel" | |
|
608 | name = "serverrequirecert" | |
|
609 | default = false | |
|
610 | ||
|
611 | [[items]] | |
|
612 | section = "devel" | |
|
613 | name = "strip-obsmarkers" | |
|
614 | default = true | |
|
615 | ||
|
616 | [[items]] | |
|
617 | section = 'devel' | |
|
618 | name = 'sync.status.pre-dirstate-write-file' | |
|
619 | documentation = """ | |
|
620 | Makes the status algorithm wait for the existence of this file \ | |
|
621 | (or until a timeout of `devel.sync.status.pre-dirstate-write-file-timeout` \ | |
|
622 | seconds) before taking the lock and writing the dirstate. \ | |
|
623 | Status signals that it's ready to wait by creating a file \ | |
|
624 | with the same name + `.waiting`. \ | |
|
625 | Useful when testing race conditions.""" | |
|
626 | ||
|
627 | [[items]] | |
|
628 | section = 'devel' | |
|
629 | name = 'sync.status.pre-dirstate-write-file-timeout' | |
|
630 | default=2 | |
|
631 | ||
|
632 | [[items]] | |
|
633 | section = 'devel' | |
|
634 | name = 'sync.dirstate.post-docket-read-file' | |
|
635 | ||
|
636 | [[items]] | |
|
637 | section = 'devel' | |
|
638 | name = 'sync.dirstate.post-docket-read-file-timeout' | |
|
639 | default=2 | |
|
640 | ||
|
641 | [[items]] | |
|
642 | section = 'devel' | |
|
643 | name = 'sync.dirstate.pre-read-file' | |
|
644 | ||
|
645 | [[items]] | |
|
646 | section = 'devel' | |
|
647 | name = 'sync.dirstate.pre-read-file-timeout' | |
|
648 | default=2 | |
|
649 | ||
|
650 | [[items]] | |
|
651 | section = "devel" | |
|
652 | name = "user.obsmarker" | |
|
653 | ||
|
654 | [[items]] | |
|
655 | section = "devel" | |
|
656 | name = "warn-config" | |
|
657 | ||
|
658 | [[items]] | |
|
659 | section = "devel" | |
|
660 | name = "warn-config-default" | |
|
661 | ||
|
662 | [[items]] | |
|
663 | section = "devel" | |
|
664 | name = "warn-config-unknown" | |
|
665 | ||
|
666 | [[items]] | |
|
667 | section = "devel" | |
|
668 | name = "warn-empty-changegroup" | |
|
669 | default = false | |
|
670 | ||
|
671 | [[items]] | |
|
672 | section = "diff" | |
|
673 | name = "merge" | |
|
674 | default = false | |
|
675 | experimental = true | |
|
676 | ||
|
677 | [[items]] | |
|
678 | section = "email" | |
|
679 | name = "bcc" | |
|
680 | ||
|
681 | [[items]] | |
|
682 | section = "email" | |
|
683 | name = "cc" | |
|
684 | ||
|
685 | [[items]] | |
|
686 | section = "email" | |
|
687 | name = "charsets" | |
|
688 | default-type = "list_type" | |
|
689 | ||
|
690 | [[items]] | |
|
691 | section = "email" | |
|
692 | name = "from" | |
|
693 | ||
|
694 | [[items]] | |
|
695 | section = "email" | |
|
696 | name = "method" | |
|
697 | default = "smtp" | |
|
698 | ||
|
699 | [[items]] | |
|
700 | section = "email" | |
|
701 | name = "reply-to" | |
|
702 | ||
|
703 | [[items]] | |
|
704 | section = "email" | |
|
705 | name = "to" | |
|
706 | ||
|
707 | [[items]] | |
|
708 | section = "experimental" | |
|
709 | name = "archivemetatemplate" | |
|
710 | default-type = "dynamic" | |
|
711 | ||
|
712 | [[items]] | |
|
713 | section = "experimental" | |
|
714 | name = "auto-publish" | |
|
715 | default = "publish" | |
|
716 | ||
|
717 | [[items]] | |
|
718 | section = "experimental" | |
|
719 | name = "bundle-phases" | |
|
720 | default = false | |
|
721 | ||
|
722 | [[items]] | |
|
723 | section = "experimental" | |
|
724 | name = "bundle2-advertise" | |
|
725 | default = true | |
|
726 | ||
|
727 | [[items]] | |
|
728 | section = "experimental" | |
|
729 | name = "bundle2-output-capture" | |
|
730 | default = false | |
|
731 | ||
|
732 | [[items]] | |
|
733 | section = "experimental" | |
|
734 | name = "bundle2.pushback" | |
|
735 | default = false | |
|
736 | ||
|
737 | [[items]] | |
|
738 | section = "experimental" | |
|
739 | name = "bundle2lazylocking" | |
|
740 | default = false | |
|
741 | ||
|
742 | [[items]] | |
|
743 | section = "experimental" | |
|
744 | name = "bundlecomplevel" | |
|
745 | ||
|
746 | [[items]] | |
|
747 | section = "experimental" | |
|
748 | name = "bundlecomplevel.bzip2" | |
|
749 | ||
|
750 | [[items]] | |
|
751 | section = "experimental" | |
|
752 | name = "bundlecomplevel.gzip" | |
|
753 | ||
|
754 | [[items]] | |
|
755 | section = "experimental" | |
|
756 | name = "bundlecomplevel.none" | |
|
757 | ||
|
758 | [[items]] | |
|
759 | section = "experimental" | |
|
760 | name = "bundlecomplevel.zstd" | |
|
761 | ||
|
762 | [[items]] | |
|
763 | section = "experimental" | |
|
764 | name = "bundlecompthreads" | |
|
765 | ||
|
766 | [[items]] | |
|
767 | section = "experimental" | |
|
768 | name = "bundlecompthreads.bzip2" | |
|
769 | ||
|
770 | [[items]] | |
|
771 | section = "experimental" | |
|
772 | name = "bundlecompthreads.gzip" | |
|
773 | ||
|
774 | [[items]] | |
|
775 | section = "experimental" | |
|
776 | name = "bundlecompthreads.none" | |
|
777 | ||
|
778 | [[items]] | |
|
779 | section = "experimental" | |
|
780 | name = "bundlecompthreads.zstd" | |
|
781 | ||
|
782 | [[items]] | |
|
783 | section = "experimental" | |
|
784 | name = "changegroup3" | |
|
785 | default = true | |
|
786 | ||
|
787 | [[items]] | |
|
788 | section = "experimental" | |
|
789 | name = "changegroup4" | |
|
790 | default = false | |
|
985 | 791 | |
|
986 | 792 | # might remove rank configuration once the computation has no impact |
|
987 | coreconfigitem( | |
|
988 |
|
|
|
989 |
|
|
|
990 |
|
|
|
991 | ) | |
|
992 | coreconfigitem( | |
|
993 |
|
|
|
994 |
|
|
|
995 |
|
|
|
996 | ) | |
|
997 | coreconfigitem( | |
|
998 |
|
|
|
999 |
|
|
|
1000 | default=list, | |
|
1001 | ) | |
|
1002 | coreconfigitem( | |
|
1003 |
|
|
|
1004 | b'copytrace', | |
|
1005 | default=b'on', | |
|
1006 | ) | |
|
1007 | coreconfigitem( | |
|
1008 |
|
|
|
1009 | b'copytrace.movecandidateslimit', | |
|
1010 | default=100, | |
|
1011 | ) | |
|
1012 | coreconfigitem( | |
|
1013 |
|
|
|
1014 | b'copytrace.sourcecommitlimit', | |
|
1015 | default=100, | |
|
1016 | ) | |
|
1017 | coreconfigitem( | |
|
1018 |
|
|
|
1019 | b'copies.read-from', | |
|
1020 | default=b"filelog-only", | |
|
1021 | ) | |
|
1022 | coreconfigitem( | |
|
1023 |
|
|
|
1024 | b'copies.write-to', | |
|
1025 | default=b'filelog-only', | |
|
1026 | ) | |
|
1027 | coreconfigitem( | |
|
1028 |
|
|
|
1029 |
|
|
|
1030 | default=None, | |
|
1031 | ) | |
|
1032 | coreconfigitem( | |
|
1033 | b'experimental', | |
|
1034 | b'directaccess', | |
|
1035 | default=False, | |
|
1036 | ) | |
|
1037 | coreconfigitem( | |
|
1038 | b'experimental', | |
|
1039 | b'directaccess.revnums', | |
|
1040 | default=False, | |
|
1041 | ) | |
|
1042 | coreconfigitem( | |
|
1043 | b'experimental', | |
|
1044 | b'editortmpinhg', | |
|
1045 | default=False, | |
|
1046 | ) | |
|
1047 | coreconfigitem( | |
|
1048 | b'experimental', | |
|
1049 | b'evolution', | |
|
1050 | default=list, | |
|
1051 | ) | |
|
1052 | coreconfigitem( | |
|
1053 | b'experimental', | |
|
1054 | b'evolution.allowdivergence', | |
|
1055 | default=False, | |
|
1056 | alias=[(b'experimental', b'allowdivergence')], | |
|
1057 | ) | |
|
1058 | coreconfigitem( | |
|
1059 | b'experimental', | |
|
1060 | b'evolution.allowunstable', | |
|
1061 | default=None, | |
|
1062 | ) | |
|
1063 | coreconfigitem( | |
|
1064 | b'experimental', | |
|
1065 | b'evolution.createmarkers', | |
|
1066 | default=None, | |
|
1067 | ) | |
|
1068 | coreconfigitem( | |
|
1069 | b'experimental', | |
|
1070 | b'evolution.effect-flags', | |
|
1071 | default=True, | |
|
1072 | alias=[(b'experimental', b'effect-flags')], | |
|
1073 | ) | |
|
1074 | coreconfigitem( | |
|
1075 | b'experimental', | |
|
1076 | b'evolution.exchange', | |
|
1077 | default=None, | |
|
1078 | ) | |
|
1079 | coreconfigitem( | |
|
1080 | b'experimental', | |
|
1081 | b'evolution.bundle-obsmarker', | |
|
1082 | default=False, | |
|
1083 | ) | |
|
1084 | coreconfigitem( | |
|
1085 | b'experimental', | |
|
1086 | b'evolution.bundle-obsmarker:mandatory', | |
|
1087 | default=True, | |
|
1088 | ) | |
|
1089 | coreconfigitem( | |
|
1090 | b'experimental', | |
|
1091 | b'log.topo', | |
|
1092 | default=False, | |
|
1093 | ) | |
|
1094 | coreconfigitem( | |
|
1095 | b'experimental', | |
|
1096 | b'evolution.report-instabilities', | |
|
1097 | default=True, | |
|
1098 | ) | |
|
1099 | coreconfigitem( | |
|
1100 | b'experimental', | |
|
1101 | b'evolution.track-operation', | |
|
1102 | default=True, | |
|
1103 | ) | |
|
1104 | # repo-level config to exclude a revset visibility | |
|
1105 | # | |
|
1106 | # The target use case is to use `share` to expose different subset of the same | |
|
1107 | # repository, especially server side. See also `server.view`. | |
|
1108 | coreconfigitem( | |
|
1109 | b'experimental', | |
|
1110 | b'extra-filter-revs', | |
|
1111 | default=None, | |
|
1112 | ) | |
|
1113 | coreconfigitem( | |
|
1114 | b'experimental', | |
|
1115 | b'maxdeltachainspan', | |
|
1116 | default=-1, | |
|
1117 | ) | |
|
1118 | # tracks files which were undeleted (merge might delete them but we explicitly | |
|
1119 | # kept/undeleted them) and creates new filenodes for them | |
|
1120 | coreconfigitem( | |
|
1121 | b'experimental', | |
|
1122 | b'merge-track-salvaged', | |
|
1123 | default=False, | |
|
1124 | ) | |
|
1125 | coreconfigitem( | |
|
1126 | b'experimental', | |
|
1127 | b'mmapindexthreshold', | |
|
1128 | default=None, | |
|
1129 | ) | |
|
1130 | coreconfigitem( | |
|
1131 | b'experimental', | |
|
1132 | b'narrow', | |
|
1133 | default=False, | |
|
1134 | ) | |
|
1135 | coreconfigitem( | |
|
1136 | b'experimental', | |
|
1137 | b'nonnormalparanoidcheck', | |
|
1138 | default=False, | |
|
1139 | ) | |
|
1140 | coreconfigitem( | |
|
1141 | b'experimental', | |
|
1142 | b'exportableenviron', | |
|
1143 | default=list, | |
|
1144 | ) | |
|
1145 | coreconfigitem( | |
|
1146 | b'experimental', | |
|
1147 | b'extendedheader.index', | |
|
1148 | default=None, | |
|
1149 | ) | |
|
1150 | coreconfigitem( | |
|
1151 | b'experimental', | |
|
1152 | b'extendedheader.similarity', | |
|
1153 | default=False, | |
|
1154 | ) | |
|
1155 | coreconfigitem( | |
|
1156 | b'experimental', | |
|
1157 | b'graphshorten', | |
|
1158 | default=False, | |
|
1159 | ) | |
|
1160 | coreconfigitem( | |
|
1161 | b'experimental', | |
|
1162 | b'graphstyle.parent', | |
|
1163 | default=dynamicdefault, | |
|
1164 | ) | |
|
1165 | coreconfigitem( | |
|
1166 | b'experimental', | |
|
1167 | b'graphstyle.missing', | |
|
1168 | default=dynamicdefault, | |
|
1169 | ) | |
|
1170 | coreconfigitem( | |
|
1171 | b'experimental', | |
|
1172 | b'graphstyle.grandparent', | |
|
1173 | default=dynamicdefault, | |
|
1174 | ) | |
|
1175 | coreconfigitem( | |
|
1176 | b'experimental', | |
|
1177 | b'hook-track-tags', | |
|
1178 | default=False, | |
|
1179 | ) | |
|
1180 | coreconfigitem( | |
|
1181 | b'experimental', | |
|
1182 | b'httppostargs', | |
|
1183 | default=False, | |
|
1184 | ) | |
|
1185 | coreconfigitem(b'experimental', b'nointerrupt', default=False) | |
|
1186 | coreconfigitem(b'experimental', b'nointerrupt-interactiveonly', default=True) | |
|
1187 | ||
|
1188 | coreconfigitem( | |
|
1189 | b'experimental', | |
|
1190 | b'obsmarkers-exchange-debug', | |
|
1191 | default=False, | |
|
1192 | ) | |
|
1193 | coreconfigitem( | |
|
1194 | b'experimental', | |
|
1195 | b'remotenames', | |
|
1196 | default=False, | |
|
1197 | ) | |
|
1198 | coreconfigitem( | |
|
1199 | b'experimental', | |
|
1200 | b'removeemptydirs', | |
|
1201 | default=True, | |
|
1202 | ) | |
|
1203 | coreconfigitem( | |
|
1204 | b'experimental', | |
|
1205 | b'revert.interactive.select-to-keep', | |
|
1206 | default=False, | |
|
1207 | ) | |
|
1208 | coreconfigitem( | |
|
1209 | b'experimental', | |
|
1210 | b'revisions.prefixhexnode', | |
|
1211 | default=False, | |
|
1212 | ) | |
|
793 | [[items]] | |
|
794 | section = "experimental" | |
|
795 | name = "changelog-v2.compute-rank" | |
|
796 | default = true | |
|
797 | ||
|
798 | [[items]] | |
|
799 | section = "experimental" | |
|
800 | name = "cleanup-as-archived" | |
|
801 | default = false | |
|
802 | ||
|
803 | [[items]] | |
|
804 | section = "experimental" | |
|
805 | name = "clientcompressionengines" | |
|
806 | default-type = "list_type" | |
|
807 | ||
|
808 | [[items]] | |
|
809 | section = "experimental" | |
|
810 | name = "copies.read-from" | |
|
811 | default = "filelog-only" | |
|
812 | ||
|
813 | [[items]] | |
|
814 | section = "experimental" | |
|
815 | name = "copies.write-to" | |
|
816 | default = "filelog-only" | |
|
817 | ||
|
818 | [[items]] | |
|
819 | section = "experimental" | |
|
820 | name = "copytrace" | |
|
821 | default = "on" | |
|
822 | ||
|
823 | [[items]] | |
|
824 | section = "experimental" | |
|
825 | name = "copytrace.movecandidateslimit" | |
|
826 | default = 100 | |
|
827 | ||
|
828 | [[items]] | |
|
829 | section = "experimental" | |
|
830 | name = "copytrace.sourcecommitlimit" | |
|
831 | default = 100 | |
|
832 | ||
|
833 | [[items]] | |
|
834 | section = "experimental" | |
|
835 | name = "crecordtest" | |
|
836 | ||
|
837 | [[items]] | |
|
838 | section = "experimental" | |
|
839 | name = "directaccess" | |
|
840 | default = false | |
|
841 | ||
|
842 | [[items]] | |
|
843 | section = "experimental" | |
|
844 | name = "directaccess.revnums" | |
|
845 | default = false | |
|
846 | ||
|
847 | [[items]] | |
|
848 | section = "experimental" | |
|
849 | name = "editortmpinhg" | |
|
850 | default = false | |
|
851 | ||
|
852 | [[items]] | |
|
853 | section = "experimental" | |
|
854 | name = "evolution" | |
|
855 | default-type = "list_type" | |
|
856 | ||
|
857 | [[items]] | |
|
858 | section = "experimental" | |
|
859 | name = "evolution.allowdivergence" | |
|
860 | default = false | |
|
861 | alias = [["experimental", "allowdivergence"]] | |
|
862 | ||
|
863 | [[items]] | |
|
864 | section = "experimental" | |
|
865 | name = "evolution.allowunstable" | |
|
866 | ||
|
867 | [[items]] | |
|
868 | section = "experimental" | |
|
869 | name = "evolution.bundle-obsmarker" | |
|
870 | default = false | |
|
871 | ||
|
872 | [[items]] | |
|
873 | section = "experimental" | |
|
874 | name = "evolution.bundle-obsmarker:mandatory" | |
|
875 | default = true | |
|
876 | ||
|
877 | [[items]] | |
|
878 | section = "experimental" | |
|
879 | name = "evolution.createmarkers" | |
|
880 | ||
|
881 | [[items]] | |
|
882 | section = "experimental" | |
|
883 | name = "evolution.effect-flags" | |
|
884 | default = true | |
|
885 | alias = [["experimental", "effect-flags"]] | |
|
886 | ||
|
887 | [[items]] | |
|
888 | section = "experimental" | |
|
889 | name = "evolution.exchange" | |
|
890 | ||
|
891 | [[items]] | |
|
892 | section = "experimental" | |
|
893 | name = "evolution.report-instabilities" | |
|
894 | default = true | |
|
895 | ||
|
896 | [[items]] | |
|
897 | section = "experimental" | |
|
898 | name = "evolution.track-operation" | |
|
899 | default = true | |
|
900 | ||
|
901 | [[items]] | |
|
902 | section = "experimental" | |
|
903 | name = "exportableenviron" | |
|
904 | default-type = "list_type" | |
|
905 | ||
|
906 | [[items]] | |
|
907 | section = "experimental" | |
|
908 | name = "extendedheader.index" | |
|
909 | ||
|
910 | [[items]] | |
|
911 | section = "experimental" | |
|
912 | name = "extendedheader.similarity" | |
|
913 | default = false | |
|
914 | ||
|
915 | [[items]] | |
|
916 | section = "experimental" | |
|
917 | name = "extra-filter-revs" | |
|
918 | documentation = """Repo-level config to prevent a revset from being visible. | |
|
919 | The target use case is to use `share` to expose different subsets of the same \ | |
|
920 | repository, especially server side. See also `server.view`.""" | |
|
921 | ||
|
922 | [[items]] | |
|
923 | section = "experimental" | |
|
924 | name = "graphshorten" | |
|
925 | default = false | |
|
926 | ||
|
927 | [[items]] | |
|
928 | section = "experimental" | |
|
929 | name = "graphstyle.grandparent" | |
|
930 | default-type = "dynamic" | |
|
931 | ||
|
932 | [[items]] | |
|
933 | section = "experimental" | |
|
934 | name = "graphstyle.missing" | |
|
935 | default-type = "dynamic" | |
|
936 | ||
|
937 | [[items]] | |
|
938 | section = "experimental" | |
|
939 | name = "graphstyle.parent" | |
|
940 | default-type = "dynamic" | |
|
941 | ||
|
942 | [[items]] | |
|
943 | section = "experimental" | |
|
944 | name = "hook-track-tags" | |
|
945 | default = false | |
|
946 | ||
|
947 | [[items]] | |
|
948 | section = "experimental" | |
|
949 | name = "httppostargs" | |
|
950 | default = false | |
|
951 | ||
|
952 | [[items]] | |
|
953 | section = "experimental" | |
|
954 | name = "log.topo" | |
|
955 | default = false | |
|
956 | ||
|
957 | [[items]] | |
|
958 | section = "experimental" | |
|
959 | name = "maxdeltachainspan" | |
|
960 | default = -1 | |
|
961 | ||
|
962 | [[items]] | |
|
963 | section = "experimental" | |
|
964 | name = "merge-track-salvaged" | |
|
965 | default = false | |
|
966 | documentation = """Tracks files which were undeleted (merge might delete them \ | |
|
967 | but we explicitly kept/undeleted them) and creates new filenodes for them.""" | |
|
968 | ||
|
969 | [[items]] | |
|
970 | section = "experimental" | |
|
971 | name = "merge.checkpathconflicts" | |
|
972 | default = false | |
|
973 | ||
|
974 | [[items]] | |
|
975 | section = "experimental" | |
|
976 | name = "mmapindexthreshold" | |
|
977 | ||
|
978 | [[items]] | |
|
979 | section = "experimental" | |
|
980 | name = "narrow" | |
|
981 | default = false | |
|
982 | ||
|
983 | [[items]] | |
|
984 | section = "experimental" | |
|
985 | name = "nointerrupt" | |
|
986 | default = false | |
|
987 | ||
|
988 | [[items]] | |
|
989 | section = "experimental" | |
|
990 | name = "nointerrupt-interactiveonly" | |
|
991 | default = true | |
|
992 | ||
|
993 | [[items]] | |
|
994 | section = "experimental" | |
|
995 | name = "nonnormalparanoidcheck" | |
|
996 | default = false | |
|
997 | ||
|
998 | [[items]] | |
|
999 | section = "experimental" | |
|
1000 | name = "obsmarkers-exchange-debug" | |
|
1001 | default = false | |
|
1002 | ||
|
1003 | [[items]] | |
|
1004 | section = "experimental" | |
|
1005 | name = "rebaseskipobsolete" | |
|
1006 | default = true | |
|
1007 | ||
|
1008 | [[items]] | |
|
1009 | section = "experimental" | |
|
1010 | name = "remotenames" | |
|
1011 | default = false | |
|
1012 | ||
|
1013 | [[items]] | |
|
1014 | section = "experimental" | |
|
1015 | name = "removeemptydirs" | |
|
1016 | default = true | |
|
1017 | ||
|
1018 | [[items]] | |
|
1019 | section = "experimental" | |
|
1020 | name = "revert.interactive.select-to-keep" | |
|
1021 | default = false | |
|
1022 | ||
|
1023 | [[items]] | |
|
1024 | section = "experimental" | |
|
1025 | name = "revisions.disambiguatewithin" | |
|
1026 | ||
|
1027 | [[items]] | |
|
1028 | section = "experimental" | |
|
1029 | name = "revisions.prefixhexnode" | |
|
1030 | default = false | |
|
1031 | ||
|
1213 | 1032 | # "out of experimental" todo list. |
|
1214 | 1033 | # |
|
1215 | 1034 | # * include management of a persistent nodemap in the main docket |
@@ -1231,297 +1050,153 b' coreconfigitem(' | |||
|
1231 | 1050 | # - split the data offset and flag field (the 2 bytes save are mostly trouble) |
|
1232 | 1051 | # - keep track of uncompressed -chunk- size (to preallocate memory better) |
|
1233 | 1052 | # - keep track of chain base or size (probably not that useful anymore) |
|
1234 | coreconfigitem( | |
|
1235 |
|
|
|
1236 |
|
|
|
1237 | default=None, | |
|
1238 | ) | |
|
1239 | coreconfigitem( | |
|
1240 | b'experimental', | |
|
1241 | b'revisions.disambiguatewithin', | |
|
1242 | default=None, | |
|
1243 | ) | |
|
1244 | coreconfigitem( | |
|
1245 | b'experimental', | |
|
1246 | b'rust.index', | |
|
1247 | default=False, | |
|
1248 | ) | |
|
1249 | coreconfigitem( | |
|
1250 | b'experimental', | |
|
1251 | b'server.allow-hidden-access', | |
|
1252 | default=list, | |
|
1253 | ) | |
|
1254 | coreconfigitem( | |
|
1255 | b'experimental', | |
|
1256 | b'server.filesdata.recommended-batch-size', | |
|
1257 | default=50000, | |
|
1258 | ) | |
|
1259 | coreconfigitem( | |
|
1260 | b'experimental', | |
|
1261 | b'server.manifestdata.recommended-batch-size', | |
|
1262 | default=100000, | |
|
1263 | ) | |
|
1264 | coreconfigitem( | |
|
1265 | b'experimental', | |
|
1266 | b'server.stream-narrow-clones', | |
|
1267 | default=False, | |
|
1268 | ) | |
|
1269 | coreconfigitem( | |
|
1270 | b'experimental', | |
|
1271 | b'single-head-per-branch', | |
|
1272 | default=False, | |
|
1273 | ) | |
|
1274 | coreconfigitem( | |
|
1275 | b'experimental', | |
|
1276 | b'single-head-per-branch:account-closed-heads', | |
|
1277 | default=False, | |
|
1278 | ) | |
|
1279 | coreconfigitem( | |
|
1280 | b'experimental', | |
|
1281 | b'single-head-per-branch:public-changes-only', | |
|
1282 | default=False, | |
|
1283 | ) | |
|
1284 | coreconfigitem( | |
|
1285 | b'experimental', | |
|
1286 | b'sparse-read', | |
|
1287 | default=False, | |
|
1288 | ) | |
|
1289 | coreconfigitem( | |
|
1290 | b'experimental', | |
|
1291 | b'sparse-read.density-threshold', | |
|
1292 | default=0.50, | |
|
1293 | ) | |
|
1294 | coreconfigitem( | |
|
1295 | b'experimental', | |
|
1296 | b'sparse-read.min-gap-size', | |
|
1297 | default=b'65K', | |
|
1298 | ) | |
|
1299 | coreconfigitem( | |
|
1300 | b'experimental', | |
|
1301 | b'stream-v3', | |
|
1302 | default=False, | |
|
1303 | ) | |
|
1304 | coreconfigitem( | |
|
1305 |
|
|
|
1306 | b'treemanifest', | |
|
1307 | default=False, | |
|
1308 | ) | |
|
1309 | coreconfigitem( | |
|
1310 | b'experimental', | |
|
1311 | b'update.atomic-file', | |
|
1312 | default=False, | |
|
1313 | ) | |
|
1314 | coreconfigitem( | |
|
1315 | b'experimental', | |
|
1316 | b'web.full-garbage-collection-rate', | |
|
1317 | default=1, # still forcing a full collection on each request | |
|
1318 | ) | |
|
1319 | coreconfigitem( | |
|
1320 | b'experimental', | |
|
1321 | b'worker.wdir-get-thread-safe', | |
|
1322 | default=False, | |
|
1323 | ) | |
|
1324 | coreconfigitem( | |
|
1325 | b'experimental', | |
|
1326 | b'worker.repository-upgrade', | |
|
1327 | default=False, | |
|
1328 | ) | |
|
1329 | coreconfigitem( | |
|
1330 | b'experimental', | |
|
1331 | b'xdiff', | |
|
1332 | default=False, | |
|
1333 | ) | |
|
1334 | coreconfigitem( | |
|
1335 | b'extensions', | |
|
1336 | b'[^:]*', | |
|
1337 | default=None, | |
|
1338 | generic=True, | |
|
1339 | ) | |
|
1340 | coreconfigitem( | |
|
1341 | b'extensions', | |
|
1342 | b'[^:]*:required', | |
|
1343 |
|
|
|
1344 | generic=True, | |
|
1345 | ) | |
|
1346 | coreconfigitem( | |
|
1347 | b'extdata', | |
|
1348 | b'.*', | |
|
1349 | default=None, | |
|
1350 | generic=True, | |
|
1351 | ) | |
|
1352 | coreconfigitem( | |
|
1353 | b'format', | |
|
1354 | b'bookmarks-in-store', | |
|
1355 | default=False, | |
|
1356 | ) | |
|
1357 | coreconfigitem( | |
|
1358 | b'format', | |
|
1359 | b'chunkcachesize', | |
|
1360 | default=None, | |
|
1361 | experimental=True, | |
|
1362 | ) | |
|
1363 | coreconfigitem( | |
|
1364 | # Enable this dirstate format *when creating a new repository*. | |
|
1365 | # Which format to use for existing repos is controlled by .hg/requires | |
|
1366 | b'format', | |
|
1367 | b'use-dirstate-v2', | |
|
1368 | default=False, | |
|
1369 | experimental=True, | |
|
1370 | alias=[(b'format', b'exp-rc-dirstate-v2')], | |
|
1371 | ) | |
|
1372 | coreconfigitem( | |
|
1373 | b'format', | |
|
1374 | b'use-dirstate-v2.automatic-upgrade-of-mismatching-repositories', | |
|
1375 | default=False, | |
|
1376 | experimental=True, | |
|
1377 | ) | |
|
1378 | coreconfigitem( | |
|
1379 | b'format', | |
|
1380 | b'use-dirstate-v2.automatic-upgrade-of-mismatching-repositories:quiet', | |
|
1381 | default=False, | |
|
1382 | experimental=True, | |
|
1383 | ) | |
|
1384 | coreconfigitem( | |
|
1385 | b'format', | |
|
1386 | b'use-dirstate-tracked-hint', | |
|
1387 | default=False, | |
|
1388 | experimental=True, | |
|
1389 | ) | |
|
1390 | coreconfigitem( | |
|
1391 | b'format', | |
|
1392 | b'use-dirstate-tracked-hint.version', | |
|
1393 | default=1, | |
|
1394 | experimental=True, | |
|
1395 | ) | |
|
1396 | coreconfigitem( | |
|
1397 | b'format', | |
|
1398 | b'use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories', | |
|
1399 | default=False, | |
|
1400 | experimental=True, | |
|
1401 | ) | |
|
1402 | coreconfigitem( | |
|
1403 | b'format', | |
|
1404 | b'use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories:quiet', | |
|
1405 | default=False, | |
|
1406 | experimental=True, | |
|
1407 | ) | |
|
1408 | coreconfigitem( | |
|
1409 | b'format', | |
|
1410 | b'dotencode', | |
|
1411 | default=True, | |
|
1412 | ) | |
|
1413 | coreconfigitem( | |
|
1414 | b'format', | |
|
1415 | b'generaldelta', | |
|
1416 | default=False, | |
|
1417 | experimental=True, | |
|
1418 | ) | |
|
1419 | coreconfigitem( | |
|
1420 | b'format', | |
|
1421 | b'manifestcachesize', | |
|
1422 | default=None, | |
|
1423 | experimental=True, | |
|
1424 | ) | |
|
1425 | coreconfigitem( | |
|
1426 | b'format', | |
|
1427 | b'maxchainlen', | |
|
1428 | default=dynamicdefault, | |
|
1429 | experimental=True, | |
|
1430 | ) | |
|
1431 | coreconfigitem( | |
|
1432 | b'format', | |
|
1433 | b'obsstore-version', | |
|
1434 | default=None, | |
|
1435 | ) | |
|
1436 | coreconfigitem( | |
|
1437 | b'format', | |
|
1438 | b'sparse-revlog', | |
|
1439 | default=True, | |
|
1440 | ) | |
|
1441 | coreconfigitem( | |
|
1442 | b'format', | |
|
1443 | b'revlog-compression', | |
|
1444 | default=lambda: [b'zstd', b'zlib'], | |
|
1445 | alias=[(b'experimental', b'format.compression')], | |
|
1446 | ) | |
|
1447 | # Experimental TODOs: | |
|
1448 | # | |
|
1449 | # * Same as for revlogv2 (but for the reduction of the number of files) | |
|
1450 | # * Actually computing the rank of changesets | |
|
1451 | # * Improvement to investigate | |
|
1452 | # - storing .hgtags fnode | |
|
1453 | # - storing branch related identifier | |
|
1454 | ||
|
1455 | coreconfigitem( | |
|
1456 | b'format', | |
|
1457 | b'exp-use-changelog-v2', | |
|
1458 | default=None, | |
|
1459 | experimental=True, | |
|
1460 | ) | |
|
1461 | coreconfigitem( | |
|
1462 | b'format', | |
|
1463 | b'usefncache', | |
|
1464 | default=True, | |
|
1465 | ) | |
|
1466 | coreconfigitem( | |
|
1467 | b'format', | |
|
1468 | b'usegeneraldelta', | |
|
1469 | default=True, | |
|
1470 | ) | |
|
1471 | coreconfigitem( | |
|
1472 | b'format', | |
|
1473 | b'usestore', | |
|
1474 | default=True, | |
|
1475 | ) | |
|
1476 | ||
|
1477 | ||
|
1478 | def _persistent_nodemap_default(): | |
|
1479 | """compute `use-persistent-nodemap` default value | |
|
1480 | ||
|
1481 | The feature is disabled unless a fast implementation is available. | |
|
1482 | """ | |
|
1483 | from . import policy | |
|
1484 | ||
|
1485 | return policy.importrust('revlog') is not None | |
|
1486 | ||
|
1487 | ||
|
1488 | coreconfigitem( | |
|
1489 | b'format', | |
|
1490 | b'use-persistent-nodemap', | |
|
1491 | default=_persistent_nodemap_default, | |
|
1492 | ) | |
|
1493 | coreconfigitem( | |
|
1494 | b'format', | |
|
1495 | b'exp-use-copies-side-data-changeset', | |
|
1496 | default=False, | |
|
1497 | experimental=True, | |
|
1498 | ) | |
|
1499 | coreconfigitem( | |
|
1500 | b'format', | |
|
1501 | b'use-share-safe', | |
|
1502 | default=True, | |
|
1503 | ) | |
|
1504 | coreconfigitem( | |
|
1505 | b'format', | |
|
1506 | b'use-share-safe.automatic-upgrade-of-mismatching-repositories', | |
|
1507 | default=False, | |
|
1508 | experimental=True, | |
|
1509 | ) | |
|
1510 | coreconfigitem( | |
|
1511 | b'format', | |
|
1512 | b'use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet', | |
|
1513 | default=False, | |
|
1514 | experimental=True, | |
|
1515 | ) | |
|
1516 | ||
|
1517 | # Moving this on by default means we are confident about the scaling of phases. | |
|
1518 | # This is not garanteed to be the case at the time this message is written. | |
|
1519 | coreconfigitem( | |
|
1520 | b'format', | |
|
1521 | b'use-internal-phase', | |
|
1522 | default=False, | |
|
1523 | experimental=True, | |
|
1524 | ) | |
|
1053 | [[items]] | |
|
1054 | section = "experimental" | |
|
1055 | name = "revlogv2" | |
|
1056 | ||
|
1057 | [[items]] | |
|
1058 | section = "experimental" | |
|
1059 | name = "rust.index" | |
|
1060 | default = false | |
|
1061 | ||
|
1062 | [[items]] | |
|
1063 | section = "experimental" | |
|
1064 | name = "server.allow-hidden-access" | |
|
1065 | default-type = "list_type" | |
|
1066 | ||
|
1067 | [[items]] | |
|
1068 | section = "experimental" | |
|
1069 | name = "server.filesdata.recommended-batch-size" | |
|
1070 | default = 50000 | |
|
1071 | ||
|
1072 | [[items]] | |
|
1073 | section = "experimental" | |
|
1074 | name = "server.manifestdata.recommended-batch-size" | |
|
1075 | default = 100000 | |
|
1076 | ||
|
1077 | [[items]] | |
|
1078 | section = "experimental" | |
|
1079 | name = "server.stream-narrow-clones" | |
|
1080 | default = false | |
|
1081 | ||
|
1082 | [[items]] | |
|
1083 | section = "experimental" | |
|
1084 | name = "single-head-per-branch" | |
|
1085 | default = false | |
|
1086 | ||
|
1087 | [[items]] | |
|
1088 | section = "experimental" | |
|
1089 | name = "single-head-per-branch:account-closed-heads" | |
|
1090 | default = false | |
|
1091 | ||
|
1092 | [[items]] | |
|
1093 | section = "experimental" | |
|
1094 | name = "single-head-per-branch:public-changes-only" | |
|
1095 | default = false | |
|
1096 | ||
|
1097 | [[items]] | |
|
1098 | section = "experimental" | |
|
1099 | name = "sparse-read" | |
|
1100 | default = false | |
|
1101 | ||
|
1102 | [[items]] | |
|
1103 | section = "experimental" | |
|
1104 | name = "sparse-read.density-threshold" | |
|
1105 | default = 0.5 | |
|
1106 | ||
|
1107 | [[items]] | |
|
1108 | section = "experimental" | |
|
1109 | name = "sparse-read.min-gap-size" | |
|
1110 | default = "65K" | |
|
1111 | ||
|
1112 | [[items]] | |
|
1113 | section = "experimental" | |
|
1114 | name = "revlog.uncompressed-cache.enabled" | |
|
1115 | default = true | |
|
1116 | experimental = true | |
|
1117 | documentation = """Enable some caching of uncompressed chunk, greatly boosting | |
|
1118 | performance at the cost of memory usage.""" | |
|
1119 | ||
|
1120 | [[items]] | |
|
1121 | section = "experimental" | |
|
1122 | name = "revlog.uncompressed-cache.factor" | |
|
1123 | default = 4 | |
|
1124 | experimental = true | |
|
1125 | documentation = """The size of the cache compared to the largest revision seen.""" | |
|
1126 | ||
|
1127 | [[items]] | |
|
1128 | section = "experimental" | |
|
1129 | name = "revlog.uncompressed-cache.count" | |
|
1130 | default = 10000 | |
|
1131 | experimental = true | |
|
1132 | documentation = """The number of chunk cached.""" | |
|
1133 | ||
|
1134 | [[items]] | |
|
1135 | section = "experimental" | |
|
1136 | name = "stream-v3" | |
|
1137 | default = false | |
|
1138 | ||
|
1139 | [[items]] | |
|
1140 | section = "experimental" | |
|
1141 | name = "treemanifest" | |
|
1142 | default = false | |
|
1143 | ||
|
1144 | [[items]] | |
|
1145 | section = "experimental" | |
|
1146 | name = "update.atomic-file" | |
|
1147 | default = false | |
|
1148 | ||
|
1149 | [[items]] | |
|
1150 | section = "experimental" | |
|
1151 | name = "web.full-garbage-collection-rate" | |
|
1152 | default = 1 # still forcing a full collection on each request | |
|
1153 | ||
|
1154 | [[items]] | |
|
1155 | section = "experimental" | |
|
1156 | name = "worker.repository-upgrade" | |
|
1157 | default = false | |
|
1158 | ||
|
1159 | [[items]] | |
|
1160 | section = "experimental" | |
|
1161 | name = "worker.wdir-get-thread-safe" | |
|
1162 | default = false | |
|
1163 | ||
|
1164 | [[items]] | |
|
1165 | section = "experimental" | |
|
1166 | name = "xdiff" | |
|
1167 | default = false | |
|
1168 | ||
|
1169 | [[items]] | |
|
1170 | section = "extdata" | |
|
1171 | name = ".*" | |
|
1172 | generic = true | |
|
1173 | ||
|
1174 | [[items]] | |
|
1175 | section = "extensions" | |
|
1176 | name = "[^:]*" | |
|
1177 | generic = true | |
|
1178 | ||
|
1179 | [[items]] | |
|
1180 | section = "extensions" | |
|
1181 | name = "[^:]*:required" | |
|
1182 | default = false | |
|
1183 | generic = true | |
|
1184 | ||
|
1185 | [[items]] | |
|
1186 | section = "format" | |
|
1187 | name = "bookmarks-in-store" | |
|
1188 | default = false | |
|
1189 | ||
|
1190 | [[items]] | |
|
1191 | section = "format" | |
|
1192 | name = "chunkcachesize" | |
|
1193 | experimental = true | |
|
1194 | ||
|
1195 | [[items]] | |
|
1196 | section = "format" | |
|
1197 | name = "dotencode" | |
|
1198 | default = true | |
|
1199 | ||
|
1525 | 1200 | # The interaction between the archived phase and obsolescence markers needs to |
|
1526 | 1201 | # be sorted out before wider usage of this are to be considered. |
|
1527 | 1202 | # |
@@ -1533,1452 +1208,1660 b' coreconfigitem(' | |||
|
1533 | 1208 | # result in quite confusing situation for people combining exchanging draft |
|
1534 | 1209 | # with the archived phases. As some markers needed by others may be skipped |
|
1535 | 1210 | # during exchange. |
|
1536 | coreconfigitem( | |
|
1537 | b'format', | |
|
1538 |
|
|
|
1539 |
|
|
|
1540 |
|
|
|
1541 | ) | |
|
1542 | coreconfigitem( | |
|
1543 | b'shelve', | |
|
1544 | b'store', | |
|
1545 | default=b'internal', | |
|
1546 | experimental=True, | |
|
1547 | ) | |
|
1548 | coreconfigitem( | |
|
1549 | b'fsmonitor', | |
|
1550 | b'warn_when_unused', | |
|
1551 | default=True, | |
|
1552 | ) | |
|
1553 | coreconfigitem( | |
|
1554 | b'fsmonitor', | |
|
1555 | b'warn_update_file_count', | |
|
1556 | default=50000, | |
|
1557 | ) | |
|
1558 | coreconfigitem( | |
|
1559 | b'fsmonitor', | |
|
1560 | b'warn_update_file_count_rust', | |
|
1561 | default=400000, | |
|
1562 | ) | |
|
1563 | coreconfigitem( | |
|
1564 | b'help', | |
|
1565 | br'hidden-command\..*', | |
|
1566 | default=False, | |
|
1567 | generic=True, | |
|
1568 | ) | |
|
1569 | coreconfigitem( | |
|
1570 | b'help', | |
|
1571 | br'hidden-topic\..*', | |
|
1572 | default=False, | |
|
1573 | generic=True, | |
|
1574 | ) | |
|
1575 | coreconfigitem( | |
|
1576 | b'hooks', | |
|
1577 | b'[^:]*', | |
|
1578 | default=dynamicdefault, | |
|
1579 | generic=True, | |
|
1580 | ) | |
|
1581 | coreconfigitem( | |
|
1582 | b'hooks', | |
|
1583 | b'.*:run-with-plain', | |
|
1584 | default=True, | |
|
1585 | generic=True, | |
|
1586 | ) | |
|
1587 | coreconfigitem( | |
|
1588 | b'hgweb-paths', | |
|
1589 | b'.*', | |
|
1590 | default=list, | |
|
1591 | generic=True, | |
|
1592 | ) | |
|
1593 | coreconfigitem( | |
|
1594 | b'hostfingerprints', | |
|
1595 | b'.*', | |
|
1596 |
|
|
|
1597 | generic=True, | |
|
1598 | ) | |
|
1599 | coreconfigitem( | |
|
1600 | b'hostsecurity', | |
|
1601 | b'ciphers', | |
|
1602 | default=None, | |
|
1603 | ) | |
|
1604 | coreconfigitem( | |
|
1605 | b'hostsecurity', | |
|
1606 | b'minimumprotocol', | |
|
1607 | default=dynamicdefault, | |
|
1608 | ) | |
|
1609 | coreconfigitem( | |
|
1610 | b'hostsecurity', | |
|
1611 | b'.*:minimumprotocol$', | |
|
1612 | default=dynamicdefault, | |
|
1613 | generic=True, | |
|
1614 | ) | |
|
1615 | coreconfigitem( | |
|
1616 | b'hostsecurity', | |
|
1617 | b'.*:ciphers$', | |
|
1618 | default=dynamicdefault, | |
|
1619 | generic=True, | |
|
1620 | ) | |
|
1621 | coreconfigitem( | |
|
1622 | b'hostsecurity', | |
|
1623 | b'.*:fingerprints$', | |
|
1624 | default=list, | |
|
1625 | generic=True, | |
|
1626 | ) | |
|
1627 | coreconfigitem( | |
|
1628 | b'hostsecurity', | |
|
1629 | b'.*:verifycertsfile$', | |
|
1630 | default=None, | |
|
1631 | generic=True, | |
|
1632 | ) | |
|
1633 | ||
|
1634 | coreconfigitem( | |
|
1635 | b'http_proxy', | |
|
1636 | b'always', | |
|
1637 | default=False, | |
|
1638 | ) | |
|
1639 | coreconfigitem( | |
|
1640 | b'http_proxy', | |
|
1641 | b'host', | |
|
1642 | default=None, | |
|
1643 | ) | |
|
1644 | coreconfigitem( | |
|
1645 | b'http_proxy', | |
|
1646 | b'no', | |
|
1647 | default=list, | |
|
1648 | ) | |
|
1649 | coreconfigitem( | |
|
1650 | b'http_proxy', | |
|
1651 | b'passwd', | |
|
1652 | default=None, | |
|
1653 | ) | |
|
1654 | coreconfigitem( | |
|
1655 | b'http_proxy', | |
|
1656 | b'user', | |
|
1657 | default=None, | |
|
1658 | ) | |
|
1659 | ||
|
1660 | coreconfigitem( | |
|
1661 | b'http', | |
|
1662 | b'timeout', | |
|
1663 | default=None, | |
|
1664 | ) | |
|
1665 | ||
|
1666 | coreconfigitem( | |
|
1667 | b'logtoprocess', | |
|
1668 | b'commandexception', | |
|
1669 | default=None, | |
|
1670 | ) | |
|
1671 | coreconfigitem( | |
|
1672 | b'logtoprocess', | |
|
1673 | b'commandfinish', | |
|
1674 | default=None, | |
|
1675 | ) | |
|
1676 | coreconfigitem( | |
|
1677 | b'logtoprocess', | |
|
1678 | b'command', | |
|
1679 | default=None, | |
|
1680 | ) | |
|
1681 | coreconfigitem( | |
|
1682 | b'logtoprocess', | |
|
1683 | b'develwarn', | |
|
1684 | default=None, | |
|
1685 | ) | |
|
1686 | coreconfigitem( | |
|
1687 | b'logtoprocess', | |
|
1688 | b'uiblocked', | |
|
1689 | default=None, | |
|
1690 | ) | |
|
1691 | coreconfigitem( | |
|
1692 | b'merge', | |
|
1693 | b'checkunknown', | |
|
1694 | default=b'abort', | |
|
1695 | ) | |
|
1696 | coreconfigitem( | |
|
1697 | b'merge', | |
|
1698 | b'checkignored', | |
|
1699 | default=b'abort', | |
|
1700 | ) | |
|
1701 | coreconfigitem( | |
|
1702 | b'experimental', | |
|
1703 | b'merge.checkpathconflicts', | |
|
1704 | default=False, | |
|
1705 | ) | |
|
1706 | coreconfigitem( | |
|
1707 | b'merge', | |
|
1708 | b'followcopies', | |
|
1709 | default=True, | |
|
1710 | ) | |
|
1711 | coreconfigitem( | |
|
1712 | b'merge', | |
|
1713 | b'on-failure', | |
|
1714 | default=b'continue', | |
|
1715 | ) | |
|
1716 | coreconfigitem( | |
|
1717 | b'merge', | |
|
1718 | b'preferancestor', | |
|
1719 | default=lambda: [b'*'], | |
|
1720 | experimental=True, | |
|
1721 | ) | |
|
1722 | coreconfigitem( | |
|
1723 | b'merge', | |
|
1724 | b'strict-capability-check', | |
|
1725 | default=False, | |
|
1726 | ) | |
|
1727 | coreconfigitem( | |
|
1728 | b'merge', | |
|
1729 | b'disable-partial-tools', | |
|
1730 | default=False, | |
|
1731 | experimental=True, | |
|
1732 | ) | |
|
1733 | coreconfigitem( | |
|
1734 | b'partial-merge-tools', | |
|
1735 | b'.*', | |
|
1736 | default=None, | |
|
1737 | generic=True, | |
|
1738 | experimental=True, | |
|
1739 | ) | |
|
1740 | coreconfigitem( | |
|
1741 | b'partial-merge-tools', | |
|
1742 | br'.*\.patterns', | |
|
1743 | default=dynamicdefault, | |
|
1744 |
|
|
|
1745 | priority=-1, | |
|
1746 | experimental=True, | |
|
1747 | ) | |
|
1748 | coreconfigitem( | |
|
1749 | b'partial-merge-tools', | |
|
1750 | br'.*\.executable$', | |
|
1751 | default=dynamicdefault, | |
|
1752 | generic=True, | |
|
1753 | priority=-1, | |
|
1754 | experimental=True, | |
|
1755 | ) | |
|
1756 | coreconfigitem( | |
|
1757 | b'partial-merge-tools', | |
|
1758 | br'.*\.order', | |
|
1759 | default=0, | |
|
1760 | generic=True, | |
|
1761 | priority=-1, | |
|
1762 | experimental=True, | |
|
1763 | ) | |
|
1764 | coreconfigitem( | |
|
1765 | b'partial-merge-tools', | |
|
1766 | br'.*\.args', | |
|
1767 | default=b"$local $base $other", | |
|
1768 | generic=True, | |
|
1769 | priority=-1, | |
|
1770 | experimental=True, | |
|
1771 | ) | |
|
1772 | coreconfigitem( | |
|
1773 | b'partial-merge-tools', | |
|
1774 | br'.*\.disable', | |
|
1775 | default=False, | |
|
1776 | generic=True, | |
|
1777 | priority=-1, | |
|
1778 | experimental=True, | |
|
1779 | ) | |
|
1780 | coreconfigitem( | |
|
1781 | b'merge-tools', | |
|
1782 | b'.*', | |
|
1783 | default=None, | |
|
1784 | generic=True, | |
|
1785 | ) | |
|
1786 | coreconfigitem( | |
|
1787 | b'merge-tools', | |
|
1788 | br'.*\.args$', | |
|
1789 | default=b"$local $base $other", | |
|
1790 | generic=True, | |
|
1791 | priority=-1, | |
|
1792 | ) | |
|
1793 | coreconfigitem( | |
|
1794 | b'merge-tools', | |
|
1795 | br'.*\.binary$', | |
|
1796 | default=False, | |
|
1797 | generic=True, | |
|
1798 | priority=-1, | |
|
1799 | ) | |
|
1800 | coreconfigitem( | |
|
1801 | b'merge-tools', | |
|
1802 | br'.*\.check$', | |
|
1803 | default=list, | |
|
1804 | generic=True, | |
|
1805 | priority=-1, | |
|
1806 | ) | |
|
1807 | coreconfigitem( | |
|
1808 | b'merge-tools', | |
|
1809 | br'.*\.checkchanged$', | |
|
1810 | default=False, | |
|
1811 | generic=True, | |
|
1812 | priority=-1, | |
|
1813 | ) | |
|
1814 | coreconfigitem( | |
|
1815 | b'merge-tools', | |
|
1816 | br'.*\.executable$', | |
|
1817 | default=dynamicdefault, | |
|
1818 | generic=True, | |
|
1819 | priority=-1, | |
|
1820 | ) | |
|
1821 | coreconfigitem( | |
|
1822 | b'merge-tools', | |
|
1823 | br'.*\.fixeol$', | |
|
1824 | default=False, | |
|
1825 | generic=True, | |
|
1826 | priority=-1, | |
|
1827 | ) | |
|
1828 | coreconfigitem( | |
|
1829 | b'merge-tools', | |
|
1830 | br'.*\.gui$', | |
|
1831 | default=False, | |
|
1832 | generic=True, | |
|
1833 | priority=-1, | |
|
1834 | ) | |
|
1835 | coreconfigitem( | |
|
1836 | b'merge-tools', | |
|
1837 | br'.*\.mergemarkers$', | |
|
1838 | default=b'basic', | |
|
1839 | generic=True, | |
|
1840 | priority=-1, | |
|
1841 | ) | |
|
1842 | coreconfigitem( | |
|
1843 | b'merge-tools', | |
|
1844 | br'.*\.mergemarkertemplate$', | |
|
1845 | default=dynamicdefault, # take from command-templates.mergemarker | |
|
1846 | generic=True, | |
|
1847 | priority=-1, | |
|
1848 | ) | |
|
1849 | coreconfigitem( | |
|
1850 | b'merge-tools', | |
|
1851 | br'.*\.priority$', | |
|
1852 | default=0, | |
|
1853 |
|
|
|
1854 | priority=-1, | |
|
1855 | ) | |
|
1856 | coreconfigitem( | |
|
1857 | b'merge-tools', | |
|
1858 | br'.*\.premerge$', | |
|
1859 | default=dynamicdefault, | |
|
1860 | generic=True, | |
|
1861 | priority=-1, | |
|
1862 | ) | |
|
1863 | coreconfigitem( | |
|
1864 | b'merge-tools', | |
|
1865 | br'.*\.regappend$', | |
|
1866 | default=b"", | |
|
1867 | generic=True, | |
|
1868 | priority=-1, | |
|
1869 | ) | |
|
1870 | coreconfigitem( | |
|
1871 | b'merge-tools', | |
|
1872 | br'.*\.symlink$', | |
|
1873 | default=False, | |
|
1874 | generic=True, | |
|
1875 | priority=-1, | |
|
1876 | ) | |
|
1877 | coreconfigitem( | |
|
1878 | b'pager', | |
|
1879 | b'attend-.*', | |
|
1880 | default=dynamicdefault, | |
|
1881 | generic=True, | |
|
1882 | ) | |
|
1883 | coreconfigitem( | |
|
1884 | b'pager', | |
|
1885 | b'ignore', | |
|
1886 | default=list, | |
|
1887 | ) | |
|
1888 | coreconfigitem( | |
|
1889 | b'pager', | |
|
1890 | b'pager', | |
|
1891 | default=dynamicdefault, | |
|
1892 | ) | |
|
1893 | coreconfigitem( | |
|
1894 | b'patch', | |
|
1895 | b'eol', | |
|
1896 | default=b'strict', | |
|
1897 | ) | |
|
1898 | coreconfigitem( | |
|
1899 | b'patch', | |
|
1900 | b'fuzz', | |
|
1901 | default=2, | |
|
1902 | ) | |
|
1903 | coreconfigitem( | |
|
1904 | b'paths', | |
|
1905 | b'default', | |
|
1906 | default=None, | |
|
1907 | ) | |
|
1908 | coreconfigitem( | |
|
1909 | b'paths', | |
|
1910 | b'default-push', | |
|
1911 | default=None, | |
|
1912 | ) | |
|
1913 | coreconfigitem( | |
|
1914 | b'paths', | |
|
1915 | b'[^:]*', | |
|
1916 | default=None, | |
|
1917 | generic=True, | |
|
1918 | ) | |
|
1919 | coreconfigitem( | |
|
1920 | b'paths', | |
|
1921 | b'.*:bookmarks.mode', | |
|
1922 | default='default', | |
|
1923 | generic=True, | |
|
1924 | ) | |
|
1925 | coreconfigitem( | |
|
1926 | b'paths', | |
|
1927 | b'.*:multi-urls', | |
|
1928 | default=False, | |
|
1929 |
|
|
|
1930 | ) | |
|
1931 | coreconfigitem( | |
|
1932 | b'paths', | |
|
1933 | b'.*:pushrev', | |
|
1934 | default=None, | |
|
1935 | generic=True, | |
|
1936 | ) | |
|
1937 | coreconfigitem( | |
|
1938 | b'paths', | |
|
1939 | b'.*:pushurl', | |
|
1940 | default=None, | |
|
1941 | generic=True, | |
|
1942 | ) | |
|
1943 | coreconfigitem( | |
|
1944 | b'paths', | |
|
1945 | b'.*:pulled-delta-reuse-policy', | |
|
1946 | default=None, | |
|
1947 | generic=True, | |
|
1948 | ) | |
|
1949 | coreconfigitem( | |
|
1950 | b'phases', | |
|
1951 | b'checksubrepos', | |
|
1952 | default=b'follow', | |
|
1953 | ) | |
|
1954 | coreconfigitem( | |
|
1955 | b'phases', | |
|
1956 | b'new-commit', | |
|
1957 | default=b'draft', | |
|
1958 | ) | |
|
1959 | coreconfigitem( | |
|
1960 | b'phases', | |
|
1961 | b'publish', | |
|
1962 | default=True, | |
|
1963 | ) | |
|
1964 | coreconfigitem( | |
|
1965 | b'profiling', | |
|
1966 | b'enabled', | |
|
1967 | default=False, | |
|
1968 | ) | |
|
1969 | coreconfigitem( | |
|
1970 | b'profiling', | |
|
1971 | b'format', | |
|
1972 | default=b'text', | |
|
1973 | ) | |
|
1974 | coreconfigitem( | |
|
1975 | b'profiling', | |
|
1976 | b'freq', | |
|
1977 | default=1000, | |
|
1978 | ) | |
|
1979 | coreconfigitem( | |
|
1980 | b'profiling', | |
|
1981 | b'limit', | |
|
1982 | default=30, | |
|
1983 | ) | |
|
1984 | coreconfigitem( | |
|
1985 | b'profiling', | |
|
1986 | b'nested', | |
|
1987 | default=0, | |
|
1988 | ) | |
|
1989 | coreconfigitem( | |
|
1990 | b'profiling', | |
|
1991 | b'output', | |
|
1992 | default=None, | |
|
1993 | ) | |
|
1994 | coreconfigitem( | |
|
1995 | b'profiling', | |
|
1996 | b'showmax', | |
|
1997 | default=0.999, | |
|
1998 | ) | |
|
1999 | coreconfigitem( | |
|
2000 | b'profiling', | |
|
2001 | b'showmin', | |
|
2002 | default=dynamicdefault, | |
|
2003 | ) | |
|
2004 | coreconfigitem( | |
|
2005 | b'profiling', | |
|
2006 | b'showtime', | |
|
2007 | default=True, | |
|
2008 | ) | |
|
2009 | coreconfigitem( | |
|
2010 | b'profiling', | |
|
2011 | b'sort', | |
|
2012 | default=b'inlinetime', | |
|
2013 | ) | |
|
2014 | coreconfigitem( | |
|
2015 | b'profiling', | |
|
2016 | b'statformat', | |
|
2017 | default=b'hotpath', | |
|
2018 | ) | |
|
2019 | coreconfigitem( | |
|
2020 | b'profiling', | |
|
2021 | b'time-track', | |
|
2022 | default=dynamicdefault, | |
|
2023 | ) | |
|
2024 | coreconfigitem( | |
|
2025 | b'profiling', | |
|
2026 | b'type', | |
|
2027 | default=b'stat', | |
|
2028 | ) | |
|
2029 | coreconfigitem( | |
|
2030 | b'progress', | |
|
2031 | b'assume-tty', | |
|
2032 |
|
|
|
2033 | ) | |
|
2034 | coreconfigitem( | |
|
2035 | b'progress', | |
|
2036 | b'changedelay', | |
|
2037 | default=1, | |
|
2038 | ) | |
|
2039 | coreconfigitem( | |
|
2040 | b'progress', | |
|
2041 | b'clear-complete', | |
|
2042 | default=True, | |
|
2043 | ) | |
|
2044 | coreconfigitem( | |
|
2045 | b'progress', | |
|
2046 | b'debug', | |
|
2047 | default=False, | |
|
2048 | ) | |
|
2049 | coreconfigitem( | |
|
2050 | b'progress', | |
|
2051 | b'delay', | |
|
2052 |
|
|
|
2053 | ) | |
|
2054 | coreconfigitem( | |
|
2055 | b'progress', | |
|
2056 | b'disable', | |
|
2057 | default=False, | |
|
2058 | ) | |
|
2059 | coreconfigitem( | |
|
2060 | b'progress', | |
|
2061 | b'estimateinterval', | |
|
2062 | default=60.0, | |
|
2063 | ) | |
|
2064 | coreconfigitem( | |
|
2065 | b'progress', | |
|
2066 | b'format', | |
|
2067 | default=lambda: [b'topic', b'bar', b'number', b'estimate'], | |
|
2068 | ) | |
|
2069 | coreconfigitem( | |
|
2070 | b'progress', | |
|
2071 | b'refresh', | |
|
2072 | default=0.1, | |
|
2073 | ) | |
|
2074 | coreconfigitem( | |
|
2075 | b'progress', | |
|
2076 | b'width', | |
|
2077 | default=dynamicdefault, | |
|
2078 | ) | |
|
2079 | coreconfigitem( | |
|
2080 | b'pull', | |
|
2081 | b'confirm', | |
|
2082 | default=False, | |
|
2083 | ) | |
|
2084 | coreconfigitem( | |
|
2085 | b'push', | |
|
2086 | b'pushvars.server', | |
|
2087 | default=False, | |
|
2088 | ) | |
|
2089 | coreconfigitem( | |
|
2090 | b'rewrite', | |
|
2091 | b'backup-bundle', | |
|
2092 | default=True, | |
|
2093 | alias=[(b'ui', b'history-editing-backup')], | |
|
2094 | ) | |
|
2095 | coreconfigitem( | |
|
2096 | b'rewrite', | |
|
2097 | b'update-timestamp', | |
|
2098 | default=False, | |
|
2099 | ) | |
|
2100 | coreconfigitem( | |
|
2101 | b'rewrite', | |
|
2102 | b'empty-successor', | |
|
2103 | default=b'skip', | |
|
2104 | experimental=True, | |
|
2105 | ) | |
|
2106 | # experimental as long as format.use-dirstate-v2 is. | |
|
2107 | coreconfigitem( | |
|
2108 | b'storage', | |
|
2109 | b'dirstate-v2.slow-path', | |
|
2110 | default=b"abort", | |
|
2111 | experimental=True, | |
|
2112 | ) | |
|
2113 | coreconfigitem( | |
|
2114 | b'storage', | |
|
2115 | b'new-repo-backend', | |
|
2116 | default=b'revlogv1', | |
|
2117 | experimental=True, | |
|
2118 | ) | |
|
2119 | coreconfigitem( | |
|
2120 | b'storage', | |
|
2121 | b'revlog.optimize-delta-parent-choice', | |
|
2122 | default=True, | |
|
2123 | alias=[(b'format', b'aggressivemergedeltas')], | |
|
2124 | ) | |
|
2125 | coreconfigitem( | |
|
2126 | b'storage', | |
|
2127 | b'revlog.delta-parent-search.candidate-group-chunk-size', | |
|
2128 | default=20, | |
|
2129 | ) | |
|
2130 | coreconfigitem( | |
|
2131 | b'storage', | |
|
2132 | b'revlog.issue6528.fix-incoming', | |
|
2133 | default=True, | |
|
2134 | ) | |
|
2135 | # experimental as long as rust is experimental (or a C version is implemented) | |
|
2136 | coreconfigitem( | |
|
2137 | b'storage', | |
|
2138 | b'revlog.persistent-nodemap.mmap', | |
|
2139 | default=True, | |
|
2140 | ) | |
|
2141 | # experimental as long as format.use-persistent-nodemap is. | |
|
2142 | coreconfigitem( | |
|
2143 | b'storage', | |
|
2144 | b'revlog.persistent-nodemap.slow-path', | |
|
2145 | default=b"abort", | |
|
2146 | ) | |
|
2147 | ||
|
2148 | coreconfigitem( | |
|
2149 | b'storage', | |
|
2150 | b'revlog.reuse-external-delta', | |
|
2151 | default=True, | |
|
2152 | ) | |
|
2153 | # This option is True unless `format.generaldelta` is set. | |
|
2154 | coreconfigitem( | |
|
2155 | b'storage', | |
|
2156 | b'revlog.reuse-external-delta-parent', | |
|
2157 | default=None, | |
|
2158 | ) | |
|
2159 | coreconfigitem( | |
|
2160 | b'storage', | |
|
2161 | b'revlog.zlib.level', | |
|
2162 | default=None, | |
|
2163 | ) | |
|
2164 | coreconfigitem( | |
|
2165 | b'storage', | |
|
2166 | b'revlog.zstd.level', | |
|
2167 | default=None, | |
|
2168 | ) | |
|
2169 | coreconfigitem( | |
|
2170 | b'server', | |
|
2171 | b'bookmarks-pushkey-compat', | |
|
2172 | default=True, | |
|
2173 | ) | |
|
2174 | coreconfigitem( | |
|
2175 | b'server', | |
|
2176 | b'bundle1', | |
|
2177 | default=True, | |
|
2178 | ) | |
|
2179 | coreconfigitem( | |
|
2180 | b'server', | |
|
2181 | b'bundle1gd', | |
|
2182 | default=None, | |
|
2183 | ) | |
|
2184 | coreconfigitem( | |
|
2185 | b'server', | |
|
2186 | b'bundle1.pull', | |
|
2187 | default=None, | |
|
2188 | ) | |
|
2189 | coreconfigitem( | |
|
2190 | b'server', | |
|
2191 | b'bundle1gd.pull', | |
|
2192 | default=None, | |
|
2193 | ) | |
|
2194 | coreconfigitem( | |
|
2195 | b'server', | |
|
2196 | b'bundle1.push', | |
|
2197 | default=None, | |
|
2198 | ) | |
|
2199 | coreconfigitem( | |
|
2200 | b'server', | |
|
2201 | b'bundle1gd.push', | |
|
2202 | default=None, | |
|
2203 | ) | |
|
2204 | coreconfigitem( | |
|
2205 | b'server', | |
|
2206 | b'bundle2.stream', | |
|
2207 | default=True, | |
|
2208 | alias=[(b'experimental', b'bundle2.stream')], | |
|
2209 | ) | |
|
2210 | coreconfigitem( | |
|
2211 | b'server', | |
|
2212 | b'compressionengines', | |
|
2213 | default=list, | |
|
2214 | ) | |
|
2215 | coreconfigitem( | |
|
2216 | b'server', | |
|
2217 | b'concurrent-push-mode', | |
|
2218 | default=b'check-related', | |
|
2219 | ) | |
|
2220 | coreconfigitem( | |
|
2221 | b'server', | |
|
2222 | b'disablefullbundle', | |
|
2223 | default=False, | |
|
2224 | ) | |
|
2225 | coreconfigitem( | |
|
2226 | b'server', | |
|
2227 | b'maxhttpheaderlen', | |
|
2228 | default=1024, | |
|
2229 | ) | |
|
2230 | coreconfigitem( | |
|
2231 | b'server', | |
|
2232 | b'pullbundle', | |
|
2233 | default=True, | |
|
2234 | ) | |
|
2235 | coreconfigitem( | |
|
2236 | b'server', | |
|
2237 | b'preferuncompressed', | |
|
2238 | default=False, | |
|
2239 | ) | |
|
2240 | coreconfigitem( | |
|
2241 | b'server', | |
|
2242 | b'streamunbundle', | |
|
2243 | default=False, | |
|
2244 | ) | |
|
2245 | coreconfigitem( | |
|
2246 | b'server', | |
|
2247 | b'uncompressed', | |
|
2248 | default=True, | |
|
2249 | ) | |
|
2250 | coreconfigitem( | |
|
2251 | b'server', | |
|
2252 | b'uncompressedallowsecret', | |
|
2253 | default=False, | |
|
2254 | ) | |
|
2255 | coreconfigitem( | |
|
2256 | b'server', | |
|
2257 | b'view', | |
|
2258 | default=b'served', | |
|
2259 | ) | |
|
2260 | coreconfigitem( | |
|
2261 | b'server', | |
|
2262 | b'validate', | |
|
2263 | default=False, | |
|
2264 | ) | |
|
2265 | coreconfigitem( | |
|
2266 | b'server', | |
|
2267 | b'zliblevel', | |
|
2268 | default=-1, | |
|
2269 | ) | |
|
2270 | coreconfigitem( | |
|
2271 | b'server', | |
|
2272 | b'zstdlevel', | |
|
2273 | default=3, | |
|
2274 | ) | |
|
2275 | coreconfigitem( | |
|
2276 | b'share', | |
|
2277 | b'pool', | |
|
2278 | default=None, | |
|
2279 | ) | |
|
2280 | coreconfigitem( | |
|
2281 | b'share', | |
|
2282 | b'poolnaming', | |
|
2283 | default=b'identity', | |
|
2284 | ) | |
|
2285 | coreconfigitem( | |
|
2286 | b'share', | |
|
2287 | b'safe-mismatch.source-not-safe', | |
|
2288 | default=b'abort', | |
|
2289 | ) | |
|
2290 | coreconfigitem( | |
|
2291 | b'share', | |
|
2292 | b'safe-mismatch.source-safe', | |
|
2293 | default=b'abort', | |
|
2294 | ) | |
|
2295 | coreconfigitem( | |
|
2296 | b'share', | |
|
2297 | b'safe-mismatch.source-not-safe.warn', | |
|
2298 | default=True, | |
|
2299 | ) | |
|
2300 | coreconfigitem( | |
|
2301 | b'share', | |
|
2302 | b'safe-mismatch.source-safe.warn', | |
|
2303 | default=True, | |
|
2304 | ) | |
|
2305 | coreconfigitem( | |
|
2306 | b'share', | |
|
2307 | b'safe-mismatch.source-not-safe:verbose-upgrade', | |
|
2308 | default=True, | |
|
2309 | ) | |
|
2310 | coreconfigitem( | |
|
2311 | b'share', | |
|
2312 | b'safe-mismatch.source-safe:verbose-upgrade', | |
|
2313 | default=True, | |
|
2314 | ) | |
|
2315 | coreconfigitem( | |
|
2316 | b'shelve', | |
|
2317 | b'maxbackups', | |
|
2318 | default=10, | |
|
2319 | ) | |
|
2320 | coreconfigitem( | |
|
2321 | b'smtp', | |
|
2322 | b'host', | |
|
2323 | default=None, | |
|
2324 | ) | |
|
2325 | coreconfigitem( | |
|
2326 | b'smtp', | |
|
2327 | b'local_hostname', | |
|
2328 | default=None, | |
|
2329 | ) | |
|
2330 | coreconfigitem( | |
|
2331 | b'smtp', | |
|
2332 | b'password', | |
|
2333 | default=None, | |
|
2334 | ) | |
|
2335 | coreconfigitem( | |
|
2336 | b'smtp', | |
|
2337 | b'port', | |
|
2338 | default=dynamicdefault, | |
|
2339 | ) | |
|
2340 | coreconfigitem( | |
|
2341 | b'smtp', | |
|
2342 | b'tls', | |
|
2343 | default=b'none', | |
|
2344 | ) | |
|
2345 | coreconfigitem( | |
|
2346 | b'smtp', | |
|
2347 | b'username', | |
|
2348 | default=None, | |
|
2349 | ) | |
|
2350 | coreconfigitem( | |
|
2351 | b'sparse', | |
|
2352 | b'missingwarning', | |
|
2353 | default=True, | |
|
2354 | experimental=True, | |
|
2355 | ) | |
|
2356 | coreconfigitem( | |
|
2357 | b'subrepos', | |
|
2358 | b'allowed', | |
|
2359 | default=dynamicdefault, # to make backporting simpler | |
|
2360 | ) | |
|
2361 | coreconfigitem( | |
|
2362 | b'subrepos', | |
|
2363 | b'hg:allowed', | |
|
2364 | default=dynamicdefault, | |
|
2365 | ) | |
|
2366 | coreconfigitem( | |
|
2367 | b'subrepos', | |
|
2368 | b'git:allowed', | |
|
2369 | default=dynamicdefault, | |
|
2370 | ) | |
|
2371 | coreconfigitem( | |
|
2372 | b'subrepos', | |
|
2373 | b'svn:allowed', | |
|
2374 | default=dynamicdefault, | |
|
2375 | ) | |
|
2376 | coreconfigitem( | |
|
2377 | b'templates', | |
|
2378 | b'.*', | |
|
2379 | default=None, | |
|
2380 | generic=True, | |
|
2381 | ) | |
|
2382 | coreconfigitem( | |
|
2383 | b'templateconfig', | |
|
2384 | b'.*', | |
|
2385 | default=dynamicdefault, | |
|
2386 | generic=True, | |
|
2387 | ) | |
|
2388 | coreconfigitem( | |
|
2389 | b'trusted', | |
|
2390 | b'groups', | |
|
2391 | default=list, | |
|
2392 | ) | |
|
2393 | coreconfigitem( | |
|
2394 | b'trusted', | |
|
2395 | b'users', | |
|
2396 | default=list, | |
|
2397 | ) | |
|
2398 | coreconfigitem( | |
|
2399 | b'ui', | |
|
2400 | b'_usedassubrepo', | |
|
2401 | default=False, | |
|
2402 | ) | |
|
2403 | coreconfigitem( | |
|
2404 | b'ui', | |
|
2405 | b'allowemptycommit', | |
|
2406 | default=False, | |
|
2407 | ) | |
|
2408 | coreconfigitem( | |
|
2409 | b'ui', | |
|
2410 | b'archivemeta', | |
|
2411 | default=True, | |
|
2412 | ) | |
|
2413 | coreconfigitem( | |
|
2414 | b'ui', | |
|
2415 | b'askusername', | |
|
2416 | default=False, | |
|
2417 | ) | |
|
2418 | coreconfigitem( | |
|
2419 | b'ui', | |
|
2420 | b'available-memory', | |
|
2421 | default=None, | |
|
2422 | ) | |
|
2423 | ||
|
2424 | coreconfigitem( | |
|
2425 | b'ui', | |
|
2426 | b'clonebundlefallback', | |
|
2427 | default=False, | |
|
2428 | ) | |
|
2429 | coreconfigitem( | |
|
2430 | b'ui', | |
|
2431 | b'clonebundleprefers', | |
|
2432 | default=list, | |
|
2433 | ) | |
|
2434 | coreconfigitem( | |
|
2435 | b'ui', | |
|
2436 | b'clonebundles', | |
|
2437 | default=True, | |
|
2438 | ) | |
|
2439 | coreconfigitem( | |
|
2440 | b'ui', | |
|
2441 | b'color', | |
|
2442 | default=b'auto', | |
|
2443 | ) | |
|
2444 | coreconfigitem( | |
|
2445 | b'ui', | |
|
2446 | b'commitsubrepos', | |
|
2447 | default=False, | |
|
2448 | ) | |
|
2449 | coreconfigitem( | |
|
2450 | b'ui', | |
|
2451 | b'debug', | |
|
2452 | default=False, | |
|
2453 | ) | |
|
2454 | coreconfigitem( | |
|
2455 | b'ui', | |
|
2456 | b'debugger', | |
|
2457 | default=None, | |
|
2458 | ) | |
|
2459 | coreconfigitem( | |
|
2460 | b'ui', | |
|
2461 | b'editor', | |
|
2462 | default=dynamicdefault, | |
|
2463 | ) | |
|
2464 | coreconfigitem( | |
|
2465 | b'ui', | |
|
2466 | b'detailed-exit-code', | |
|
2467 | default=False, | |
|
2468 | experimental=True, | |
|
2469 | ) | |
|
2470 | coreconfigitem( | |
|
2471 | b'ui', | |
|
2472 | b'fallbackencoding', | |
|
2473 | default=None, | |
|
2474 | ) | |
|
2475 | coreconfigitem( | |
|
2476 | b'ui', | |
|
2477 | b'forcecwd', | |
|
2478 | default=None, | |
|
2479 | ) | |
|
2480 | coreconfigitem( | |
|
2481 | b'ui', | |
|
2482 | b'forcemerge', | |
|
2483 | default=None, | |
|
2484 | ) | |
|
2485 | coreconfigitem( | |
|
2486 | b'ui', | |
|
2487 | b'formatdebug', | |
|
2488 | default=False, | |
|
2489 | ) | |
|
2490 | coreconfigitem( | |
|
2491 | b'ui', | |
|
2492 | b'formatjson', | |
|
2493 | default=False, | |
|
2494 | ) | |
|
2495 | coreconfigitem( | |
|
2496 | b'ui', | |
|
2497 | b'formatted', | |
|
2498 | default=None, | |
|
2499 | ) | |
|
2500 | coreconfigitem( | |
|
2501 | b'ui', | |
|
2502 | b'interactive', | |
|
2503 | default=None, | |
|
2504 | ) | |
|
2505 | coreconfigitem( | |
|
2506 | b'ui', | |
|
2507 | b'interface', | |
|
2508 | default=None, | |
|
2509 | ) | |
|
2510 | coreconfigitem( | |
|
2511 | b'ui', | |
|
2512 | b'interface.chunkselector', | |
|
2513 | default=None, | |
|
2514 | ) | |
|
2515 | coreconfigitem( | |
|
2516 | b'ui', | |
|
2517 | b'large-file-limit', | |
|
2518 | default=10 * (2 ** 20), | |
|
2519 | ) | |
|
2520 | coreconfigitem( | |
|
2521 | b'ui', | |
|
2522 | b'logblockedtimes', | |
|
2523 | default=False, | |
|
2524 | ) | |
|
2525 | coreconfigitem( | |
|
2526 | b'ui', | |
|
2527 | b'merge', | |
|
2528 | default=None, | |
|
2529 | ) | |
|
2530 | coreconfigitem( | |
|
2531 | b'ui', | |
|
2532 | b'mergemarkers', | |
|
2533 | default=b'basic', | |
|
2534 | ) | |
|
2535 | coreconfigitem( | |
|
2536 | b'ui', | |
|
2537 | b'message-output', | |
|
2538 | default=b'stdio', | |
|
2539 | ) | |
|
2540 | coreconfigitem( | |
|
2541 | b'ui', | |
|
2542 | b'nontty', | |
|
2543 | default=False, | |
|
2544 | ) | |
|
2545 | coreconfigitem( | |
|
2546 | b'ui', | |
|
2547 | b'origbackuppath', | |
|
2548 | default=None, | |
|
2549 | ) | |
|
2550 | coreconfigitem( | |
|
2551 | b'ui', | |
|
2552 | b'paginate', | |
|
2553 | default=True, | |
|
2554 | ) | |
|
2555 | coreconfigitem( | |
|
2556 | b'ui', | |
|
2557 | b'patch', | |
|
2558 | default=None, | |
|
2559 | ) | |
|
2560 | coreconfigitem( | |
|
2561 | b'ui', | |
|
2562 | b'portablefilenames', | |
|
2563 | default=b'warn', | |
|
2564 | ) | |
|
2565 | coreconfigitem( | |
|
2566 | b'ui', | |
|
2567 | b'promptecho', | |
|
2568 | default=False, | |
|
2569 | ) | |
|
2570 | coreconfigitem( | |
|
2571 | b'ui', | |
|
2572 | b'quiet', | |
|
2573 | default=False, | |
|
2574 | ) | |
|
2575 | coreconfigitem( | |
|
2576 | b'ui', | |
|
2577 | b'quietbookmarkmove', | |
|
2578 | default=False, | |
|
2579 | ) | |
|
2580 | coreconfigitem( | |
|
2581 | b'ui', | |
|
2582 | b'relative-paths', | |
|
2583 | default=b'legacy', | |
|
2584 | ) | |
|
2585 | coreconfigitem( | |
|
2586 | b'ui', | |
|
2587 | b'remotecmd', | |
|
2588 | default=b'hg', | |
|
2589 | ) | |
|
2590 | coreconfigitem( | |
|
2591 | b'ui', | |
|
2592 | b'report_untrusted', | |
|
2593 | default=True, | |
|
2594 | ) | |
|
2595 | coreconfigitem( | |
|
2596 | b'ui', | |
|
2597 | b'rollback', | |
|
2598 | default=True, | |
|
2599 | ) | |
|
2600 | coreconfigitem( | |
|
2601 | b'ui', | |
|
2602 | b'signal-safe-lock', | |
|
2603 | default=True, | |
|
2604 | ) | |
|
2605 | coreconfigitem( | |
|
2606 | b'ui', | |
|
2607 | b'slash', | |
|
2608 | default=False, | |
|
2609 | ) | |
|
2610 | coreconfigitem( | |
|
2611 | b'ui', | |
|
2612 | b'ssh', | |
|
2613 | default=b'ssh', | |
|
2614 | ) | |
|
2615 | coreconfigitem( | |
|
2616 | b'ui', | |
|
2617 | b'ssherrorhint', | |
|
2618 | default=None, | |
|
2619 | ) | |
|
2620 | coreconfigitem( | |
|
2621 | b'ui', | |
|
2622 | b'statuscopies', | |
|
2623 | default=False, | |
|
2624 | ) | |
|
2625 | coreconfigitem( | |
|
2626 | b'ui', | |
|
2627 | b'strict', | |
|
2628 | default=False, | |
|
2629 | ) | |
|
2630 | coreconfigitem( | |
|
2631 | b'ui', | |
|
2632 | b'style', | |
|
2633 | default=b'', | |
|
2634 | ) | |
|
2635 | coreconfigitem( | |
|
2636 | b'ui', | |
|
2637 | b'supportcontact', | |
|
2638 | default=None, | |
|
2639 | ) | |
|
2640 | coreconfigitem( | |
|
2641 | b'ui', | |
|
2642 | b'textwidth', | |
|
2643 | default=78, | |
|
2644 | ) | |
|
2645 | coreconfigitem( | |
|
2646 | b'ui', | |
|
2647 | b'timeout', | |
|
2648 | default=b'600', | |
|
2649 | ) | |
|
2650 | coreconfigitem( | |
|
2651 | b'ui', | |
|
2652 | b'timeout.warn', | |
|
2653 | default=0, | |
|
2654 | ) | |
|
2655 | coreconfigitem( | |
|
2656 | b'ui', | |
|
2657 | b'timestamp-output', | |
|
2658 | default=False, | |
|
2659 | ) | |
|
2660 | coreconfigitem( | |
|
2661 | b'ui', | |
|
2662 | b'traceback', | |
|
2663 | default=False, | |
|
2664 | ) | |
|
2665 | coreconfigitem( | |
|
2666 | b'ui', | |
|
2667 | b'tweakdefaults', | |
|
2668 | default=False, | |
|
2669 | ) | |
|
2670 | coreconfigitem(b'ui', b'username', alias=[(b'ui', b'user')]) | |
|
2671 | coreconfigitem( | |
|
2672 | b'ui', | |
|
2673 | b'verbose', | |
|
2674 | default=False, | |
|
2675 | ) | |
|
2676 | coreconfigitem( | |
|
2677 | b'verify', | |
|
2678 | b'skipflags', | |
|
2679 | default=0, | |
|
2680 | ) | |
|
2681 | coreconfigitem( | |
|
2682 | b'web', | |
|
2683 | b'allowbz2', | |
|
2684 | default=False, | |
|
2685 | ) | |
|
2686 | coreconfigitem( | |
|
2687 | b'web', | |
|
2688 | b'allowgz', | |
|
2689 | default=False, | |
|
2690 | ) | |
|
2691 | coreconfigitem( | |
|
2692 | b'web', | |
|
2693 | b'allow-pull', | |
|
2694 | alias=[(b'web', b'allowpull')], | |
|
2695 | default=True, | |
|
2696 | ) | |
|
2697 | coreconfigitem( | |
|
2698 | b'web', | |
|
2699 | b'allow-push', | |
|
2700 | alias=[(b'web', b'allow_push')], | |
|
2701 | default=list, | |
|
2702 | ) | |
|
2703 | coreconfigitem( | |
|
2704 | b'web', | |
|
2705 | b'allowzip', | |
|
2706 |
|
|
|
2707 | ) | |
|
2708 | coreconfigitem( | |
|
2709 | b'web', | |
|
2710 | b'archivesubrepos', | |
|
2711 |
|
|
|
2712 | ) | |
|
2713 | coreconfigitem( | |
|
2714 | b'web', | |
|
2715 | b'cache', | |
|
2716 | default=True, | |
|
2717 | ) | |
|
2718 | coreconfigitem( | |
|
2719 | b'web', | |
|
2720 | b'comparisoncontext', | |
|
2721 | default=5, | |
|
2722 | ) | |
|
2723 | coreconfigitem( | |
|
2724 | b'web', | |
|
2725 | b'contact', | |
|
2726 | default=None, | |
|
2727 | ) | |
|
2728 | coreconfigitem( | |
|
2729 | b'web', | |
|
2730 | b'deny_push', | |
|
2731 | default=list, | |
|
2732 | ) | |
|
2733 | coreconfigitem( | |
|
2734 | b'web', | |
|
2735 | b'guessmime', | |
|
2736 | default=False, | |
|
2737 | ) | |
|
2738 | coreconfigitem( | |
|
2739 | b'web', | |
|
2740 | b'hidden', | |
|
2741 | default=False, | |
|
2742 | ) | |
|
2743 | coreconfigitem( | |
|
2744 | b'web', | |
|
2745 | b'labels', | |
|
2746 |
|
|
|
2747 | ) | |
|
2748 | coreconfigitem( | |
|
2749 | b'web', | |
|
2750 | b'logoimg', | |
|
2751 | default=b'hglogo.png', | |
|
2752 | ) | |
|
2753 | coreconfigitem( | |
|
2754 | b'web', | |
|
2755 | b'logourl', | |
|
2756 | default=b'https://mercurial-scm.org/', | |
|
2757 | ) | |
|
2758 | coreconfigitem( | |
|
2759 | b'web', | |
|
2760 | b'accesslog', | |
|
2761 | default=b'-', | |
|
2762 | ) | |
|
2763 | coreconfigitem( | |
|
2764 | b'web', | |
|
2765 | b'address', | |
|
2766 | default=b'', | |
|
2767 | ) | |
|
2768 | coreconfigitem( | |
|
2769 | b'web', | |
|
2770 | b'allow-archive', | |
|
2771 | alias=[(b'web', b'allow_archive')], | |
|
2772 | default=list, | |
|
2773 | ) | |
|
2774 | coreconfigitem( | |
|
2775 | b'web', | |
|
2776 | b'allow_read', | |
|
2777 | default=list, | |
|
2778 | ) | |
|
2779 | coreconfigitem( | |
|
2780 | b'web', | |
|
2781 | b'baseurl', | |
|
2782 | default=None, | |
|
2783 | ) | |
|
2784 | coreconfigitem( | |
|
2785 | b'web', | |
|
2786 | b'cacerts', | |
|
2787 | default=None, | |
|
2788 | ) | |
|
2789 | coreconfigitem( | |
|
2790 | b'web', | |
|
2791 | b'certificate', | |
|
2792 | default=None, | |
|
2793 | ) | |
|
2794 | coreconfigitem( | |
|
2795 | b'web', | |
|
2796 | b'collapse', | |
|
2797 | default=False, | |
|
2798 | ) | |
|
2799 | coreconfigitem( | |
|
2800 | b'web', | |
|
2801 | b'csp', | |
|
2802 | default=None, | |
|
2803 | ) | |
|
2804 | coreconfigitem( | |
|
2805 | b'web', | |
|
2806 | b'deny_read', | |
|
2807 | default=list, | |
|
2808 | ) | |
|
2809 | coreconfigitem( | |
|
2810 | b'web', | |
|
2811 | b'descend', | |
|
2812 | default=True, | |
|
2813 | ) | |
|
2814 | coreconfigitem( | |
|
2815 | b'web', | |
|
2816 | b'description', | |
|
2817 | default=b"", | |
|
2818 | ) | |
|
2819 | coreconfigitem( | |
|
2820 | b'web', | |
|
2821 | b'encoding', | |
|
2822 | default=lambda: encoding.encoding, | |
|
2823 | ) | |
|
2824 | coreconfigitem( | |
|
2825 | b'web', | |
|
2826 | b'errorlog', | |
|
2827 | default=b'-', | |
|
2828 | ) | |
|
2829 | coreconfigitem( | |
|
2830 | b'web', | |
|
2831 | b'ipv6', | |
|
2832 | default=False, | |
|
2833 | ) | |
|
2834 | coreconfigitem( | |
|
2835 | b'web', | |
|
2836 | b'maxchanges', | |
|
2837 | default=10, | |
|
2838 | ) | |
|
2839 | coreconfigitem( | |
|
2840 | b'web', | |
|
2841 | b'maxfiles', | |
|
2842 | default=10, | |
|
2843 | ) | |
|
2844 | coreconfigitem( | |
|
2845 | b'web', | |
|
2846 | b'maxshortchanges', | |
|
2847 | default=60, | |
|
2848 | ) | |
|
2849 | coreconfigitem( | |
|
2850 | b'web', | |
|
2851 | b'motd', | |
|
2852 | default=b'', | |
|
2853 | ) | |
|
2854 | coreconfigitem( | |
|
2855 | b'web', | |
|
2856 | b'name', | |
|
2857 | default=dynamicdefault, | |
|
2858 | ) | |
|
2859 | coreconfigitem( | |
|
2860 | b'web', | |
|
2861 | b'port', | |
|
2862 | default=8000, | |
|
2863 | ) | |
|
2864 | coreconfigitem( | |
|
2865 | b'web', | |
|
2866 | b'prefix', | |
|
2867 | default=b'', | |
|
2868 | ) | |
|
2869 | coreconfigitem( | |
|
2870 | b'web', | |
|
2871 | b'push_ssl', | |
|
2872 | default=True, | |
|
2873 | ) | |
|
2874 | coreconfigitem( | |
|
2875 | b'web', | |
|
2876 | b'refreshinterval', | |
|
2877 | default=20, | |
|
2878 | ) | |
|
2879 | coreconfigitem( | |
|
2880 | b'web', | |
|
2881 | b'server-header', | |
|
2882 | default=None, | |
|
2883 | ) | |
|
2884 | coreconfigitem( | |
|
2885 | b'web', | |
|
2886 | b'static', | |
|
2887 | default=None, | |
|
2888 | ) | |
|
2889 | coreconfigitem( | |
|
2890 | b'web', | |
|
2891 | b'staticurl', | |
|
2892 | default=None, | |
|
2893 | ) | |
|
2894 | coreconfigitem( | |
|
2895 | b'web', | |
|
2896 | b'stripes', | |
|
2897 | default=1, | |
|
2898 | ) | |
|
2899 | coreconfigitem( | |
|
2900 | b'web', | |
|
2901 | b'style', | |
|
2902 | default=b'paper', | |
|
2903 | ) | |
|
2904 | coreconfigitem( | |
|
2905 | b'web', | |
|
2906 | b'templates', | |
|
2907 | default=None, | |
|
2908 | ) | |
|
2909 | coreconfigitem( | |
|
2910 | b'web', | |
|
2911 | b'view', | |
|
2912 | default=b'served', | |
|
2913 | experimental=True, | |
|
2914 | ) | |
|
2915 | coreconfigitem( | |
|
2916 | b'worker', | |
|
2917 | b'backgroundclose', | |
|
2918 | default=dynamicdefault, | |
|
2919 | ) | |
|
1211 | [[items]] | |
|
1212 | section = "format" | |
|
1213 | name = "exp-archived-phase" | |
|
1214 | default = false | |
|
1215 | experimental = true | |
|
1216 | ||
|
1217 | # Experimental TODOs: | |
|
1218 | # | |
|
1219 | # * Same as for revlogv2 (but for the reduction of the number of files) | |
|
1220 | # * Actually computing the rank of changesets | |
|
1221 | # * Improvement to investigate | |
|
1222 | # - storing .hgtags fnode | |
|
1223 | # - storing branch related identifier | |
|
1224 | [[items]] | |
|
1225 | section = "format" | |
|
1226 | name = "exp-use-changelog-v2" | |
|
1227 | experimental = true | |
|
1228 | ||
|
1229 | [[items]] | |
|
1230 | section = "format" | |
|
1231 | name = "exp-use-copies-side-data-changeset" | |
|
1232 | default = false | |
|
1233 | experimental = true | |
|
1234 | ||
|
1235 | [[items]] | |
|
1236 | section = "format" | |
|
1237 | name = "generaldelta" | |
|
1238 | default = false | |
|
1239 | experimental = true | |
|
1240 | ||
|
1241 | [[items]] | |
|
1242 | section = "format" | |
|
1243 | name = "manifestcachesize" | |
|
1244 | experimental = true | |
|
1245 | ||
|
1246 | [[items]] | |
|
1247 | section = "format" | |
|
1248 | name = "maxchainlen" | |
|
1249 | default-type = "dynamic" | |
|
1250 | experimental = true | |
|
1251 | ||
|
1252 | [[items]] | |
|
1253 | section = "format" | |
|
1254 | name = "obsstore-version" | |
|
1255 | ||
|
1256 | [[items]] | |
|
1257 | section = "format" | |
|
1258 | name = "revlog-compression" | |
|
1259 | default-type = "lambda" | |
|
1260 | alias = [["experimental", "format.compression"]] | |
|
1261 | default = [ "zstd", "zlib",] | |
|
1262 | ||
|
1263 | [[items]] | |
|
1264 | section = "format" | |
|
1265 | name = "sparse-revlog" | |
|
1266 | default = true | |
|
1267 | ||
|
1268 | [[items]] | |
|
1269 | section = "format" | |
|
1270 | name = "use-dirstate-tracked-hint" | |
|
1271 | default = false | |
|
1272 | experimental = true | |
|
1273 | ||
|
1274 | [[items]] | |
|
1275 | section = "format" | |
|
1276 | name = "use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories" | |
|
1277 | default = false | |
|
1278 | experimental = true | |
|
1279 | ||
|
1280 | [[items]] | |
|
1281 | section = "format" | |
|
1282 | name = "use-dirstate-tracked-hint.automatic-upgrade-of-mismatching-repositories:quiet" | |
|
1283 | default = false | |
|
1284 | experimental = true | |
|
1285 | ||
|
1286 | [[items]] | |
|
1287 | section = "format" | |
|
1288 | name = "use-dirstate-tracked-hint.version" | |
|
1289 | default = 1 | |
|
1290 | experimental = true | |
|
1291 | ||
|
1292 | [[items]] | |
|
1293 | section = "format" | |
|
1294 | name = "use-dirstate-v2" | |
|
1295 | default = false | |
|
1296 | alias = [["format", "exp-rc-dirstate-v2"]] | |
|
1297 | experimental = true | |
|
1298 | documentation = """Enables dirstate-v2 format *when creating a new repository*. | |
|
1299 | Which format to use for existing repos is controlled by `.hg/requires`.""" | |
|
1300 | ||
|
1301 | [[items]] | |
|
1302 | section = "format" | |
|
1303 | name = "use-dirstate-v2.automatic-upgrade-of-mismatching-repositories" | |
|
1304 | default = false | |
|
1305 | experimental = true | |
|
1306 | ||
|
1307 | [[items]] | |
|
1308 | section = "format" | |
|
1309 | name = "use-dirstate-v2.automatic-upgrade-of-mismatching-repositories:quiet" | |
|
1310 | default = false | |
|
1311 | experimental = true | |
|
1312 | ||
|
1313 | # Having this on by default means we are confident about the scaling of phases. | |
|
1314 | # This is not garanteed to be the case at the time this message is written. | |
|
1315 | [[items]] | |
|
1316 | section = "format" | |
|
1317 | name = "use-internal-phase" | |
|
1318 | default = false | |
|
1319 | experimental = true | |
|
1320 | ||
|
1321 | [[items]] | |
|
1322 | section = "format" | |
|
1323 | name = "use-persistent-nodemap" | |
|
1324 | default-type = "dynamic" | |
|
1325 | ||
|
1326 | [[items]] | |
|
1327 | section = "format" | |
|
1328 | name = "use-share-safe" | |
|
1329 | default = true | |
|
1330 | ||
|
1331 | [[items]] | |
|
1332 | section = "format" | |
|
1333 | name = "use-share-safe.automatic-upgrade-of-mismatching-repositories" | |
|
1334 | default = false | |
|
1335 | experimental = true | |
|
1336 | ||
|
1337 | [[items]] | |
|
1338 | section = "format" | |
|
1339 | name = "use-share-safe.automatic-upgrade-of-mismatching-repositories:quiet" | |
|
1340 | default = false | |
|
1341 | experimental = true | |
|
1342 | ||
|
1343 | [[items]] | |
|
1344 | section = "format" | |
|
1345 | name = "usefncache" | |
|
1346 | default = true | |
|
1347 | ||
|
1348 | [[items]] | |
|
1349 | section = "format" | |
|
1350 | name = "usegeneraldelta" | |
|
1351 | default = true | |
|
1352 | ||
|
1353 | [[items]] | |
|
1354 | section = "format" | |
|
1355 | name = "usestore" | |
|
1356 | default = true | |
|
1357 | ||
|
1358 | [[items]] | |
|
1359 | section = "fsmonitor" | |
|
1360 | name = "warn_update_file_count" | |
|
1361 | default = 50000 | |
|
1362 | ||
|
1363 | [[items]] | |
|
1364 | section = "fsmonitor" | |
|
1365 | name = "warn_update_file_count_rust" | |
|
1366 | default = 400000 | |
|
1367 | ||
|
1368 | [[items]] | |
|
1369 | section = "fsmonitor" | |
|
1370 | name = "warn_when_unused" | |
|
1371 | default = true | |
|
1372 | ||
|
1373 | [[items]] | |
|
1374 | section = "help" | |
|
1375 | name = 'hidden-command\..*' | |
|
1376 | default = false | |
|
1377 | generic = true | |
|
1378 | ||
|
1379 | [[items]] | |
|
1380 | section = "help" | |
|
1381 | name = 'hidden-topic\..*' | |
|
1382 | default = false | |
|
1383 | generic = true | |
|
1384 | ||
|
1385 | [[items]] | |
|
1386 | section = "hgweb-paths" | |
|
1387 | name = ".*" | |
|
1388 | default-type = "list_type" | |
|
1389 | generic = true | |
|
1390 | ||
|
1391 | [[items]] | |
|
1392 | section = "hooks" | |
|
1393 | name = ".*:run-with-plain" | |
|
1394 | default = true | |
|
1395 | generic = true | |
|
1396 | ||
|
1397 | [[items]] | |
|
1398 | section = "hooks" | |
|
1399 | name = "[^:]*" | |
|
1400 | default-type = "dynamic" | |
|
1401 | generic = true | |
|
1402 | ||
|
1403 | [[items]] | |
|
1404 | section = "hostfingerprints" | |
|
1405 | name = ".*" | |
|
1406 | default-type = "list_type" | |
|
1407 | generic = true | |
|
1408 | ||
|
1409 | [[items]] | |
|
1410 | section = "hostsecurity" | |
|
1411 | name = ".*:ciphers$" | |
|
1412 | default-type = "dynamic" | |
|
1413 | generic = true | |
|
1414 | ||
|
1415 | [[items]] | |
|
1416 | section = "hostsecurity" | |
|
1417 | name = ".*:fingerprints$" | |
|
1418 | default-type = "list_type" | |
|
1419 | generic = true | |
|
1420 | ||
|
1421 | [[items]] | |
|
1422 | section = "hostsecurity" | |
|
1423 | name = ".*:minimumprotocol$" | |
|
1424 | default-type = "dynamic" | |
|
1425 | generic = true | |
|
1426 | ||
|
1427 | [[items]] | |
|
1428 | section = "hostsecurity" | |
|
1429 | name = ".*:verifycertsfile$" | |
|
1430 | generic = true | |
|
1431 | ||
|
1432 | [[items]] | |
|
1433 | section = "hostsecurity" | |
|
1434 | name = "ciphers" | |
|
1435 | ||
|
1436 | [[items]] | |
|
1437 | section = "hostsecurity" | |
|
1438 | name = "minimumprotocol" | |
|
1439 | default-type = "dynamic" | |
|
1440 | ||
|
1441 | [[items]] | |
|
1442 | section = "http" | |
|
1443 | name = "timeout" | |
|
1444 | ||
|
1445 | [[items]] | |
|
1446 | section = "http_proxy" | |
|
1447 | name = "always" | |
|
1448 | default = false | |
|
1449 | ||
|
1450 | [[items]] | |
|
1451 | section = "http_proxy" | |
|
1452 | name = "host" | |
|
1453 | ||
|
1454 | [[items]] | |
|
1455 | section = "http_proxy" | |
|
1456 | name = "no" | |
|
1457 | default-type = "list_type" | |
|
1458 | ||
|
1459 | [[items]] | |
|
1460 | section = "http_proxy" | |
|
1461 | name = "passwd" | |
|
1462 | ||
|
1463 | [[items]] | |
|
1464 | section = "http_proxy" | |
|
1465 | name = "user" | |
|
1466 | ||
|
1467 | [[items]] | |
|
1468 | section = "logtoprocess" | |
|
1469 | name = "command" | |
|
1470 | ||
|
1471 | [[items]] | |
|
1472 | section = "logtoprocess" | |
|
1473 | name = "commandexception" | |
|
1474 | ||
|
1475 | [[items]] | |
|
1476 | section = "logtoprocess" | |
|
1477 | name = "commandfinish" | |
|
1478 | ||
|
1479 | [[items]] | |
|
1480 | section = "logtoprocess" | |
|
1481 | name = "develwarn" | |
|
1482 | ||
|
1483 | [[items]] | |
|
1484 | section = "logtoprocess" | |
|
1485 | name = "uiblocked" | |
|
1486 | ||
|
1487 | [[items]] | |
|
1488 | section = "merge" | |
|
1489 | name = "checkignored" | |
|
1490 | default = "abort" | |
|
1491 | ||
|
1492 | [[items]] | |
|
1493 | section = "merge" | |
|
1494 | name = "checkunknown" | |
|
1495 | default = "abort" | |
|
1496 | ||
|
1497 | [[items]] | |
|
1498 | section = "merge" | |
|
1499 | name = "disable-partial-tools" | |
|
1500 | default = false | |
|
1501 | experimental = true | |
|
1502 | ||
|
1503 | [[items]] | |
|
1504 | section = "merge" | |
|
1505 | name = "followcopies" | |
|
1506 | default = true | |
|
1507 | ||
|
1508 | [[items]] | |
|
1509 | section = "merge" | |
|
1510 | name = "on-failure" | |
|
1511 | default = "continue" | |
|
1512 | ||
|
1513 | [[items]] | |
|
1514 | section = "merge" | |
|
1515 | name = "preferancestor" | |
|
1516 | default-type = "lambda" | |
|
1517 | default = ["*"] | |
|
1518 | experimental = true | |
|
1519 | ||
|
1520 | [[items]] | |
|
1521 | section = "merge" | |
|
1522 | name = "strict-capability-check" | |
|
1523 | default = false | |
|
1524 | ||
|
1525 | [[items]] | |
|
1526 | section = "merge-tools" | |
|
1527 | name = ".*" | |
|
1528 | generic = true | |
|
1529 | ||
|
1530 | [[items]] | |
|
1531 | section = "merge-tools" | |
|
1532 | name = '.*\.args$' | |
|
1533 | default = "$local $base $other" | |
|
1534 | generic = true | |
|
1535 | priority = -1 | |
|
1536 | ||
|
1537 | [[items]] | |
|
1538 | section = "merge-tools" | |
|
1539 | name = '.*\.binary$' | |
|
1540 | default = false | |
|
1541 | generic = true | |
|
1542 | priority = -1 | |
|
1543 | ||
|
1544 | [[items]] | |
|
1545 | section = "merge-tools" | |
|
1546 | name = '.*\.check$' | |
|
1547 | default-type = "list_type" | |
|
1548 | generic = true | |
|
1549 | priority = -1 | |
|
1550 | ||
|
1551 | [[items]] | |
|
1552 | section = "merge-tools" | |
|
1553 | name = '.*\.checkchanged$' | |
|
1554 | default = false | |
|
1555 | generic = true | |
|
1556 | priority = -1 | |
|
1557 | ||
|
1558 | [[items]] | |
|
1559 | section = "merge-tools" | |
|
1560 | name = '.*\.executable$' | |
|
1561 | default-type = "dynamic" | |
|
1562 | generic = true | |
|
1563 | priority = -1 | |
|
1564 | ||
|
1565 | [[items]] | |
|
1566 | section = "merge-tools" | |
|
1567 | name = '.*\.fixeol$' | |
|
1568 | default = false | |
|
1569 | generic = true | |
|
1570 | priority = -1 | |
|
1571 | ||
|
1572 | [[items]] | |
|
1573 | section = "merge-tools" | |
|
1574 | name = '.*\.gui$' | |
|
1575 | default = false | |
|
1576 | generic = true | |
|
1577 | priority = -1 | |
|
1578 | ||
|
1579 | [[items]] | |
|
1580 | section = "merge-tools" | |
|
1581 | name = '.*\.mergemarkers$' | |
|
1582 | default = "basic" | |
|
1583 | generic = true | |
|
1584 | priority = -1 | |
|
1585 | ||
|
1586 | [[items]] | |
|
1587 | section = "merge-tools" | |
|
1588 | name = '.*\.mergemarkertemplate$' # take from command-templates.mergemarker | |
|
1589 | default-type = "dynamic" | |
|
1590 | generic = true | |
|
1591 | priority = -1 | |
|
1592 | ||
|
1593 | [[items]] | |
|
1594 | section = "merge-tools" | |
|
1595 | name = '.*\.premerge$' | |
|
1596 | default-type = "dynamic" | |
|
1597 | generic = true | |
|
1598 | priority = -1 | |
|
1599 | ||
|
1600 | [[items]] | |
|
1601 | section = "merge-tools" | |
|
1602 | name = '.*\.priority$' | |
|
1603 | default = 0 | |
|
1604 | generic = true | |
|
1605 | priority = -1 | |
|
1606 | ||
|
1607 | [[items]] | |
|
1608 | section = "merge-tools" | |
|
1609 | name = '.*\.regappend$' | |
|
1610 | default = "" | |
|
1611 | generic = true | |
|
1612 | priority = -1 | |
|
1613 | ||
|
1614 | [[items]] | |
|
1615 | section = "merge-tools" | |
|
1616 | name = '.*\.symlink$' | |
|
1617 | default = false | |
|
1618 | generic = true | |
|
1619 | priority = -1 | |
|
1620 | ||
|
1621 | [[items]] | |
|
1622 | section = "pager" | |
|
1623 | name = "attend-.*" | |
|
1624 | default-type = "dynamic" | |
|
1625 | generic = true | |
|
1626 | ||
|
1627 | [[items]] | |
|
1628 | section = "pager" | |
|
1629 | name = "ignore" | |
|
1630 | default-type = "list_type" | |
|
1631 | ||
|
1632 | [[items]] | |
|
1633 | section = "pager" | |
|
1634 | name = "pager" | |
|
1635 | default-type = "dynamic" | |
|
1636 | ||
|
1637 | [[items]] | |
|
1638 | section = "partial-merge-tools" | |
|
1639 | name = ".*" | |
|
1640 | generic = true | |
|
1641 | experimental = true | |
|
1642 | ||
|
1643 | [[items]] | |
|
1644 | section = "partial-merge-tools" | |
|
1645 | name = '.*\.args' | |
|
1646 | default = "$local $base $other" | |
|
1647 | generic = true | |
|
1648 | priority = -1 | |
|
1649 | experimental = true | |
|
1650 | ||
|
1651 | [[items]] | |
|
1652 | section = "partial-merge-tools" | |
|
1653 | name = '.*\.disable' | |
|
1654 | default = false | |
|
1655 | generic = true | |
|
1656 | priority = -1 | |
|
1657 | experimental = true | |
|
1658 | ||
|
1659 | [[items]] | |
|
1660 | section = "partial-merge-tools" | |
|
1661 | name = '.*\.executable$' | |
|
1662 | default-type = "dynamic" | |
|
1663 | generic = true | |
|
1664 | priority = -1 | |
|
1665 | experimental = true | |
|
1666 | ||
|
1667 | [[items]] | |
|
1668 | section = "partial-merge-tools" | |
|
1669 | name = '.*\.order' | |
|
1670 | default = 0 | |
|
1671 | generic = true | |
|
1672 | priority = -1 | |
|
1673 | experimental = true | |
|
1674 | ||
|
1675 | [[items]] | |
|
1676 | section = "partial-merge-tools" | |
|
1677 | name = '.*\.patterns' | |
|
1678 | default-type = "dynamic" | |
|
1679 | generic = true | |
|
1680 | priority = -1 | |
|
1681 | experimental = true | |
|
1682 | ||
|
1683 | [[items]] | |
|
1684 | section = "patch" | |
|
1685 | name = "eol" | |
|
1686 | default = "strict" | |
|
1687 | ||
|
1688 | [[items]] | |
|
1689 | section = "patch" | |
|
1690 | name = "fuzz" | |
|
1691 | default = 2 | |
|
1692 | ||
|
1693 | [[items]] | |
|
1694 | section = "paths" | |
|
1695 | name = "[^:]*" | |
|
1696 | generic = true | |
|
1697 | ||
|
1698 | [[items]] | |
|
1699 | section = "paths" | |
|
1700 | name = ".*:bookmarks.mode" | |
|
1701 | default = "default" | |
|
1702 | generic = true | |
|
1703 | ||
|
1704 | [[items]] | |
|
1705 | section = "paths" | |
|
1706 | name = ".*:multi-urls" | |
|
1707 | default = false | |
|
1708 | generic = true | |
|
1709 | ||
|
1710 | [[items]] | |
|
1711 | section = "paths" | |
|
1712 | name = ".*:pulled-delta-reuse-policy" | |
|
1713 | generic = true | |
|
1714 | ||
|
1715 | [[items]] | |
|
1716 | section = "paths" | |
|
1717 | name = ".*:pushrev" | |
|
1718 | generic = true | |
|
1719 | ||
|
1720 | [[items]] | |
|
1721 | section = "paths" | |
|
1722 | name = ".*:pushurl" | |
|
1723 | generic = true | |
|
1724 | ||
|
1725 | [[items]] | |
|
1726 | section = "paths" | |
|
1727 | name = "default" | |
|
1728 | ||
|
1729 | [[items]] | |
|
1730 | section = "paths" | |
|
1731 | name = "default-push" | |
|
1732 | ||
|
1733 | [[items]] | |
|
1734 | section = "phases" | |
|
1735 | name = "checksubrepos" | |
|
1736 | default = "follow" | |
|
1737 | ||
|
1738 | [[items]] | |
|
1739 | section = "phases" | |
|
1740 | name = "new-commit" | |
|
1741 | default = "draft" | |
|
1742 | ||
|
1743 | [[items]] | |
|
1744 | section = "phases" | |
|
1745 | name = "publish" | |
|
1746 | default = true | |
|
1747 | ||
|
1748 | [[items]] | |
|
1749 | section = "profiling" | |
|
1750 | name = "enabled" | |
|
1751 | default = false | |
|
1752 | ||
|
1753 | [[items]] | |
|
1754 | section = "profiling" | |
|
1755 | name = "format" | |
|
1756 | default = "text" | |
|
1757 | ||
|
1758 | [[items]] | |
|
1759 | section = "profiling" | |
|
1760 | name = "freq" | |
|
1761 | default = 1000 | |
|
1762 | ||
|
1763 | [[items]] | |
|
1764 | section = "profiling" | |
|
1765 | name = "limit" | |
|
1766 | default = 30 | |
|
1767 | ||
|
1768 | [[items]] | |
|
1769 | section = "profiling" | |
|
1770 | name = "nested" | |
|
1771 | default = 0 | |
|
1772 | ||
|
1773 | [[items]] | |
|
1774 | section = "profiling" | |
|
1775 | name = "output" | |
|
1776 | ||
|
1777 | [[items]] | |
|
1778 | section = "profiling" | |
|
1779 | name = "showmax" | |
|
1780 | default = 0.999 | |
|
1781 | ||
|
1782 | [[items]] | |
|
1783 | section = "profiling" | |
|
1784 | name = "showmin" | |
|
1785 | default-type = "dynamic" | |
|
1786 | ||
|
1787 | [[items]] | |
|
1788 | section = "profiling" | |
|
1789 | name = "showtime" | |
|
1790 | default = true | |
|
1791 | ||
|
1792 | [[items]] | |
|
1793 | section = "profiling" | |
|
1794 | name = "sort" | |
|
1795 | default = "inlinetime" | |
|
1796 | ||
|
1797 | [[items]] | |
|
1798 | section = "profiling" | |
|
1799 | name = "statformat" | |
|
1800 | default = "hotpath" | |
|
1801 | ||
|
1802 | [[items]] | |
|
1803 | section = "profiling" | |
|
1804 | name = "time-track" | |
|
1805 | default-type = "dynamic" | |
|
1806 | ||
|
1807 | [[items]] | |
|
1808 | section = "profiling" | |
|
1809 | name = "type" | |
|
1810 | default = "stat" | |
|
1811 | ||
|
1812 | [[items]] | |
|
1813 | section = "progress" | |
|
1814 | name = "assume-tty" | |
|
1815 | default = false | |
|
1816 | ||
|
1817 | [[items]] | |
|
1818 | section = "progress" | |
|
1819 | name = "changedelay" | |
|
1820 | default = 1 | |
|
1821 | ||
|
1822 | [[items]] | |
|
1823 | section = "progress" | |
|
1824 | name = "clear-complete" | |
|
1825 | default = true | |
|
1826 | ||
|
1827 | [[items]] | |
|
1828 | section = "progress" | |
|
1829 | name = "debug" | |
|
1830 | default = false | |
|
1831 | ||
|
1832 | [[items]] | |
|
1833 | section = "progress" | |
|
1834 | name = "delay" | |
|
1835 | default = 3 | |
|
1836 | ||
|
1837 | [[items]] | |
|
1838 | section = "progress" | |
|
1839 | name = "disable" | |
|
1840 | default = false | |
|
1841 | ||
|
1842 | [[items]] | |
|
1843 | section = "progress" | |
|
1844 | name = "estimateinterval" | |
|
1845 | default = 60.0 | |
|
1846 | ||
|
1847 | [[items]] | |
|
1848 | section = "progress" | |
|
1849 | name = "format" | |
|
1850 | default-type = "lambda" | |
|
1851 | default = [ "topic", "bar", "number", "estimate",] | |
|
1852 | ||
|
1853 | [[items]] | |
|
1854 | section = "progress" | |
|
1855 | name = "refresh" | |
|
1856 | default = 0.1 | |
|
1857 | ||
|
1858 | [[items]] | |
|
1859 | section = "progress" | |
|
1860 | name = "width" | |
|
1861 | default-type = "dynamic" | |
|
1862 | ||
|
1863 | [[items]] | |
|
1864 | section = "pull" | |
|
1865 | name = "confirm" | |
|
1866 | default = false | |
|
1867 | ||
|
1868 | [[items]] | |
|
1869 | section = "push" | |
|
1870 | name = "pushvars.server" | |
|
1871 | default = false | |
|
1872 | ||
|
1873 | [[items]] | |
|
1874 | section = "rebase" | |
|
1875 | name = "experimental.inmemory" | |
|
1876 | default = false | |
|
1877 | ||
|
1878 | [[items]] | |
|
1879 | section = "rebase" | |
|
1880 | name = "singletransaction" | |
|
1881 | default = false | |
|
1882 | ||
|
1883 | [[items]] | |
|
1884 | section = "rebase" | |
|
1885 | name = "store-source" | |
|
1886 | default = true | |
|
1887 | experimental = true | |
|
1888 | documentation = """Controls creation of a `rebase_source` extra field during rebase. | |
|
1889 | When false, no such field is created. This is useful e.g. for incrementally \ | |
|
1890 | converting changesets and then rebasing them onto an existing repo. | |
|
1891 | WARNING: this is an advanced setting reserved for people who know \ | |
|
1892 | exactly what they are doing. Misuse of this setting can easily \ | |
|
1893 | result in obsmarker cycles and a vivid headache.""" | |
|
1894 | ||
|
1895 | [[items]] | |
|
1896 | section = "rewrite" | |
|
1897 | name = "backup-bundle" | |
|
1898 | default = true | |
|
1899 | alias = [["ui", "history-editing-backup"]] | |
|
1900 | ||
|
1901 | [[items]] | |
|
1902 | section = "rewrite" | |
|
1903 | name = "empty-successor" | |
|
1904 | default = "skip" | |
|
1905 | experimental = true | |
|
1906 | ||
|
1907 | [[items]] | |
|
1908 | section = "rewrite" | |
|
1909 | name = "update-timestamp" | |
|
1910 | default = false | |
|
1911 | ||
|
1912 | [[items]] | |
|
1913 | section = "rhg" | |
|
1914 | name = "cat" | |
|
1915 | default = true | |
|
1916 | experimental = true | |
|
1917 | documentation = """rhg cat has some quirks that need to be ironed out. \ | |
|
1918 | In particular, the `-r` argument accepts a partial hash, but does not \ | |
|
1919 | correctly resolve `abcdef` as a potential bookmark, tag or branch name.""" | |
|
1920 | ||
|
1921 | [[items]] | |
|
1922 | section = "rhg" | |
|
1923 | name = "fallback-exectutable" | |
|
1924 | experimental = true | |
|
1925 | ||
|
1926 | [[items]] | |
|
1927 | section = "rhg" | |
|
1928 | name = "fallback-immediately" | |
|
1929 | default = false | |
|
1930 | experimental = true | |
|
1931 | ||
|
1932 | [[items]] | |
|
1933 | section = "rhg" | |
|
1934 | name = "ignored-extensions" | |
|
1935 | default-type = "list_type" | |
|
1936 | experimental = true | |
|
1937 | ||
|
1938 | [[items]] | |
|
1939 | section = "rhg" | |
|
1940 | name = "on-unsupported" | |
|
1941 | default = "abort" | |
|
1942 | experimental = true | |
|
1943 | ||
|
1944 | [[items]] | |
|
1945 | section = "server" | |
|
1946 | name = "bookmarks-pushkey-compat" | |
|
1947 | default = true | |
|
1948 | ||
|
1949 | [[items]] | |
|
1950 | section = "server" | |
|
1951 | name = "bundle1" | |
|
1952 | default = true | |
|
1953 | ||
|
1954 | [[items]] | |
|
1955 | section = "server" | |
|
1956 | name = "bundle1.pull" | |
|
1957 | ||
|
1958 | [[items]] | |
|
1959 | section = "server" | |
|
1960 | name = "bundle1.push" | |
|
1961 | ||
|
1962 | [[items]] | |
|
1963 | section = "server" | |
|
1964 | name = "bundle1gd" | |
|
1965 | ||
|
1966 | [[items]] | |
|
1967 | section = "server" | |
|
1968 | name = "bundle1gd.pull" | |
|
1969 | ||
|
1970 | [[items]] | |
|
1971 | section = "server" | |
|
1972 | name = "bundle1gd.push" | |
|
1973 | ||
|
1974 | [[items]] | |
|
1975 | section = "server" | |
|
1976 | name = "bundle2.stream" | |
|
1977 | default = true | |
|
1978 | alias = [["experimental", "bundle2.stream"]] | |
|
1979 | ||
|
1980 | [[items]] | |
|
1981 | section = "server" | |
|
1982 | name = "compressionengines" | |
|
1983 | default-type = "list_type" | |
|
1984 | ||
|
1985 | [[items]] | |
|
1986 | section = "server" | |
|
1987 | name = "concurrent-push-mode" | |
|
1988 | default = "check-related" | |
|
1989 | ||
|
1990 | [[items]] | |
|
1991 | section = "server" | |
|
1992 | name = "disablefullbundle" | |
|
1993 | default = false | |
|
1994 | ||
|
1995 | [[items]] | |
|
1996 | section = "server" | |
|
1997 | name = "maxhttpheaderlen" | |
|
1998 | default = 1024 | |
|
1999 | ||
|
2000 | [[items]] | |
|
2001 | section = "server" | |
|
2002 | name = "preferuncompressed" | |
|
2003 | default = false | |
|
2004 | ||
|
2005 | [[items]] | |
|
2006 | section = "server" | |
|
2007 | name = "pullbundle" | |
|
2008 | default = true | |
|
2009 | ||
|
2010 | [[items]] | |
|
2011 | section = "server" | |
|
2012 | name = "streamunbundle" | |
|
2013 | default = false | |
|
2014 | ||
|
2015 | [[items]] | |
|
2016 | section = "server" | |
|
2017 | name = "uncompressed" | |
|
2018 | default = true | |
|
2019 | ||
|
2020 | [[items]] | |
|
2021 | section = "server" | |
|
2022 | name = "uncompressedallowsecret" | |
|
2023 | default = false | |
|
2024 | ||
|
2025 | [[items]] | |
|
2026 | section = "server" | |
|
2027 | name = "validate" | |
|
2028 | default = false | |
|
2029 | ||
|
2030 | [[items]] | |
|
2031 | section = "server" | |
|
2032 | name = "view" | |
|
2033 | default = "served" | |
|
2034 | ||
|
2035 | [[items]] | |
|
2036 | section = "server" | |
|
2037 | name = "zliblevel" | |
|
2038 | default = -1 | |
|
2039 | ||
|
2040 | [[items]] | |
|
2041 | section = "server" | |
|
2042 | name = "zstdlevel" | |
|
2043 | default = 3 | |
|
2044 | ||
|
2045 | [[items]] | |
|
2046 | section = "share" | |
|
2047 | name = "pool" | |
|
2048 | ||
|
2049 | [[items]] | |
|
2050 | section = "share" | |
|
2051 | name = "poolnaming" | |
|
2052 | default = "identity" | |
|
2053 | ||
|
2054 | [[items]] | |
|
2055 | section = "share" | |
|
2056 | name = "safe-mismatch.source-not-safe" | |
|
2057 | default = "abort" | |
|
2058 | ||
|
2059 | [[items]] | |
|
2060 | section = "share" | |
|
2061 | name = "safe-mismatch.source-not-safe.warn" | |
|
2062 | default = true | |
|
2063 | ||
|
2064 | [[items]] | |
|
2065 | section = "share" | |
|
2066 | name = "safe-mismatch.source-not-safe:verbose-upgrade" | |
|
2067 | default = true | |
|
2068 | ||
|
2069 | [[items]] | |
|
2070 | section = "share" | |
|
2071 | name = "safe-mismatch.source-safe" | |
|
2072 | default = "abort" | |
|
2073 | ||
|
2074 | [[items]] | |
|
2075 | section = "share" | |
|
2076 | name = "safe-mismatch.source-safe.warn" | |
|
2077 | default = true | |
|
2078 | ||
|
2079 | [[items]] | |
|
2080 | section = "share" | |
|
2081 | name = "safe-mismatch.source-safe:verbose-upgrade" | |
|
2082 | default = true | |
|
2083 | ||
|
2084 | [[items]] | |
|
2085 | section = "shelve" | |
|
2086 | name = "maxbackups" | |
|
2087 | default = 10 | |
|
2088 | ||
|
2089 | [[items]] | |
|
2090 | section = "shelve" | |
|
2091 | name = "store" | |
|
2092 | default = "internal" | |
|
2093 | experimental = true | |
|
2094 | ||
|
2095 | [[items]] | |
|
2096 | section = "smtp" | |
|
2097 | name = "host" | |
|
2098 | ||
|
2099 | [[items]] | |
|
2100 | section = "smtp" | |
|
2101 | name = "local_hostname" | |
|
2102 | ||
|
2103 | [[items]] | |
|
2104 | section = "smtp" | |
|
2105 | name = "password" | |
|
2106 | ||
|
2107 | [[items]] | |
|
2108 | section = "smtp" | |
|
2109 | name = "port" | |
|
2110 | default-type = "dynamic" | |
|
2111 | ||
|
2112 | [[items]] | |
|
2113 | section = "smtp" | |
|
2114 | name = "tls" | |
|
2115 | default = "none" | |
|
2116 | ||
|
2117 | [[items]] | |
|
2118 | section = "smtp" | |
|
2119 | name = "username" | |
|
2120 | ||
|
2121 | [[items]] | |
|
2122 | section = "sparse" | |
|
2123 | name = "missingwarning" | |
|
2124 | default = true | |
|
2125 | experimental = true | |
|
2126 | ||
|
2127 | [[items]] | |
|
2128 | section = "storage" | |
|
2129 | name = "dirstate-v2.slow-path" | |
|
2130 | default = "abort" | |
|
2131 | experimental = true # experimental as long as format.use-dirstate-v2 is. | |
|
2132 | ||
|
2133 | [[items]] | |
|
2134 | section = "storage" | |
|
2135 | name = "new-repo-backend" | |
|
2136 | default = "revlogv1" | |
|
2137 | experimental = true | |
|
2138 | ||
|
2139 | [[items]] | |
|
2140 | section = "storage" | |
|
2141 | name = "revlog.delta-parent-search.candidate-group-chunk-size" | |
|
2142 | default = 20 | |
|
2143 | ||
|
2144 | [[items]] | |
|
2145 | section = "storage" | |
|
2146 | name = "revlog.issue6528.fix-incoming" | |
|
2147 | default = true | |
|
2148 | ||
|
2149 | [[items]] | |
|
2150 | section = "storage" | |
|
2151 | name = "revlog.optimize-delta-parent-choice" | |
|
2152 | default = true | |
|
2153 | alias = [["format", "aggressivemergedeltas"]] | |
|
2154 | ||
|
2155 | [[items]] | |
|
2156 | section = "storage" | |
|
2157 | name = "revlog.persistent-nodemap.mmap" | |
|
2158 | default = true | |
|
2159 | ||
|
2160 | [[items]] | |
|
2161 | section = "storage" | |
|
2162 | name = "revlog.persistent-nodemap.slow-path" | |
|
2163 | default = "abort" | |
|
2164 | ||
|
2165 | [[items]] | |
|
2166 | section = "storage" | |
|
2167 | name = "revlog.reuse-external-delta" | |
|
2168 | default = true | |
|
2169 | ||
|
2170 | [[items]] | |
|
2171 | section = "storage" | |
|
2172 | name = "revlog.reuse-external-delta-parent" | |
|
2173 | documentation = """This option is true unless `format.generaldelta` is set.""" | |
|
2174 | ||
|
2175 | [[items]] | |
|
2176 | section = "storage" | |
|
2177 | name = "revlog.zlib.level" | |
|
2178 | ||
|
2179 | [[items]] | |
|
2180 | section = "storage" | |
|
2181 | name = "revlog.zstd.level" | |
|
2182 | ||
|
2183 | [[items]] | |
|
2184 | section = "subrepos" | |
|
2185 | name = "allowed" | |
|
2186 | default-type = "dynamic" # to make backporting simpler | |
|
2187 | ||
|
2188 | [[items]] | |
|
2189 | section = "subrepos" | |
|
2190 | name = "git:allowed" | |
|
2191 | default-type = "dynamic" | |
|
2192 | ||
|
2193 | [[items]] | |
|
2194 | section = "subrepos" | |
|
2195 | name = "hg:allowed" | |
|
2196 | default-type = "dynamic" | |
|
2197 | ||
|
2198 | [[items]] | |
|
2199 | section = "subrepos" | |
|
2200 | name = "svn:allowed" | |
|
2201 | default-type = "dynamic" | |
|
2202 | ||
|
2203 | [[items]] | |
|
2204 | section = "templateconfig" | |
|
2205 | name = ".*" | |
|
2206 | default-type = "dynamic" | |
|
2207 | generic = true | |
|
2208 | ||
|
2209 | [[items]] | |
|
2210 | section = "templates" | |
|
2211 | name = ".*" | |
|
2212 | generic = true | |
|
2213 | ||
|
2214 | [[items]] | |
|
2215 | section = "trusted" | |
|
2216 | name = "groups" | |
|
2217 | default-type = "list_type" | |
|
2218 | ||
|
2219 | [[items]] | |
|
2220 | section = "trusted" | |
|
2221 | name = "users" | |
|
2222 | default-type = "list_type" | |
|
2223 | ||
|
2224 | [[items]] | |
|
2225 | section = "ui" | |
|
2226 | name = "_usedassubrepo" | |
|
2227 | default = false | |
|
2228 | ||
|
2229 | [[items]] | |
|
2230 | section = "ui" | |
|
2231 | name = "allowemptycommit" | |
|
2232 | default = false | |
|
2233 | ||
|
2234 | [[items]] | |
|
2235 | section = "ui" | |
|
2236 | name = "archivemeta" | |
|
2237 | default = true | |
|
2238 | ||
|
2239 | [[items]] | |
|
2240 | section = "ui" | |
|
2241 | name = "askusername" | |
|
2242 | default = false | |
|
2243 | ||
|
2244 | [[items]] | |
|
2245 | section = "ui" | |
|
2246 | name = "available-memory" | |
|
2247 | ||
|
2248 | [[items]] | |
|
2249 | section = "ui" | |
|
2250 | name = "clonebundlefallback" | |
|
2251 | default = false | |
|
2252 | ||
|
2253 | [[items]] | |
|
2254 | section = "ui" | |
|
2255 | name = "clonebundleprefers" | |
|
2256 | default-type = "list_type" | |
|
2257 | ||
|
2258 | [[items]] | |
|
2259 | section = "ui" | |
|
2260 | name = "clonebundles" | |
|
2261 | default = true | |
|
2262 | ||
|
2263 | [[items]] | |
|
2264 | section = "ui" | |
|
2265 | name = "color" | |
|
2266 | default = "auto" | |
|
2267 | ||
|
2268 | [[items]] | |
|
2269 | section = "ui" | |
|
2270 | name = "commitsubrepos" | |
|
2271 | default = false | |
|
2272 | ||
|
2273 | [[items]] | |
|
2274 | section = "ui" | |
|
2275 | name = "debug" | |
|
2276 | default = false | |
|
2277 | ||
|
2278 | [[items]] | |
|
2279 | section = "ui" | |
|
2280 | name = "debugger" | |
|
2281 | ||
|
2282 | [[items]] | |
|
2283 | section = "ui" | |
|
2284 | name = "detailed-exit-code" | |
|
2285 | default = false | |
|
2286 | experimental = true | |
|
2287 | ||
|
2288 | [[items]] | |
|
2289 | section = "ui" | |
|
2290 | name = "editor" | |
|
2291 | default-type = "dynamic" | |
|
2292 | ||
|
2293 | [[items]] | |
|
2294 | section = "ui" | |
|
2295 | name = "fallbackencoding" | |
|
2296 | ||
|
2297 | [[items]] | |
|
2298 | section = "ui" | |
|
2299 | name = "forcecwd" | |
|
2300 | ||
|
2301 | [[items]] | |
|
2302 | section = "ui" | |
|
2303 | name = "forcemerge" | |
|
2304 | ||
|
2305 | [[items]] | |
|
2306 | section = "ui" | |
|
2307 | name = "formatdebug" | |
|
2308 | default = false | |
|
2309 | ||
|
2310 | [[items]] | |
|
2311 | section = "ui" | |
|
2312 | name = "formatjson" | |
|
2313 | default = false | |
|
2314 | ||
|
2315 | [[items]] | |
|
2316 | section = "ui" | |
|
2317 | name = "formatted" | |
|
2318 | ||
|
2319 | [[items]] | |
|
2320 | section = "ui" | |
|
2321 | name = "interactive" | |
|
2322 | ||
|
2323 | [[items]] | |
|
2324 | section = "ui" | |
|
2325 | name = "interface" | |
|
2326 | ||
|
2327 | [[items]] | |
|
2328 | section = "ui" | |
|
2329 | name = "interface.chunkselector" | |
|
2330 | ||
|
2331 | [[items]] | |
|
2332 | section = "ui" | |
|
2333 | name = "large-file-limit" | |
|
2334 | default = 10485760 | |
|
2335 | ||
|
2336 | [[items]] | |
|
2337 | section = "ui" | |
|
2338 | name = "logblockedtimes" | |
|
2339 | default = false | |
|
2340 | ||
|
2341 | [[items]] | |
|
2342 | section = "ui" | |
|
2343 | name = "merge" | |
|
2344 | ||
|
2345 | [[items]] | |
|
2346 | section = "ui" | |
|
2347 | name = "mergemarkers" | |
|
2348 | default = "basic" | |
|
2349 | ||
|
2350 | [[items]] | |
|
2351 | section = "ui" | |
|
2352 | name = "message-output" | |
|
2353 | default = "stdio" | |
|
2354 | ||
|
2355 | [[items]] | |
|
2356 | section = "ui" | |
|
2357 | name = "nontty" | |
|
2358 | default = false | |
|
2359 | ||
|
2360 | [[items]] | |
|
2361 | section = "ui" | |
|
2362 | name = "origbackuppath" | |
|
2363 | ||
|
2364 | [[items]] | |
|
2365 | section = "ui" | |
|
2366 | name = "paginate" | |
|
2367 | default = true | |
|
2368 | ||
|
2369 | [[items]] | |
|
2370 | section = "ui" | |
|
2371 | name = "patch" | |
|
2372 | ||
|
2373 | [[items]] | |
|
2374 | section = "ui" | |
|
2375 | name = "portablefilenames" | |
|
2376 | default = "warn" | |
|
2377 | ||
|
2378 | [[items]] | |
|
2379 | section = "ui" | |
|
2380 | name = "promptecho" | |
|
2381 | default = false | |
|
2382 | ||
|
2383 | [[items]] | |
|
2384 | section = "ui" | |
|
2385 | name = "quiet" | |
|
2386 | default = false | |
|
2387 | ||
|
2388 | [[items]] | |
|
2389 | section = "ui" | |
|
2390 | name = "quietbookmarkmove" | |
|
2391 | default = false | |
|
2392 | ||
|
2393 | [[items]] | |
|
2394 | section = "ui" | |
|
2395 | name = "relative-paths" | |
|
2396 | default = "legacy" | |
|
2397 | ||
|
2398 | [[items]] | |
|
2399 | section = "ui" | |
|
2400 | name = "remotecmd" | |
|
2401 | default = "hg" | |
|
2402 | ||
|
2403 | [[items]] | |
|
2404 | section = "ui" | |
|
2405 | name = "report_untrusted" | |
|
2406 | default = true | |
|
2407 | ||
|
2408 | [[items]] | |
|
2409 | section = "ui" | |
|
2410 | name = "rollback" | |
|
2411 | default = true | |
|
2412 | ||
|
2413 | [[items]] | |
|
2414 | section = "ui" | |
|
2415 | name = "signal-safe-lock" | |
|
2416 | default = true | |
|
2417 | ||
|
2418 | [[items]] | |
|
2419 | section = "ui" | |
|
2420 | name = "slash" | |
|
2421 | default = false | |
|
2422 | ||
|
2423 | [[items]] | |
|
2424 | section = "ui" | |
|
2425 | name = "ssh" | |
|
2426 | default = "ssh" | |
|
2427 | ||
|
2428 | [[items]] | |
|
2429 | section = "ui" | |
|
2430 | name = "ssherrorhint" | |
|
2431 | ||
|
2432 | [[items]] | |
|
2433 | section = "ui" | |
|
2434 | name = "statuscopies" | |
|
2435 | default = false | |
|
2436 | ||
|
2437 | [[items]] | |
|
2438 | section = "ui" | |
|
2439 | name = "strict" | |
|
2440 | default = false | |
|
2441 | ||
|
2442 | [[items]] | |
|
2443 | section = "ui" | |
|
2444 | name = "style" | |
|
2445 | default = "" | |
|
2446 | ||
|
2447 | [[items]] | |
|
2448 | section = "ui" | |
|
2449 | name = "supportcontact" | |
|
2450 | ||
|
2451 | [[items]] | |
|
2452 | section = "ui" | |
|
2453 | name = "textwidth" | |
|
2454 | default = 78 | |
|
2455 | ||
|
2456 | [[items]] | |
|
2457 | section = "ui" | |
|
2458 | name = "timeout" | |
|
2459 | default = "600" | |
|
2460 | ||
|
2461 | [[items]] | |
|
2462 | section = "ui" | |
|
2463 | name = "timeout.warn" | |
|
2464 | default = 0 | |
|
2465 | ||
|
2466 | [[items]] | |
|
2467 | section = "ui" | |
|
2468 | name = "timestamp-output" | |
|
2469 | default = false | |
|
2470 | ||
|
2471 | [[items]] | |
|
2472 | section = "ui" | |
|
2473 | name = "traceback" | |
|
2474 | default = false | |
|
2475 | ||
|
2476 | [[items]] | |
|
2477 | section = "ui" | |
|
2478 | name = "tweakdefaults" | |
|
2479 | default = false | |
|
2480 | ||
|
2481 | [[items]] | |
|
2482 | section = "ui" | |
|
2483 | name = "username" | |
|
2484 | alias = [["ui", "user"]] | |
|
2485 | ||
|
2486 | [[items]] | |
|
2487 | section = "ui" | |
|
2488 | name = "verbose" | |
|
2489 | default = false | |
|
2490 | ||
|
2491 | [[items]] | |
|
2492 | section = "verify" | |
|
2493 | name = "skipflags" | |
|
2494 | default = 0 | |
|
2495 | ||
|
2496 | [[items]] | |
|
2497 | section = "web" | |
|
2498 | name = "accesslog" | |
|
2499 | default = "-" | |
|
2500 | ||
|
2501 | [[items]] | |
|
2502 | section = "web" | |
|
2503 | name = "address" | |
|
2504 | default = "" | |
|
2505 | ||
|
2506 | [[items]] | |
|
2507 | section = "web" | |
|
2508 | name = "allow-archive" | |
|
2509 | default-type = "list_type" | |
|
2510 | alias = [["web", "allow_archive"]] | |
|
2511 | ||
|
2512 | [[items]] | |
|
2513 | section = "web" | |
|
2514 | name = "allow-pull" | |
|
2515 | default = true | |
|
2516 | alias = [["web", "allowpull"]] | |
|
2517 | ||
|
2518 | [[items]] | |
|
2519 | section = "web" | |
|
2520 | name = "allow-push" | |
|
2521 | default-type = "list_type" | |
|
2522 | alias = [["web", "allow_push"]] | |
|
2523 | ||
|
2524 | [[items]] | |
|
2525 | section = "web" | |
|
2526 | name = "allow_read" | |
|
2527 | default-type = "list_type" | |
|
2528 | ||
|
2529 | [[items]] | |
|
2530 | section = "web" | |
|
2531 | name = "allowbz2" | |
|
2532 | default = false | |
|
2533 | ||
|
2534 | [[items]] | |
|
2535 | section = "web" | |
|
2536 | name = "allowgz" | |
|
2537 | default = false | |
|
2538 | ||
|
2539 | [[items]] | |
|
2540 | section = "web" | |
|
2541 | name = "allowzip" | |
|
2542 | default = false | |
|
2543 | ||
|
2544 | [[items]] | |
|
2545 | section = "web" | |
|
2546 | name = "archivesubrepos" | |
|
2547 | default = false | |
|
2548 | ||
|
2549 | [[items]] | |
|
2550 | section = "web" | |
|
2551 | name = "baseurl" | |
|
2552 | ||
|
2553 | [[items]] | |
|
2554 | section = "web" | |
|
2555 | name = "cacerts" | |
|
2556 | ||
|
2557 | [[items]] | |
|
2558 | section = "web" | |
|
2559 | name = "cache" | |
|
2560 | default = true | |
|
2561 | ||
|
2562 | [[items]] | |
|
2563 | section = "web" | |
|
2564 | name = "certificate" | |
|
2565 | ||
|
2566 | [[items]] | |
|
2567 | section = "web" | |
|
2568 | name = "collapse" | |
|
2569 | default = false | |
|
2570 | ||
|
2571 | [[items]] | |
|
2572 | section = "web" | |
|
2573 | name = "comparisoncontext" | |
|
2574 | default = 5 | |
|
2575 | ||
|
2576 | [[items]] | |
|
2577 | section = "web" | |
|
2578 | name = "contact" | |
|
2579 | ||
|
2580 | [[items]] | |
|
2581 | section = "web" | |
|
2582 | name = "csp" | |
|
2583 | ||
|
2584 | [[items]] | |
|
2585 | section = "web" | |
|
2586 | name = "deny_push" | |
|
2587 | default-type = "list_type" | |
|
2588 | ||
|
2589 | [[items]] | |
|
2590 | section = "web" | |
|
2591 | name = "deny_read" | |
|
2592 | default-type = "list_type" | |
|
2593 | ||
|
2594 | [[items]] | |
|
2595 | section = "web" | |
|
2596 | name = "descend" | |
|
2597 | default = true | |
|
2598 | ||
|
2599 | [[items]] | |
|
2600 | section = "web" | |
|
2601 | name = "description" | |
|
2602 | default = "" | |
|
2603 | ||
|
2604 | [[items]] | |
|
2605 | section = "web" | |
|
2606 | name = "encoding" | |
|
2607 | default-type = "lazy_module" | |
|
2608 | default = "encoding.encoding" | |
|
2609 | ||
|
2610 | [[items]] | |
|
2611 | section = "web" | |
|
2612 | name = "errorlog" | |
|
2613 | default = "-" | |
|
2614 | ||
|
2615 | [[items]] | |
|
2616 | section = "web" | |
|
2617 | name = "guessmime" | |
|
2618 | default = false | |
|
2619 | ||
|
2620 | [[items]] | |
|
2621 | section = "web" | |
|
2622 | name = "hidden" | |
|
2623 | default = false | |
|
2624 | ||
|
2625 | [[items]] | |
|
2626 | section = "web" | |
|
2627 | name = "ipv6" | |
|
2628 | default = false | |
|
2629 | ||
|
2630 | [[items]] | |
|
2631 | section = "web" | |
|
2632 | name = "labels" | |
|
2633 | default-type = "list_type" | |
|
2634 | ||
|
2635 | [[items]] | |
|
2636 | section = "web" | |
|
2637 | name = "logoimg" | |
|
2638 | default = "hglogo.png" | |
|
2639 | ||
|
2640 | [[items]] | |
|
2641 | section = "web" | |
|
2642 | name = "logourl" | |
|
2643 | default = "https://mercurial-scm.org/" | |
|
2644 | ||
|
2645 | [[items]] | |
|
2646 | section = "web" | |
|
2647 | name = "maxchanges" | |
|
2648 | default = 10 | |
|
2649 | ||
|
2650 | [[items]] | |
|
2651 | section = "web" | |
|
2652 | name = "maxfiles" | |
|
2653 | default = 10 | |
|
2654 | ||
|
2655 | [[items]] | |
|
2656 | section = "web" | |
|
2657 | name = "maxshortchanges" | |
|
2658 | default = 60 | |
|
2659 | ||
|
2660 | [[items]] | |
|
2661 | section = "web" | |
|
2662 | name = "motd" | |
|
2663 | default = "" | |
|
2664 | ||
|
2665 | [[items]] | |
|
2666 | section = "web" | |
|
2667 | name = "name" | |
|
2668 | default-type = "dynamic" | |
|
2669 | ||
|
2670 | [[items]] | |
|
2671 | section = "web" | |
|
2672 | name = "port" | |
|
2673 | default = 8000 | |
|
2674 | ||
|
2675 | [[items]] | |
|
2676 | section = "web" | |
|
2677 | name = "prefix" | |
|
2678 | default = "" | |
|
2679 | ||
|
2680 | [[items]] | |
|
2681 | section = "web" | |
|
2682 | name = "push_ssl" | |
|
2683 | default = true | |
|
2684 | ||
|
2685 | [[items]] | |
|
2686 | section = "web" | |
|
2687 | name = "refreshinterval" | |
|
2688 | default = 20 | |
|
2689 | ||
|
2690 | [[items]] | |
|
2691 | section = "web" | |
|
2692 | name = "server-header" | |
|
2693 | ||
|
2694 | [[items]] | |
|
2695 | section = "web" | |
|
2696 | name = "static" | |
|
2697 | ||
|
2698 | [[items]] | |
|
2699 | section = "web" | |
|
2700 | name = "staticurl" | |
|
2701 | ||
|
2702 | [[items]] | |
|
2703 | section = "web" | |
|
2704 | name = "stripes" | |
|
2705 | default = 1 | |
|
2706 | ||
|
2707 | [[items]] | |
|
2708 | section = "web" | |
|
2709 | name = "style" | |
|
2710 | default = "paper" | |
|
2711 | ||
|
2712 | [[items]] | |
|
2713 | section = "web" | |
|
2714 | name = "templates" | |
|
2715 | ||
|
2716 | [[items]] | |
|
2717 | section = "web" | |
|
2718 | name = "view" | |
|
2719 | default = "served" | |
|
2720 | experimental = true | |
|
2721 | ||
|
2722 | [[items]] | |
|
2723 | section = "worker" | |
|
2724 | name = "backgroundclose" | |
|
2725 | default-type = "dynamic" | |
|
2726 | ||
|
2727 | [[items]] | |
|
2728 | section = "worker" | |
|
2729 | name = "backgroundclosemaxqueue" | |
|
2920 | 2730 | # Windows defaults to a limit of 512 open files. A buffer of 128 |
|
2921 | 2731 | # should give us enough headway. |
|
2922 | coreconfigitem( | |
|
2923 | b'worker', | |
|
2924 | b'backgroundclosemaxqueue', | |
|
2925 | default=384, | |
|
2926 | ) | |
|
2927 | coreconfigitem( | |
|
2928 | b'worker', | |
|
2929 | b'backgroundcloseminfilecount', | |
|
2930 | default=2048, | |
|
2931 | ) | |
|
2932 | coreconfigitem( | |
|
2933 | b'worker', | |
|
2934 | b'backgroundclosethreadcount', | |
|
2935 | default=4, | |
|
2936 | ) | |
|
2937 | coreconfigitem( | |
|
2938 | b'worker', | |
|
2939 | b'enabled', | |
|
2940 | default=True, | |
|
2941 | ) | |
|
2942 | coreconfigitem( | |
|
2943 | b'worker', | |
|
2944 | b'numcpus', | |
|
2945 | default=None, | |
|
2946 | ) | |
|
2947 | ||
|
2948 | # Rebase related configuration moved to core because other extension are doing | |
|
2949 | # strange things. For example, shelve import the extensions to reuse some bit | |
|
2950 | # without formally loading it. | |
|
2951 | coreconfigitem( | |
|
2952 | b'commands', | |
|
2953 | b'rebase.requiredest', | |
|
2954 | default=False, | |
|
2955 | ) | |
|
2956 | coreconfigitem( | |
|
2957 | b'experimental', | |
|
2958 | b'rebaseskipobsolete', | |
|
2959 | default=True, | |
|
2960 | ) | |
|
2961 | coreconfigitem( | |
|
2962 | b'rebase', | |
|
2963 | b'singletransaction', | |
|
2964 | default=False, | |
|
2965 | ) | |
|
2966 | coreconfigitem( | |
|
2967 | b'rebase', | |
|
2968 | b'experimental.inmemory', | |
|
2969 | default=False, | |
|
2970 | ) | |
|
2971 | ||
|
2972 | # This setting controls creation of a rebase_source extra field | |
|
2973 | # during rebase. When False, no such field is created. This is | |
|
2974 | # useful eg for incrementally converting changesets and then | |
|
2975 | # rebasing them onto an existing repo. | |
|
2976 | # WARNING: this is an advanced setting reserved for people who know | |
|
2977 | # exactly what they are doing. Misuse of this setting can easily | |
|
2978 | # result in obsmarker cycles and a vivid headache. | |
|
2979 | coreconfigitem( | |
|
2980 | b'rebase', | |
|
2981 | b'store-source', | |
|
2982 | default=True, | |
|
2983 | experimental=True, | |
|
2984 | ) | |
|
2732 | default = 384 | |
|
2733 | ||
|
2734 | [[items]] | |
|
2735 | section = "worker" | |
|
2736 | name = "backgroundcloseminfilecount" | |
|
2737 | default = 2048 | |
|
2738 | ||
|
2739 | [[items]] | |
|
2740 | section = "worker" | |
|
2741 | name = "backgroundclosethreadcount" | |
|
2742 | default = 4 | |
|
2743 | ||
|
2744 | [[items]] | |
|
2745 | section = "worker" | |
|
2746 | name = "enabled" | |
|
2747 | default = true | |
|
2748 | ||
|
2749 | [[items]] | |
|
2750 | section = "worker" | |
|
2751 | name = "numcpus" | |
|
2752 | ||
|
2753 | # Templates and template applications | |
|
2754 | ||
|
2755 | [[template-applications]] | |
|
2756 | template = "diff-options" | |
|
2757 | section = "annotate" | |
|
2758 | ||
|
2759 | [[template-applications]] | |
|
2760 | template = "diff-options" | |
|
2761 | section = "commands" | |
|
2762 | prefix = "commit.interactive" | |
|
2763 | ||
|
2764 | [[template-applications]] | |
|
2765 | template = "diff-options" | |
|
2766 | section = "commands" | |
|
2767 | prefix = "revert.interactive" | |
|
2768 | ||
|
2769 | [[template-applications]] | |
|
2770 | template = "diff-options" | |
|
2771 | section = "diff" | |
|
2772 | ||
|
2773 | [templates] | |
|
2774 | [[templates.diff-options]] | |
|
2775 | suffix = "nodates" | |
|
2776 | default = false | |
|
2777 | ||
|
2778 | [[templates.diff-options]] | |
|
2779 | suffix = "showfunc" | |
|
2780 | default = false | |
|
2781 | ||
|
2782 | [[templates.diff-options]] | |
|
2783 | suffix = "unified" | |
|
2784 | ||
|
2785 | [[templates.diff-options]] | |
|
2786 | suffix = "git" | |
|
2787 | default = false | |
|
2788 | ||
|
2789 | [[templates.diff-options]] | |
|
2790 | suffix = "ignorews" | |
|
2791 | default = false | |
|
2792 | ||
|
2793 | [[templates.diff-options]] | |
|
2794 | suffix = "ignorewsamount" | |
|
2795 | default = false | |
|
2796 | ||
|
2797 | [[templates.diff-options]] | |
|
2798 | suffix = "ignoreblanklines" | |
|
2799 | default = false | |
|
2800 | ||
|
2801 | [[templates.diff-options]] | |
|
2802 | suffix = "ignorewseol" | |
|
2803 | default = false | |
|
2804 | ||
|
2805 | [[templates.diff-options]] | |
|
2806 | suffix = "nobinary" | |
|
2807 | default = false | |
|
2808 | ||
|
2809 | [[templates.diff-options]] | |
|
2810 | suffix = "noprefix" | |
|
2811 | default = false | |
|
2812 | ||
|
2813 | [[templates.diff-options]] | |
|
2814 | suffix = "word-diff" | |
|
2815 | default = false | |
|
2816 | ||
|
2817 | # In-core extensions | |
|
2818 | ||
|
2819 | [[items]] | |
|
2820 | section = "blackbox" | |
|
2821 | name = "debug.to-stderr" | |
|
2822 | default = false | |
|
2823 | in_core_extension = "blackbox" | |
|
2824 | ||
|
2825 | [[items]] | |
|
2826 | section = "blackbox" | |
|
2827 | name = "dirty" | |
|
2828 | default = false | |
|
2829 | in_core_extension = "blackbox" | |
|
2830 | ||
|
2831 | [[items]] | |
|
2832 | section = "blackbox" | |
|
2833 | name = "maxsize" | |
|
2834 | default = "1 MB" | |
|
2835 | in_core_extension = "blackbox" | |
|
2836 | ||
|
2837 | [[items]] | |
|
2838 | section = "blackbox" | |
|
2839 | name = "logsource" | |
|
2840 | default = false | |
|
2841 | in_core_extension = "blackbox" | |
|
2842 | ||
|
2843 | [[items]] | |
|
2844 | section = "blackbox" | |
|
2845 | name = "maxfiles" | |
|
2846 | default = 7 | |
|
2847 | in_core_extension = "blackbox" | |
|
2848 | ||
|
2849 | [[items]] | |
|
2850 | section = "blackbox" | |
|
2851 | name = "track" | |
|
2852 | default-type = "lambda" | |
|
2853 | default = ["*"] | |
|
2854 | in_core_extension = "blackbox" | |
|
2855 | ||
|
2856 | [[items]] | |
|
2857 | section = "blackbox" | |
|
2858 | name = "ignore" | |
|
2859 | default-type = "lambda" | |
|
2860 | default = ["chgserver", "cmdserver", "extension"] | |
|
2861 | in_core_extension = "blackbox" | |
|
2862 | ||
|
2863 | [[items]] | |
|
2864 | section = "blackbox" | |
|
2865 | name = "date-format" | |
|
2866 | default = "" | |
|
2867 | in_core_extension = "blackbox" |
@@ -16,9 +16,6 b' from .node import (' | |||
|
16 | 16 | nullrev, |
|
17 | 17 | short, |
|
18 | 18 | ) |
|
19 | from .pycompat import ( | |
|
20 | getattr, | |
|
21 | ) | |
|
22 | 19 | from . import ( |
|
23 | 20 | dagop, |
|
24 | 21 | encoding, |
@@ -15,7 +15,6 b' import signal' | |||
|
15 | 15 | |
|
16 | 16 | from .i18n import _ |
|
17 | 17 | from .pycompat import ( |
|
18 | getattr, | |
|
19 | 18 | open, |
|
20 | 19 | ) |
|
21 | 20 | from . import ( |
@@ -573,7 +572,7 b' def chunkselector(ui, headerlist, operat' | |||
|
573 | 572 | ui.write(_(b'starting interactive selection\n')) |
|
574 | 573 | chunkselector = curseschunkselector(headerlist, ui, operation) |
|
575 | 574 | origsigtstp = sentinel = object() |
|
576 |
if |
|
|
575 | if hasattr(signal, 'SIGTSTP'): | |
|
577 | 576 | origsigtstp = signal.getsignal(signal.SIGTSTP) |
|
578 | 577 | try: |
|
579 | 578 | with util.with_lc_ctype(): |
@@ -1944,7 +1943,7 b' are you sure you want to review/edit and' | |||
|
1944 | 1943 | """ |
|
1945 | 1944 | |
|
1946 | 1945 | origsigwinch = sentinel = object() |
|
1947 |
if |
|
|
1946 | if hasattr(signal, 'SIGWINCH'): | |
|
1948 | 1947 | origsigwinch = signal.signal(signal.SIGWINCH, self.sigwinchhandler) |
|
1949 | 1948 | try: |
|
1950 | 1949 | return self._main(stdscr) |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: modified file | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed | |
This diff has been collapsed as it changes many lines, (1413 lines changed) Show them Hide them |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed |
|
1 | NO CONTENT: file was removed | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: file was removed | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: file was removed | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: file was removed | |
The requested commit or file is too big and content was truncated. Show full diff |
|
1 | NO CONTENT: file was removed | |
The requested commit or file is too big and content was truncated. Show full diff |
General Comments 0
You need to be logged in to leave comments.
Login now